Since bursting onto the scene with the release of Overlord in 2015, Anthony Van Bartram of Amcog Games has been hard at work bringing a series of commercial games to the RISC OS market.
After his first release in June 2015 we saw him launch isometric adventure title Legends of Magic at the 2015 London Show before coming out with the Fervour-inspired space-maze game Xeroid at the 2016 Wakefield show.
Amcog have since stuck to their quick release schedule, with their latest title coming in the form of Mop Tops, a parallax scrolling puzzle game.
The main aim is pretty simple, but it’s pretty tricky to master. You must guide as many Mop Tops as possible to the exit within the time limit. You do this by giving objects to the Mop Tops to use or by dragging objects into their path.
It quickly came apparent to me upon playing the game that Mop Tops is one of those titles that, although there’s no huge backstory or much depth to the concept (not that there needs to be for a game like this), it keeps you coming back for more and more. It’s ideal for procrastination as I’ve found out the hard way. There’s 30 levels to play your way through, all with synthesised and sampled sound effects via Amcog’s very own RDSP Sound Mod.
Mop Tops is available from the Pling Store for £9.99 and is compatible with all modern RISC OS systems – including the Raspberry Pi, ARMX6 and machines running RISC OS 5 under RPCEmu. It should also be compatible with legacy systems running RISC OS 4 as well as Virtual RiscPC.
If you’re looking for a casual puzzler that you can sink some time into when you’ve got some time to kill, this is well worth your hard earned cash. Quite a few share my opinion too, Mop Tops picked up the Best Game of the Year award in the 2016 RISC OS Awards.
The default mode is BaseMode. The other modes simply augment, or override, it. Many features of a mode can be set in the Mode Choices dialog box.
Other features have to be specified in the mode’s ModeFile and must be written in StrongED’s own command language. BaseMode’s ModeFile will be displayed if you click Ctrl-Adjust on StrongED’s iconbar icon.
It is a commonplace that programming languages can use variables to denote expressions. Thus
x = “this is some text”
is a piece of text in BBC BASIC. The variable x is defined in it to denote the literal text this is some text. The doublequote characters are used by BASIC to distinguish the literal text. Other languages may use other means to distinguish which parts of the program text refer to literal text; position, for example. Consider the command
echo hello there
in an Obeyfile. The word echo is a command, whereas hello there is literal text. If we put in doublequotes here we do not get the same result.
In BBC BASIC, as in other languages, we distinguish between a number 57 and a string “57”. Many languages, not BBC BASIC unfortunately, deal with patterns that can occur in text. It took time for people to realize the advantages of distinguishing separate types of value; that boolean values are distinct from number values, for example, – a distinction that BASIC fails to make but which was recognized fairly early in the history of programming. The distinction between patterns and strings took a little longer to sink in. Similarly, replacement strings (other languages talk of format strings) should really be distinguished from plain vanilla strings. Many languages, and among them StrongED’s command language, use strings to denote patterns, with certain characters, known as magic characters, playing a special role. This means that there has to be an escape character to indicate that the character following is to be taken in its literal and non-magical sense. In C, for example, the backslash (\) is used as an escape character.
These observations should be kept in mind if you look at StrongED’s help files, because the use of variables defining patterns is fundamental to StrongED’s command language. I do not intend to rehearse, or even summarize, these help files here. I mentioned in part 1 that I use a non-standard BaseMode Modefile. Instead, I will describe the steps I took to modify the standard one.
The first thing I wanted to do was get rid of the icons in the smartbar that I knew I was not going to use. Scroll down in the BaseMode Modefile until you reach
#— Toolbar and mode-menu functions
The lines starting —>Icon define the icons in the smartbar, from left to right. The lines that follow each of these commands specify how they behave. The first group I removed (or commented out by inserting # at the beginning of the line) was
This removed the ListOfWindows icon (I very rarely have more than a couple of windows open at the same time). As well as removing groups I also changed the order in which the groups appeared in the ModeFile. For some groups I provided my own icons, which must go in BaseMode.Sprites or BaseMode.Sprites22. For what happens when you click on,or drag to, an icon it is useful to consult Help->Reference section->List of Functions from StrongED’s iconbar menu. In this way it is not too difficult to create new facilities for your own modes, but remember that a mode’s own smartbar icons will appear to the right of those provided by the BaseMode. Similarly, the menu items that you provide in a mode’s Modefile will appear beneath those furnished by the BaseMode.
So, at least superficially, it is not too difficult to personalize StrongED. It goes without saying that you should always put your modified files only in StrED_cfg, leaving StrongED itself alone. That way, if you are over-ambitious or if your syntax is not correct, you can always restore StrongED to its proper state.
A little while ago Chris Gransden mentioned on the RISC OS Open forums that a test version of the DarkPlaces Quake engine for RISC OS on the Raspberry Pi was available for download.
The game uses the Khronos module to take advantage of DarkPlaces’ hardware acceleration, something I haven’t really seen in RISC OS before. So six months late to the party, I thought I’d take it for a whirl and see what it could do on my little Pi 3.
What is DarkPlaces Quake?
DarkPlaces is a Quake modification that uses its own custom OpenGL-only engine and features improved graphics and image quality when compared to the original Quake – which saw its engine released under the open-source GPL license a few years ago.
Taken from DarkPlaces’ website, developer LordHavoc says he wasn’t happy with the custom modifications and engines available after the Quake engine was initially open-sourced, and he decided to create his own project with a focus on improving the quality of effects and image quality.
“DarkPlaces engine was started because I was unsatisfied with the other engines available soon after the Quake source release (which did little more than add some flashy effects), and craved modding features for my DarkPlaces mod, and wanted some real enhancements to the online gaming experience as well.” Said Lord Havoc on the DarkPlaces website.
Some features specific to DarkPlaces Quake include:
- Fully integrated per pixel lighting and shadowing technology, lightmapping and deluxe mapping as well as a variety of material effects fully integrated into one shader system that deals with all situations
- Support for a variety of file formats (Quake1 and Quake3 file formats, skeletal models, various image formats, ogg vorbis etc.)
- Game logic scripting in QuakeC programming languageAdvanced networking support
- Realistic global fog feature with height limit for seamless blending with sky.
- ODE physics engine integration
- Per-polygon collision detection optimized for large static meshes, as well as Quake brush technology.
- Background music support with sequential and random playlists and playlist switching (
- CD audio support
Setting it up
DarkPlaces for RISC OS can be downloaded here. You’ll need to source your own PAK files, which contain the levels for the game. The freely available shareware file is available for download from here, if you have a full copy of Quake then you can extract the PAK files and use them with DarkPlaces.
Once you’ve extracted !DarkPlaces from the zip file and into a location on your hard drive, you’ll to need to create a ‘id1’ folder in the !DarkPlaces folder and drop a PAK file into it.
The game uses hardware accelerated graphics so you’ll need Khronos for it to run. Just merge the !Boot and !System folders with your current ones, it’ll then add the Khronos module and necessary shared libraries to your system.
DarkPlaces Quake is currently only compatible with the Raspberry Pi due to it using the GPU for hardware acceleration. It will however run on all versions of the Pi including the Pi 3 and Zero.
Gameplay and performance
Running on the Raspberry Pi 3, I found DarkPlaces to run reasonably smoothly using a 1920×1080 resolution. Occasionally there is some flickering on the screen, this is down to VSync not working but it doesn’t hinder gameplay for the most part. The game is test quality as it stands so encountering issues like this is to be expected.
The FPS rate when playing averaged about 50fps which if you look at the hardware its running on and the massive improvement in graphics and effects quality when compared to the original Quake, it’s pretty impressive.
Chris has also tested DarkPlaces on a Raspberry Pi Zero running RISC OS, the performance wasn’t quite up-to-par with the Pi 3 obviously, but it was running at 20fps at 1920×1080 which is not bad.
Another issue that can be annoying is if you press multiple keys together at the same time, the game will completely ignore the presses all together. Also, the Escape key will exit the game without warning – so be warned!
Overall, Chris’ port of DarkPlaces is a very impressive demonstration of the hardware accelerated graphics capabilities that the Khronos module can be provided on RISC OS. If you fancy having a play and don’t mind the little quirks that this test version of the game has, then go give it a shot – you can grab it from here.