Four
Introduction
I was developping some kind of Earthbound-esque battle engine in Haxe and Haxeflixel as another iteration of the same game idea I have, always searching for the library that fits the best my needs. For now, I had switched the motivation I had behind WalrusRPG towards this project with hopes I’ll be able to gather interest and potentially people to work with on this project.
Post-mortem
Today, the project is abandoned. The engine itself is a bit of a mess in some specific places but it could have progressed to a fully working engine. But the real issue was the content. I had no ideas where to go or what to do after finishing the engine and every idea of setting or story fell flat. I’m not really a writer.
Search for improvment
Lacking a team, I had to create the whole graphics for the game (minus the font). Searching progressively the few of style I could have, I ended up with a Blender and Aseprite to create pre-rendered 3D visuals that I’d alter to limit the colors to a specific palette, giving it a cheap retro-ish style. I don’t know if I’m going to keep this style for new iterations or versions of this project but this is going to stay as it is for now. This has been somehow pretty fun to delve into 3D modelling and managing to create a decent asset pipeline to convert a 3D scene into pre-rendered images or sprites.
Scripting
One of Haxe’s advantages is enabling a common reflection system over its codebase, allowing libraries like hscript to exist. Hscript being a Haxe library to parse and interpret a subset of Haxe, I decided to use it as the way to script behavior like enemies’ to allow more flexibility and creating content without regenerating the project.
Localization
One of the concerns that rose to me to understand more guidelines around project structure is internationalization (as known as i18n). Designing assets and UI only for one language will eventually deter the flexibility needed to manage different languages. That’s why I’m using firetongue to manage i18n and a font that embeds a good part of Unicode to be able to offer translations when they’ll be needed. Here’s an excerpt of a translation file:
flag content
$MENU_ACTION_BASH Attaquer
$MENU_ACTION_PSI PSI
$MENU_ACTION_ITEMS Inventaire
$MENU_ACTION_GUARD Garder
$MENU_ACTION_FLEE Fuir
If Health Points (or HP) is in English, Lebenspunkte is German and Points de Vie (or PV) in French. Such differences can have an impact on UI (overflow, misalignment).
Postmortem?
Each iteration of this project brought its own lot of new features or impovements. I think the biggest one was extracting the textbox I implemented and made it a library accessible to anyone programming in Haxeflixel available here.
- Event system
- Finishing the map prototype
- Starting the actual game
This project became over years some kind of idea sandbox where I can try and apply game structure or algorithms to fully understand them and be able to use them elsewhere. Hence only programming-wise tasks are planned for now.