My Raspberry Pi project has stalled, or rather, having solved all the problems I wanted to solve, my enthusiasm for it has flickered out. I barely even turn on the Pi these days. It was quite disheartening - as soon as everything worked, that very moment, I experienced a sinking feeling in my stomach. What next? There's still loads for it to do, plenty of problems remain. The text font only works for the lower Latin 1 character set - no umlauts or graves or cedillas, which isn't really acceptable these days. I never did get image rotations working well; my brain doesn't handle mathematical transformations well. There are four buttons on the ePaper display I could use; only one is coded to do anything, just refreshing the display. I know I should add a weather display, or a news ticker, or something. What would be useful to me is a wee app to tell me what bin day it is - brown garden waste day, green recycling day, black landfill waste day - but unfortunately the City of Edinburgh Council does not provide an API to access this information.
But I still want to do something. Given that I am a professional software developer who never gets to write any software anymore, coding still appeals to me. So I have been trying to return to my game idea, Project Hershel. That project also stalled - there's a theme developing here - because I couldn't work out the basic gameplay loop. I had used the libGDX library to build a basic UI, but had no idea what the player would do on turn one.
Mentally, however, I didn't give up. I've been pondering gameplay options for months, and I think now I have something workable.
Project Herschel Version 2
Or perhaps version 3. Or 4. There have been a lot of iterations... I took the opportunity to try out a different game engine, Korge, which is written in Kotlin. Initial impressions were good; mentally it fitted with me more than libGDX did. However, Korge a very young project, very sparsely documented, and in the end it was just missing too much functionality required for the sort of game I'd like to build. One thing I did learn from my previous attempts was not to get too focused on the graphics early on, so instead I wrote - and unit-tested - a basic game-play model. This was useful to allow me to play with the mechanics I have in mind, think of ways I may code them, and to even programmatically run through a few clicks of "next turn" to see if the idea was sound. But when it came to plug in a basic UI, that's where I found the weaknesses of Korge.
So I've returned to libGDX and started a new project. I've tried to port over my existing game model from Korge to libGDX - thankfully, there were almost no dependencies on Korge. Software development is hard, though - it took me a day to transfer the model over, because in order to make the unit tests to run, I had to change how the model loaded data files, which meant learning the libGDX AssetManager, just so I could then mock the AssetManager in my unit tests...
By the time it was all "working", it was time to switch off the computer. I'm wary of spending too much time at the PC, especially at the weekend, given that I spend my working week sat at the same desk, staring at the same monitor, sat on the same chair...