Disclaimer: while I enjoy having (and the whole community) the ability to develop games on platforms like game consoles, even if homebrew, I don’t really like the way the scenes are biased towards piracy. I only use homebrew as a platform to make games on and if I’d be given the ability to use the official platform or software, I’ll be use them instead.

Introduction

WalrusRPG is a game engine project I’m developping to create, one day, a RPG i’m trying to get done since too many years. Started as a game engine being able to be run on a Ti-Nspire CX, it went (mostly by curiosity) to be runnable on PC but also 3DS and on PS Vita via homebrew libraries.

Walking to skeletons to talk to them.
Walking to skeletons to talk to them.

Structure

Abstraction Layer

This project has been interesting as I had to develop a small abstract platform to cover different kind of devices, with or without hardware acceleration while keeping it light enough to fit on the lightest platforms. Thus, the abstraction layer is a cooperated work with Streetwalrus and is stored in platform with a folder per platform to support and the main game logic is stored in src.

Managing the platform’s resources

This project has been interesting as I had to develop a small abstract platform to cover different kind of devices, with or without hardware acceleration while keeping it light enough to fit on the lightest platforms. Thus, the abstraction layer is a cooperated work with Streetwalrus and is stored in platform with a folder per platform to support and the main game logic is stored in src.

Accessing data

To avoid file cluttering (the Nspire doesn’t handle having dozen of files pretty well), a custom file container has been built from scratch : PIAF, acronym standing for “PIAF Is an Archive Format”. This has been an interesting excercise towards learning some basic security or integrity check to make sure the game won’t crash while loading a game. Also, some other libraries also have been created like WMap to store a custom fixed map format while keeping the tileset switchable or WFont to store bitmap fonts (mostly built with Littera) in a fixed yet faster way than using XML.

Sub projects

Undertale battle engine remake

Done during a few days in December (and actually finished a few months later), I tried to recreate Undertale’s battle engine with WalrusRPG. THe result was pretty quickly matching the original game except the resolution which would be halved (320x240 pixels instead of 640x480, capped then by the Nspire’s screen size).

Demo.

Unnamed Sokoban clone

Seeing that the Ps Vita homebrew scene was rejuvenated by the release of the Henkaku homebrew system, I tried to port the engine to PSVita. It was an afternoon task. I decided then to create a Sokoban clone to echo my very first C game project done back then for Casio FX-9860 family calculators

A few levels and the intro.