OK, it’s not really day number 1. I’ve actually been working on this prototype for about 5 weeks now. I woke up one day with a monkey on my back whispering in my ear to make a twin stick shooter. Not sure why, but I’ve always loved the genre and have never got to make one, so I guess now is as good a time as any. This blog is part of moving the prototype to a full game project and formalizing my commitment to it. Not that I need to blog to be commuted, but I think putting stuff out there does help keep me honest, focused and accountable.
The game I’m making is a no-frills arcade game, and if I’m honest, this project is mostly about me getting my jollies programming crazy enemies and insane weapons, because that’s the fun stuff! I’m a generalist and can turn my hand to any sort of programming work, but I really enjoy the game play stuff, and that’s where all the creative joy is for me.
Sadly, today and tomorrow I’m not working on game play stuff. There’s a lot of stuff you have to write when you make a game that isn’t fun or glamorous or any of those good things. It’s basic drudgery and unpleasantness, but it’s critical and has to be done. I think this is a hurdle that many hobby devs fall over when they try to make a game. It’s death by 1000 cuts, and it’s easy to be bored/overwhelmed/whatever, and go chasing the next shiny thing. It’s like one minute you’re skipping along in the sunshine having a grand old time, and the next minute you fall into a hole full of spiders and can’t get out.
To mitigate this very real problem of burnout and boredom, I like to get a lot of the unpleasant stuff out the way early in a project, leaving me with more fun and engaging stuff later on. It’s normal for the energy and enthusiasm to drain out of a project over time, so front loading the crap at the start while I’m all perky and excited, really helps me personally. There’s still shit to do at the end, but less of it.
So today and tomorrow, I’m working on high score tables. The game has high score tables for you locally, but also global tables that players all over can compete in. Storing high scores locally is easy, but to do global high scores requires a web service of some kind. I’ve done a lot of web apps and services over the years so this isn’t technically challenging, but it is dull work I don’t enjoy.
Yesterday I got the database up and the actual web service running on my server, and today I’ll get the game sending data to it and have it stashed in the database. Tomorrow I plan on making some in game screens and UI to display the high scores. It’s a lot to do in 3 days, and I may not get it all done 100%, but the lions share will be out of the way and it should be quick and easy to wrap up later on. Yesterday, despite getting the DB and web service up, I did get sidelined making a camera shaker and glitchy TV shader. I also spent a fair amount of time outside in my backyard enjoying the Southern California sunshine. I think I just needed a break from DB schemas and PHP.