Rétro-Actif

Rétro, blog, prog.

WalrusRPG

-

Note: This page is in a WIP state.

Status : paused as I'm moving over another platform for now.

WRPG
Zoom Here's a WIP screenshot of the entity interaction system.

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, on 3DS1 and on PS Vita1.

Note that some prototypes were done with that game engine. They were pretty easy to make as the engine is built more like a general purpose game enigne than specifically RPGs but RPG-based features are in development.

Check the source code for the game engine and some utilities/libraries here : https://github.com/WalrusRPG

Structure

Imgui
Zoom ImGui integration.

The 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 resources

To be able to aovid fetching the same resource twice in the same game state, I created a simple ref-counting resource manager which would hold the files and yield the resources contained.

Storing 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 XML.

Sub-projects

At one point, I tried to make use of this engine to make sure it'd be fit for a real application.

An Undertale battle engine prototype

Video | Binary (linux, windows x64, Nspire CX CAS) | Source

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).

Unnamed Sokoban clone

(Screenshots will come later)

Seeing that the Ps Vita homebrew scene1 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


  1. 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.