Tech Choices pt.1
Goals behind the choices
This is not the first time I’ve tried to make something like this. In fact I’ve been trying to make some version of this game on and off for a long time. I’ve given up on this and its sister projects so many times I’ve learned to stop beating myself up about that and just try and enjoy the ride. My choices attempt to optimize my fun as a developer. That may seem frivolous but I think it may give me a chance make something that could be (charitably) called a game. And if I fail again at least I had fun along the way.
The Runway
There’s a metaphor that I’ve seen used in for funding in startups that I think can be adapted to hobby projects and that’s the idea of a runway. In startups it’s the relationship between the amount of money you’ve received from investors and how much money you’re spending per unit of time; your startup’s burn rate. Money / burn rate = the amount of time you have before your project either flies or crashes.
My hobby projects also have a runway but it’s not a financial one. It’s the amount of time before I get bored and move on to something else. What then are money and burn rate in this analogy to an analogy? Money’s easy, that’s just my level of excitement or mental energy. When I run out of energy, if I’m no longer excited, I stop working on the project.
What about burn rate? Burn rate is the speed at which you lose excitement. Whatever parts of the development process are boring or frustrating to you will cause you to burn excitement. Anything that increases friction and makes progress slower mean you get less runway per unit of excitement.
What do?
There are two knobs to turn in this analogy to make the runway as long as possible: excitement level and boredom. The goal then is to increase excitement and decrease boredom.
Increasing Excitement Level
I’m open to suggestions here but here are some thoughts in no particular order:
-
Do a project you’re interested in. I always see advice in gamedev communities to reduce scope, reduce scope more, a little more, congratulations you’re halfway to a manageable project. I don’t disagree with that but there also has to be enough scope to inspire excitement. I don’t really want to write tic-tac-toe, I don’t really even want to write chuckie egg (look it up kids) or even Dizzy (why do I fancy an omelet all of a sudden?) I want to work on a game that I want to play and sorry good advice givers, that has a certain level of complexity. Remember we’re optimizing for fun.
-
Don’t do the parts that you’re not interested in, especially if they increase scope. I will never write a game in 3D. I could; I could learn the skills to get it done but I just don’t find it that interesting. None of my attempted games have ever had sound for the same reason. This is something that I recognize as a problem because a game without sound is missing something vital but my runway always ends before I grapple with it. Given that the goal is to have fun maybe this is not actually a problem.
-
Engage a community, show people your work. That’s why I started this blog. I think I’m doing something interesting (and maybe have something interesting to say about it). I haven’t tried this approach before so we’ll see. I think of this like having a gym buddy, there’s some accountability that comes with other people’s engagement. That’s assuming I’m actually interesting enough to get engagement. This could backfire spectacularly.
-
Make short term reasonable goals. I hate to get all management seminar but the initialism SMART has always made sense. I won’t go into SMART here. The point is that achieving even small goals can give a nice little dopamine hit. So more, smaller goals mean more dopamine and that should keep me coming back.
Decreasing Friction
Again any suggestions are welcome. This is all about avoiding frustration and maximizing productivity.
-
Use tools that you like. I’m going to go into this in part 2 when I talk about my choices. If just using a particular language, editor, technology makes you feel good or at least doesn’t fill you with righteous fury then use it if you can.
-
Choose the right tech level. I love the feeling of starting from nothing and building something. I like low level programming and memory management (up to a point). Using a higher level tech like rpg maker or even GDScript would likely just annoy me because I crave more (feeling of) control than those tools can provide. I fully appreciate that I could likely be more productive with more sophisticated tools but I would have used up all my excitement in forcing myself to learn them.
-
Use tools that are at least a fair fit to the job at hand. This may seem like it contradicts the previous points but it’s all about striking a balance between enjoying the act of creation and having enough productivity to get to the next moment of creation. I enjoy the puzzle of writing haskell but it would be a very poor choice for a game.
Closing Philosophy
Ideally just doing game development would generate enough excitement on its own to keep the whole process going. That’s not super realistic but if I can just keep extending the runway until I have something that’s actually playable that would be nice, although not the point.
All this is really about is having a fun hobby project. Optimizing for fun ensures this, and hopefully as a side effect I get the mental energy to keep working on it and enjoying it for a long time.
If I never finish a game that’s ok because it’s a hobby and I’ve made sure that I enjoy the process. The journey’s the thing, not the destination. My livelihood does not depend on this. If you’re trying to make a career out of solo or small group game development this is not advice for you. Maybe some of this is useful, maybe not.
Postscript
This entry was supposed to be about which tools I had selected for myself and why I chose them but it got a little off topic. I have slightly odd taste in tools or at least I’ve never seen my particular toolset mentioned much less recommended. The whole excitement runway is in some ways just a justification for why my sub-optimal choices are ok.