Update 3: The first prototype


With some of the key building blocks of my project ready, I was open for business. Business code that is. And I did go down the rabbit hole for a couple of weeks and implement my prototype (surprisingly quickly, honestly to my own surprise). The result is a multiplayer-ready version of the game with basic PvP, even more basic PvM, a couple of maps, a first character class, a first attack skill, directional arrows motion, mouse drag motion, health & death event management, basic collision handling, and basic TMX-based rendering. I don't have sound yet, the UI overlay (healthbar) is pretty bare, but it's working and a few playtesting sessions with a few friends already suggest that the core mechanics are fun enough for people to start caring and enjoying the experience, which is already far greater news than I had even hoped for. But functional content such as game code and assets are actually not enough to make a game at the professional level. This update will therefore focus on one or two of many non-functional aspects I've been working on addressing in the last couple of weeks and will have to keep addressing in the future.

PS: as my wife is producing most of the graphic assets for the game, I'm intentionally not getting into that topic in here, I want her to be able to do her own asset dev log separately if she feels like it. The only thing I'll say on that note for now is that we render 2D sprite sheets from 3D animations loaded in Blender and add them to the game through the standard Animation and Texture packages in libgdx.

So by October 29th I was able to render a first (very silly) sprite on a TMX map that I had specifically built for test purposes and managed to make the sprite collide with the walls from the tmx map:

Early attempt at moving a sprite on a map video on Youtube

By november 7th I had a much nice character sprite (thanks to my wife), I was able to disappear walls or make them less opaque, and I had basic multiplayer synchronization working:

First multiplayer interactions video on Youtube

And by mid November, I had added targeting, attacks and attack recovery, thus enabling basic combat. Now as you can see in the following git log screenshot, as I introduced a new type of Being (a first monster in fact, an ant) and started generating different sizes for it, I realized that my quickly-thrown-together collision system had some major flaws in it. I could have debugged that and fixed it right then and right there but it's at this moment that I decided I had taken the prototype far enough. I needed to start investing into a test suite and start building out the project in a way that would enable long-term, professional-grade software quality.

Image attachment

This is where my prior involvement in professional software publication and IT experience started to kick in a bit and I let myself go down a new rabbit hole: not only starting to write unit tests but building a full fledged continuous integration & deployment platform. I also took the time to refresh my entire tool stack, moved to IntelliJ IDEA & gradle and even upgraded to an entirely new way of building modules in java: the Java 9 JPMS modules also known as Jigsaw. I could be writing entire tech-heavy blog posts on JPMS alone, and maybe I will somewhere else, some day, because I've noticed that most people are still stuck on either JRE 8 or at least are not adopting java modules and I find that fact interesting. "If I'm going to be in this for the long haul I need to prepare for the long haul" was basically my train of thought. The next update will be about how I built this CI/CD platform, I'll say a few words on java modularity and why I think it's important and has great potential (it's actually already payed off a couple of times already). I'll also briefly describe how I went about packaging both client and server programs and how I managed to deploy my server image in a kubernetes cluster that's managed and operated in the cloud. And with that I should be caught up with the current state of things and will start producing progressive updates as I go (I had to dump everything in here at once while it was still fresh enough in my mind).

Leave a comment

Log in with itch.io to leave a comment.