Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(9 edits)

Hi,
The engine was written from scratch for the jam. There are platform specific implementations for rendering, input, audio and timing. The gamecode itself is platform-agnostic. During the build process, the correct target platform implementations for rendering/input/audio/timing are selected and used.

Amiga uses 4bpp interleaved bitplanes and blitter driven software sprites for rendering. Audio is implemented via the awesome "ptplayer.asm" by Frank Wille. I still have to create an automated workflow to create an .adf file after compilation is done.

Atari ST uses regular 4bpp bitplanes. No blitter is used, as i wanted to be compatible with regular, non STe Ataris. This slows rendering down a lot, but at the moment it's good enough. Digital SFX is implemented via "interrupt bashing" the ym2149. Playing music is not yet possible. After compilation is done, everything is automatically wrapped up and put in an .st file using "MSAConverter".

DOS uses "god old" mode 13h for rendering. I also tried ModeX/unchained mode, but it was not worth it in my case. Audio is implemented via "MikMod".

All images are regular 8bpp and are converted to the target platform format during the build process via Image Magick/Irfan View scripts.

Audio is converted to target platform format with SoX scripts.

Maps are created in "Tiled", exported to json and then converted to a custom raw format to be used in the game.

The engine is written in C and a very very tiny bit of (inline) ASM.

Implementing all these things took way too long, but it was a lot of fun and I will definitely keep working on the engine and implement more target platforms :)

Have you written in C and compiled separately on each platform?

Yes, it's written in C and then cross-compiled for the target platforms.