Against The Elements

The atomic world is in crisis. An epidemic is sweeping through the elements turning them hostile and altering the very nature of matter itself. Only a handful of survivors remain. These include the six Noble Gases (Helium, Neon, Argon, Krypton, Xenon and Radon), members of an order following an approach of isolation in pursuit of wisdom and knowledge. They have analysed the infection and although its origins still remain a mystery they have established that it targets the neutrons within the nucleus, spreading from atom to atom via chemical bonding. The Noble Gases contain neutrons yet their policy of isolation explains why they have not yet succumbed to the illness.

Using their wealth of knowledge the Noble Gases have managed to design an antidote to the infection, and each has been tasked with creation of a specific part of it. These are now complete but the spread of the epidemic has been so rapid that it has trapped the Noble Gases in dispersed locations throughout the atomic world. If the parts of the antidote are not fused together and released soon then the infection will become irreversible and all hope will be vanquished. This is where you come in.

You are Hydrogen, the only other element to have shown resistance to the contagion. Your immunity is due to the fact that you do not contain a neutron. This also makes you the lightest of all the elements and therefore the nimblest, a characteristic that makes you the only one left who can collect all six parts of the antidote in time and bring them back for release.

As you journey through the atomic world you will find loose electrons scattered about. You can pick up and carry an additional electron which might prove useful in your quest, but be careful as this will make you negatively charged. You'll also need to be on your guard for infected atoms as they will annihilate you should they manage to touch you.

Obstacles and traps await you at every turn and you will need to use all your dexterity and ingenuity as you battle Against The Elements.


Against The Elements Title Screenshot Against The Elements Screenshot #1 Against The Elements Screenshot #2

The game runs on a standard 16K ZX81 and is in the isometric style made famous on the Spectrum by Ultimate. It uses the pseudo high resolution techniques pioneered by companies such as Macronics and Software Farm.

The bottom side areas of the screen are used to display status information. The large H followed by a subscript number shows how many lives are remaining. Next to this will appear a circle with a minus sign in it whenever you have picked up an additional electron. The six '+' shapes running along the bottom show which parts of the antidote have been collected. Parts that have been found are shown filled in. The vertical bar on the right indicates how much time you have left. To the side of it will appear two large dashes whenever the game is paused.

The game is controlled using the cursor keys 5, 6, 7, 8 and 0 for jump, or keys Q, A, O, P and M for jump. Key 9 is used to pick-up/drop and SPACE for pause/continue. If the game is loaded on a system with a ZXpand connected then keys Q, A, O, P, M are replaced with support for the ZXpand joystick socket.

You must be standing on an electron in order to pick it up. You cannot jump into an archway or jump while in an archway. You also can't push an object through an archway. You can't die from falling but you will be killed if you come into contact with an infected atom, which are distinguished by having two stripes around their middle. When you find a Noble Gas you must push into it to collect its contribution to the antidote. At the end of the game, press the SPACE key to restart. Everything else you must work out for yourself!

The game includes full colour support for the Chroma SCART interface. The colour facilities should be switched on prior to loading the game.


Against The Elements Title Screenshot Against The Elements Screenshot #1 Against The Elements Screenshot #2


Development History

I had originally thought about creating an isometric game for the standard 16K ZX81 using the pseudo high resolution technique, similar in style to the Spectrum games created by Ultimate, back circa 1986. I wondered whether the limited pixel patterns offered by the technique would be capable of such a visually complex game. So I created a mock up on graph paper to find out whether it could. The results were encouraging, as the photo of the original mock up shows.

Isometric room layout mock up

A significant number of issues needed to be answered:

The mock up screen had revealed that there was a possibility that an isometric game could be achieved but it had been created without full consideration of the constraints that would be needed to get the game engine to work. However, by 1987 the number of active ZX81 users had dwindled such that they could be counted on the fingers of two hands, if not one. A pseudo hi-res isometric game appeared feasible on the ZX81, but the challenges to realise it seemed overwhelming and with no user base remaining there seemed little point in pursuing the idea further. The concept got abandoned and faded into the past.

Fast forward to the autumn of 2010 and with 30th anniversary of the ZX81 looming and with a sizeable user base now present, the idea of the isometric game crept back into my mind. I found myself wondering on how it could be realised and eventually tried out some ideas for real. The results were very promising and soon a working prototype began to emerge. The curved archways of the mockup evolved into a more compact and practical rectangular shape, yet the basic 8 by 8 grid floor plan for object placement remained. Two additional room shapes were added, along with the ability to locate archways high up.

The game plot was loosely based on an idea I had originally devised and worked on back in the 80s for the Spectrum as a side scrolling game (although this never got released), but it seemed well suited to the graphical limitations that an isometric game on the ZX81 would be subject to. The concerns I had 25 years before were now becoming a reality and presented a number of technical challenges and stumbling blocks to overcome. Sadly the 30th anniversary of the ZX81 came and went, and still a number of major issues remained with no clear timeline in sight for when they might be resolved. Since there was no longer a hard deadline to aim for, it seemed sensible to take a break and mull over the issues in the back of my mind, with the intention of returning to the game in the future when I had solutions worked out for all the problems. My focus instead turned to the Spectrum's 30th anniversary and another long standing idea of creating a SCART interface that could also address the attribute clash issue that forced many games to adopt a monochrome display. This investigation resulted in the SPECTRA SCART interface, which was working as a fully functional prototype by the end of March 2012.

Development effort then switched to the creation of the ZXC4 ROM cartridge and all the associated software that it required, and after this came the adaption of the SPECTRA interface to work on the ZX81 resulting in the Chroma SCART interface.

As the 35th anniversary of the ZX81 approached, my thoughts once again returned back the pseudo hi-res isometric game. Over the past few years I had thought of various ideas for resolving the issues that had halted development back in 2011 and now was the time to fix them or concede that such a game was just not viable on the standard 16K ZX81. Slowly but surely the problems were overcome one by one, often requiring compromises to the game design and structure, but eventually a playable game began to take shape. A new addition to the game was support for the colour facilities of the Chroma interface, which the game automatically uses if the interface is detected.

The title screen features a technique to display a near pixel perfect mix of uppercase and lowercase lettering. This technique was first used in Against The Elements, but a description of how the technique works can be found on the page for the program Celebration.

After 30 years since its original conception and 35 years since the ZX81 was released, I'm pleased to present a game that shows that the standard 16K ZX81 is capable of a pseudo hi-res isometric game of sizeable complexity. I would have liked to have written the game back in the 80s when I had originally contemplated it, but perhaps releasing the game 30 years later has actually been beneficial since it is likely to reach a much larger audience now than it would have back then!

Against The Elements was (finally) released on 25th February 2016 (version 1.00). An update to introduce a small performance improvement was released on 19th March 2017 (version 1.01), with a patch that would replace the cursor key support with ZXpand joystick support released on 19th April 2017. A significant update was released on 24th March 2022 (version 1.02) that saw a number of enhancements, including support for control keys Q, A, O, P and M, integrated ZXpand joystick support (hence the patch file is no longer required), improved picture alignment, smoother screen transitions, additional use of colour when used with the Chroma 81 interface, and a slight performance improvement. The actual game play remains the same in all releases.


Downloads

The game can be downloaded below, and is made available for private use or for public demonstrations. It is not to be included in emulator distributions, sold as part of a commercial package or replicated on another website (please do not re-distribute the program file but link to this site instead). Should you like it and wish to make a small payment for it then any amount would be appreciated and can be done using the Donate link at the bottom right.

Click here to download Against The Elements in .P and .P81 program formats (G8104). The ZX81 program filename is ATE. [Version 1.02]

To load the game from the ZXpand interface and prevent support for control keys Q, A, O, P and M being automatically replaced with ZXpand joystick support, load using LOAD "ATE;X".