The Importance of Creating Tools to Support Your Indie Game

Efficient tool development and automation streamline game production, enhancing flexibility and reducing manual coding efforts in large-scale projects.

Video Information

Title: The Importance of Creating Tools to Support Your Indie Game

Enums should only be used when all possible options are known and finite.

Tooling is crucial in game development for supporting projects with proprietary tools.

Creating custom inspectors and code generators can enhance development efficiency.

Automated tooling can simplify tasks like managing actors in a scene.

Procedural level design can benefit from reading data from structured files.

External editors can be developed to assist in creating game assets.

Tool development can significantly speed up production and asset management.

Localization tools can automate language translation tasks, saving significant time.

Large-scale games rely heavily on advanced tooling to manage content efficiently.

Experienced developers can leverage internal tools to expedite game development.

yeah you brought up two good points one thing that I hear I actually see this a lot you know and my day job this actually came up like two weeks ago we added one of the developers added a new enum to the application and I was like listen you know this eat this doesn't this shouldn't be an enum and he was just like why I don't understand it's like it's a subset of options and it and you know it seems like it makes sense to me and I was like yeah but it it it's not an exhausted list like you have not exhausted all the possible options and you said days of the week it's

a great example there are a finite number of options for days of the week so that can be an enum because it will never change and I think and even personally myself you know I hate to say I abused enums but it's like you know it's kind of like you it's there it seems like it makes sense it's for like weapon types or something like that but yeah when you when you're gonna use an enum when you're considering using an item you should ask the question have I exhausted every possible option that could be in this enum another thing that you brought up was the tooling yeah and that's something that a lot of game

developers you know it's it's something that I would like to get across more on my channel and make more videos about and talk about is the aspect of game development that is you know tooling supporting your project with proprietary tools and I you know whatever I can go on a rant on that but well that's to be honest one of my favorite parts of software in general I mean it is really fun having stuff move around on screen but there's something really cool about making custom inspectors and having code generators and like it's a really silly thing but I will never have an interface for an object so a common thing I do is I

have a concept called an actor and an actor is just when I encapsulate a single object in my scene and I say this object can turn on or off show or hide and probably has some basic actions so a good example of this would be a light or a some prop in the scene that has sort of a finite set of things that does but it's sort of just an actor in the scene that it's meant to sort of add ambience or whatever I build an inspector for that that gives me the buttons in the inspector for on/off show and hide and no what I also do is I build an actor manager which will

group them all and then let me toggle them off based on rooms or based on categories therein I don't need to do this but it means that the designers in the team can copy the actor script put it on to any other object hook up animations to the shows and hides it automatically gets added to the manager class and I can control it from one place or they can control it from one place and so it gives you this really nice set of I don't know just automated tooling that makes everything easier to work with and you don't think about it again so tool development is one of my favorite the other thing reading files

like the amount of times I think about level design when it's procedural and at the end of the day you're just looping and then adding things that you know based on some algorithm you can load that stuff in from files so it's so easy to just take a 2d array in a text file 0 comma 0 comma 0 comma 1 0 comma 1 1 so you know just basically build a structure for what your layout is loaded in it's completely it has no data associated with other than positional data and you can take that map layout and then feed in a block category or a entity type list and just say for each 0 this

thing for each one this thing for each to this thing and you can basically load all of that in with automated tooling and you can even build an external editor which can generate those by you know type in a number of width by height and then draw a grid and then you can have it like read a text of sprites and then give the editor something fun to play with outside of unity that would build these text files there's so many amazing things you can do that like it's it's really can't be it can't be said enough a lot of people think game development is literally writing the code that appears on screen or the

stuff that makes things move but there's an entire industry of people whose sole job it is is to make the production faster to add more assets to the game world to extend the the various different components of the Rob another one is localization like that's so hard to do to have a tool that will automate all of the different languages and replace the text where it needs to be like if you can do this you can save yourself what would be somebody's job for about a month just trying to get all of the right text in all of the right places so it isn't something to says to scoff at you know it's actually very

fun to do yeah and if you consider games like massive games like you know Red Dead Redemption as the one I always use imagine if they had to touch the code every time they wanted to add a new quest like if you think about it like that and you sort of reverse engineer and that I mean the tooling that's and that's in that game must be out of this world and obviously they probably used the same engine that they that they use to create grand theft auto and all those other open-world games but I'm that's basically what someone's you know probably a whole departments job is at rockstars to create tools so that you know

it does become a little more turnkey now when they want to make the next met you know open-world game they want to set it in a completely different story or timeline or whatever they can do it because it's just sort of a matter of you have these people who are now experts inside of Rockstar using those tools they're power users of those internal tools and they can probably crank out a game much faster than the first go around when they were creating you know granteth auto-5 or you know Lea other open-world games