Tuesday, February 6, 2024

Keep your eyes on the prize

            I am doing a podcast with my friends about games (check out The Adventure Mechanics here) and I decided that I need to try for accountability on actually releasing a game. To that end, I'm going to go through the development process to release a game. Here is the transcript from the twenty-first episode on tooling for your game and keeping your game in mind:

Welcome to another The Adventure Mechanics Side Quest.  I'm Chandler. I am rarely a social media person.  I know, that's weird coming from a podcaster, but it's true.  I do lurk in a number of game design forums, though.  One thing that came up on Reddit prompted me to consider this question:  How much time should you spend on your tools?  At what point does your toolset become work on building an engine instead of building a game?  These are important things to consider while working on your design.  After all, if you're building an engine, you're not building a game.  Let's talk about how you can find a balance between working on your tools versus working on your game.

Tools are great.  They can, when done with the game in mind, cut down drastically the amount of time it takes for you to put in new story elements and other content.  But they shouldn't be the main thing you're working on, especially while you are in production for your game.  During prototyping and early production, sure, spend time working on tools to speed up the rest of the process.  Keep in mind, though, there's a limit to how much return on your time you'll get from spending more and more effort on your tools.  The more time you spend working on your tools doesn't necessarily correlate to the less time spent stitching everything together.  Is that fancy UI for your tool useful?  Sure, but if you spent weeks working on it to get it just so, is that time worth it?  Maybe not so much.  On the other hand, is the dialog creation tool important to get right for your visual novel or long RPG?  Probably.  It's important to know where you should and should not spend time when it comes to working on your tools.

Let's say that we're building a metroidvania.  Before we go into tooling, let's ask what the main focuses of our game are.  Is a deep and complex dialog system part of it?  If we are following classics like Castlevania, probably not.  What about an intricate and expansive map?  Absolutely that's important.  In these two examples, we already know where to focus our time:  In making map chunks easier to generate.  We can spend just enough time on the dialog system to be functional, since it's not one of our main focuses.  That map generation tool has to be fully featured and ready for us to spend a huge amount of time in.  That means we need to make sure it has all the features we want in it before we start production.  Planning comes into play here to determine whether we have the power we need in our tool, or not, to get all the features we want into the map.  During prototyping, we will want to make a test area with the tool and make sure it has all the capabilities we need for all the challenges we plan on putting into the map.  Importantly, that doesn't mean building out the entire map, but rather making a sandbox that covers the basics of each challenge we plan on putting in.  Most importantly, we need to make sure our map generator can do this easily and without fighting with it do get the areas working.

Where do we stop working on our map generation tool in this example, though?  That's a tough question.  The obvious place to stop is when we implement that last feature we need to get the map generation working.  Is this tool going to be the basis for all of our projects going forward?  Then we will have another bite at working on it in future projects.  Leave notes on places to improve for you and your team.  You may get to them, you may not.  Future you will appreciate past you doing this if you touch it again, though.  On the other hand, if this tool is going to be paired with the release of the game, we are going to have to spend more time polishing it and making it ready for wider consumption.  This brings up one thing that I implied in this section:  That tools don't need the same level of polish your game does.  An internal-only tool looks vastly different than a tool you expect a wider audience to use.  Meaning, an internal tool can be rougher and have bugs that, although ugly, don't affect the functionality of the tool.

A tool for wider consumption, however, needs to have a nicer workflow and be ready for people outside your team to be able to work with.  It needs to have the help files updated and current.  It needs documentation on most, if not all, of the expected workflows.  It needs to have the vast majority of the crashes ironed out and fixed.  Polishing tools to this level is non-trivial.  Ideally, all of our tools would be up to this level.  But that effort needed isn't going towards the main show, that metroidvania we are working on.  Unless we plan on selling the map generation tool, polishing our tools (heh!  I'm so mature for laughing at that...) should only get one or two passes, at most.  Tools are needed for generation and should work, but at the end of the day, players won't care about our tools if we don't release them and our game sucks.  Our priorities need to take this into account.

 So, we defined clear areas where we shouldn't work more on tools and where we should.  What about that grey area in between? Well, if you haven't caught it, yet, where I tend to stop is where the benefit of adding a feature is less than the time cost it takes to build that feature.  And to a certain degree, the same applies to bugs, at least for me.  Tool-breaking bugs obviously need to be fixed, but if the bug can be worked around with little effort, or are only encountered in edge cases that won't be encountered in your game, can be noted and worked around.  Each time you look at changing the tool, after the initial build, obviously, you need to consider the benefits of adding it versus getting your game one step closer to finishing it.

There is one caveat on this methodology is that it assumes you are building a finite game, not a lifestyle game that you'll be working on a decade (or longer as the case may be).  Tooling in this context has significantly different considerations and is a topic all on it's own.  And considering that I'm just a hobbyist developer with literally no experience in either playing or developing a lifestyle game, I'm probably not a good resource to pull from in the first place.  That being said, I suspect that a number of considerations I've laid out here will still apply to that style of game.

I think this is enough to get started really thinking about your toolset and leveraging it to make your game.  As always, if you have a question or comment, you can either find me on various social medias as jcsirron or leave a comment below.  I'd love to hear your experiences with tooling and game design.  This has been another Adventure Mechanics Side Quest and I'm still Chandler.  I'll talk to you next time.