Making a game for the GBA and PC from the same codebase
First reported by Mattgreer.dev ·
Games can now be developed simultaneously for the GBA and PC from a single codebase, reducing development effort for cross-platform releases.
Developer Matt Greer is creating a new game, Eridin, for both the Game Boy Advance (GBA) e-reader and PC platforms, using a single codebase. Greer encountered significant difficulties in producing scannable dot strip cards for the GBA e-reader version of his previous game, Pixel Pup, after his printer changed equipment. This led to the cancellation of the e-reader release for Pixel Pup. For Eridin, Greer is developing the game in C using DevKitPro and libtonc for the GBA and SDL2 for the PC. He has created an API layer to abstract platform-specific engine components, with the goal of maximizing code reuse. The PC version will retain a GBA aesthetic and resolution (240x160) but will incorporate quality-of-life improvements and smoother graphics, such as subpixel scrolling and higher frame rates, enabled by rendering at a higher internal resolution. This dual-platform approach serves as a hedge against potential manufacturing issues with the GBA e-reader cards, with the PC version being a viable release option regardless.
The approach of building a shared engine with platform-specific implementations for GBA and PC, using C with DevKitPro/libtonc and SDL2 respectively, demonstrates a viable strategy for indie developers targeting both retro and modern platforms. This abstraction layer, inspired by the GBA's own API, allows for significant code reuse, minimizing duplicated effort. The decision to maintain a GBA resolution and aesthetic on PC, while enhancing performance and user experience, sets a precedent for how classic game experiences can be modernized without losing their core identity. This technique could be adopted by others looking to maximize reach across disparate hardware generations.
This method of development highlights a growing trend of 'retro-modern' game design, where developers leverage modern tools and hardware to recreate or extend classic gaming experiences. The PC version's ability to scale the GBA's 240x160 resolution and implement features like subpixel scrolling and higher frame rates shows how current technology can enhance, rather than just emulate, older systems. It also serves as a practical solution to the physical manufacturing challenges inherent in GBA e-reader peripherals, providing a fallback release strategy that doesn't compromise the game's core design, thus mitigating business risk for solo developers or small studios.
AI-written summary. May contain errors.