State of the Project: February 2019
It’s been about 2 and a half years since I first got the itch to build my own RPG (open sourcing as much of the engine code as possible) and about a year and a half since I started putting consistent effort into this project. In that time I have gained a better understanding of how the pieces fit together in LibGDX and how I can present framework components, such that game authoring is focused on content generation and configuration as much as possible. About 9 months ago I hit a wall in which I wasn’t happy with how this project was working out on a couple of fronts.
-
Engine concepts were bleeding too heavily into game authoring.
-
I had made some foundational architctural decisions before having an adequate understanding of how LibGDX worked that were making combat implementation overly difficult.
At this point I began a large refactor that aimed to rewrite JRPG Engine to solve these problems, reusing pieces of the existing code base, fitting them into a better overall architecture. Although progress has been slow at a pace of a few hours a night after the kids are in bed, I’m happy with how this iteration of the engine is coming. I’m currently deep into the combat implementation on the new architecture and while its a big feature, the path to completion is clear.
The Path Forward
MVP Features
Complete in the refactor
-
Tiled Maps
-
Map Navigation (with collision layer checking)
-
Basic UI Elements
-
Front End Screen (with start new game)
-
Save/Load System
-
Quest/Story State System
-
Stat System
-
Equipment
Implemented Pre-Refactor
-
Collision Detection with Other Actors on Map
-
On Map Cut Scenes (partial implementation)
-
Treasure Chests
-
Light Source Effects
-
Background Music
-
Full Menu System
-
Conversation System
Additional Features
-
Combat System
-
Magic System
-
Leveling Up
-
Inventory Management
-
Item Usage (in battle and from menu)
-
Sound effects
Post-MVP Features
Some features I already know I want to build, but wont hold up release of the MVP for.
-
ScenePlay (custom cutscene scripting langage)
-
Minimaps
-
Fast Travel
-
Autosaves
-
Additional Visual Effects
-
Tooling
-
Gradle Plugin
-
Combat Simulation framework
-
-
More TBD