Skip to main content

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

I got recommended this game since it's similar to mine and it's really cool to see another puzzle platformer where you adjoin blocks. You take it in a completely different direction though and I'm impressed by how many mechanics you managed to pack in! A lot of the levels also had really clever design and I'm a big fan of the idea of destroying the middle block and leaving two separate blocks. The level you used to introduce that concept was fantastic.

I also saw that your game can be run on the GBA. What kind of engine did you use that allowed for that? That's really cool!


(+1)

The short answer is: a made my own engine to do this and it is complicated.

As a long answer, here's a basic overview:

  • The game as it stands is just a GBA game written in Rust (actually the game code is transpiled from AssemblyScript, but "basic overview"), I use my own HAL (hardware abstraction layer, a library providing functions and data structures for talking to the hardware), but there are plenty of resources out there on how this can be done.
  • For most other platforms (MS-DOS version excluded) the idea is the following: The game being Rust code means I could just recompile the whole thing, however the HAL normally makes that impossible. So I reimplement this HAL through software emulation, in a similar way to normal GBA emulators for things like screen drawing and sound channels. The game code however is natively compiled so I don't need CPU emulation, which tends to be the hardest and slowest part for the GBA. So it's somewhere between just packing the game with an emulator and doing a proper port.
  • On top of this I then have a slightly more conventional engine that allows for things like drawing tile maps and sprites to make things more viable for a jam, because the GBA hardware, whilst insanely simple compared to modern systems, is still a bit of a pain to work with sometimes.