After motivation petered off, it was easy to rationalize not doing anything on this project. The excuses rolled in: what’s the point, it will never make money; no one will play it; making games fun is hard. Etc.
Times like these, I remind myself when motivation wanes, it’s usually because of a good reason. I’d hit a wall, and it had nothing to do with the excuses I was making. After some thought and false starts, I finally found out what was happening: working on SCRL was no longer fun.
Above all else this project is supposed to be fun for me. It’s a side project for a game that likely no one will ever play but me. So why not make it fun just for me? And why not work on the things that are fun and interesting to me? With that in mind, I thought about what I dreaded doing the most for the project, then thought of a way to make it fun for myself to do it.
Enter… SCOREDIT! (I am not good at naming things.)
SCOREDIT is a GUI application to add and edit game data, from NPCs to game regions (dungeons and towns) to treasure drops. A few semi-difficult decisions were made in the process of setting this up:
- The GUI will be written in WPF.
- The CSV files are getting replaced with a SQLite database.
I went with WPF because I know it and can move relatively quickly with it. SQLite (along with Dapper) will make it so I worry less about how I’m serializing/deserializing data and more about the data itself. Plus, most of the data does require some kind of relational integrity, such as monsters referencing aspects, treasure classes, and other monsters. Using a proper mini-database will make it harder for me to shoot myself in the foot.
Nothing pretty, but that’s not the goal here. So far it’s purely UI. I’m using this as a kind of mockup phase, where as I think of attributes or pieces of data to add, I add the boxes for them. Then, once I’m done, I’ll write up the database to back it. After that, I’ll rewire SCORLIB to talk to the database instead of the CSV files.
So far, for the screen above what I like the most is the auto-generation of stats. Of course, this could be done at runtime, but I like to tweak things beforehand and I don’t want to rely too much on in-game random generation for things like this. The plan is to choose a monster type — is it a tank? magic user? a speed demon? — and adjust its stat distribution accordingly. When I was still staring at the CSV files, manually choosing and writing out stats was one of the things I dreaded most.
This UI is bound to change quite a bit before it’s finished.