The Long Development History of Barbarians
Saturday, 1st November 2025
Recently I released Barbarians for MS-DOS, a simple strategy game about repelling a barbarian invasion in ancient times. This release was for the DOSember Game Jam, a 3-month game jam for MS-DOS preceding the month-long DOSember streaming event for 2025. The jam rules stated that picking up "abandoned projects" was allowed, and Barbarians for MS-DOS was a project I'd started then put aside at the end of 2024; the jam was the perfect time to pick it up again.
But the development history of Barbarians is much longer than that. MS-DOS is the third platform for which I've released the game. The original version goes right back to 2010, when the game was developed for the once-popular range of pocket computers from Psion, computers which are often sold short by being referred to as "PDAs."
The Psion pocket computer for which the game was designed was the Psion Organiser II. This computer with an 8-bit HD6303X processor came in several models, from the CM with its 8k RAM and 16x2 character display, to the LZ64 with 64k RAM and a 20x4 character display.
The game's design, even the latest MS-DOS version, is based around the limitations of the Psion Organiser II. These machines had a text-based display, but eight of the characters could be redefined. This gave rise to the main visual elements of the game: plains, forests, mountains, sea, cities, ruins, armies and barbarians.
The map was confined to 240 squares to fit in with two limits: the 255 character maximum string length of the Psion's built-in programming language OPL, and the width of the display; the map was 16x15 squares on the 16-character models, and 20x12 on the 20-character models.
OPL on the Organiser II had another limitation: there was no facility to write binary data files, so the game data had to be compatible with the Organiser II's database file format. That meant that strings couldn't use all 256 byte values, because some of those values were special characters in the database format. So many values were limited to 240 so that special characters could be avoided.
A final limitation was partly down to the speed of the machine, and partly down to my own skill limitations. Despite the game being one player against the computer, there was no AI as such. The computer moves at random, and the game was designed such that these random computer decisions were still a challenge.
When the game was finished on the Organiser II, I moved on to the 16-bit range of Psion computers, the Series 3 and its related models (Siena and workAbout), updating the user interface and graphics to suit the new machines, but leaving the game play intact. These machines featured more memory, from 128k to 2 megabytes, and had graphics resolutions from 240x80 to 480x160. They used an upgraded version of the OPL programming language, which gives access to the operating system's menus and dialog boxes.
Finally I ported the game again to the 32-bit Psion range, the Series 5, Series 7, Revo, and third-party licensed versions like the Ericsson MC218, the Geofox One and the Oregon Scientific Osaris. For these machines I added connected textures to the map, a battle animation, and stylus control.
All of this was during the year 2010. Psion had stopped making and supporting consumer pocket computers many years before, so attention for the game was modest. A couple of years later it felt like I was the only person interested in Psions, so I stopped developing games for the Psion range altogether.
At the end of 2012 I started developing games in assembly language for the Sinclair ZX Spectrum instead. I'd learned Z80 assembly language in my teens, decades before, but teenage me lacked the patience to develop anything serious in assembly language. Adult me would have lacked the patience to develop on the cassette-based Spectrum too, but by 2012 there were PC-based tools that made the process much smoother.
I limited myself to the basic 16k model, in order to prevent feature creep, and decided that a good first project would be a port of my Psion game Barbarians. Being out of work at the time, this took me only a month to complete, and was based on the look of the 16-bit Psion versions. The gameplay remained the same, although the game now realises you've lost if the number of barbarians gets unmanageable.
Despite a lull in the Spectrum's popularity when the machine became obsolete, this little computer had such affection among its former owners that its revival as a retro platform in the 2000s has allowed the Spectrum to maintain its popularity to the present day. So in 2012 when I released Barbarians, the game attracted much more attention than the original Psion version ever did. It got some video playthroughs, and even a review in the Crash magazine annual!
Fast forward to 2024 and I decided the time was right to prepare the groundwork for an MS-DOS version of Barbarians. I've been developing MS-DOS games aimed at early PCs since about 2020, and had already ported my third ZX Spectrum game Ossuary. I have more advanced ideas for ancient warfare than Barbarians, so I decided to start work on an MS-DOS port before the idea gets eclipsed by a more complex game on the same subject.
But in early 2025 I picked up my roguelike project The Chambers Beneath again, which I'd been working on since 2021 and put aside to avoid burnout. The Chambers Beneath was released in July 2025, and shortly afterwards, the DOSember game jam was announced. Since abandoned projects were allowed for this non-competitive jam, I thought Barbarians would make a good entry.
My PC games are currently developed in C, making this the third programming language I've used for Barbarians. The graphics were based on the 32-bit version for the Psion Revo, which features the same 16x16 tile and sprite size I usually use in MS-DOS, but the 4-greyscale monochrome graphics were recoloured in the most colourful or gaudy of CGA palettes: blue, green, red, yellow. This palette gives a number of possibilities for dithered colours, so I have purple mountains, brown city walls, and forests in all kinds of autumnal shades.
I worked from the Psion's OPL source code, which is easier to read than the Z80 assembly language I used on the ZX Spectrum. Presentation is a combination of all previous machines, with graphics reminiscent of the Psion versions, and a menu system similar to the ZX Spectrum. The controls are designed like the Spectrum version to allow full play with just directions and a fire key, making this game playable in emulation on a mobile phone.
Comments