Dev Campfire: Cheat Tools In Development

As we’re reaching the end of the project, I want to share some posts on a few things that I’ve learned, not only on this project but on my journey overall and hopefully help some other Devs out there. These posts will come under ‘Dev Campfire’. The first post I’m going to jump into is cheat tools in development.

My Journey So Far

In the last seven years working commercially, I’ve seen various ways cheat tools have been implemented and utilized as part of a project. I’ve also had over a decade and a half of making my own games and learning the hard way of not being efficient with my time and development. I’ve definitely learned a lot from my peers and the places I’ve been so fortunate to work at. There’s projects I’ve been apart of where the tools have made creating content productive, but there were some projects where there were those who didn’t see the importance of cheat tools from the start and this ended up making development and testing way longer than it needed to be.

Organizing Creativity

Cheat tools make testing content easier. It cuts down time spent ensuring scenarios and mechanics work the way they’ve been designed. From experience, I strongly feel that cheat tools should be created as soon as your mechanics are flowing and your game structure is running. A few counter arguments I’ve heard to this, is that isn’t essential to early development, a waste of time and they’re just ‘quality of life’ tools but when you’re by yourself or have a team having to go through all the motions to polish, tweak and develop functionality, gameplay and art, why wouldn’t you want to save as much time as you can?!

  • Saves hours of development time
  • Reduces the amount of repetition required to perform a task
  • Helps all team members test and refine their specific tasks with more ease
  • Helps with testing
  • Improves overall workflow
  • Cheat tools help everyone in team including bug-testers and trailer makers

 

Planning for Production

I’m lucky to have used some great cheat tool systems first hand while working at a few companies. When you have tight deadlines and you have a large team of people, you can’t afford to have them sitting there for hours playing the game to get to the function, mechanic or asset they want to test. These were fairly big games to create and over the years these tools improved workflow for them.

Though the same applies to a small game/ demo/ vertical slice. Even something that takes 10 minutes to play through can end up taking hours to iterate on when you have to go through everything without a means of a shortcut.

I was contracting on one project that had a series of steps that required a user using VR to go through. I was responsible for creating these steps along with animations, my suggestion for cheat tools was dismissed as ‘non-essential’ due to the time we had. In the end there were over 90 steps that could only be tested in VR, which meant I spent hours waiting for builds and cumbersome amount of time repeating steps to get to the area I needed to check that would of only taken a few minutes. The project took three times as long as it was budgeted for. I would say the lesson here is take the time to plan how people will be interacting with the project through development because it ended up being a long painful process with big hurdles at every turn.

  • Build times draw out testing, so you want to be able to jump in as quick as possible
  • Observe the project and tools you’re using and think about how will it impact the team further into production
  • Plan and communicate with team
  • Too much down time eats into budget

 

Automating Development

Teams usually spend half their time implementing what they create. Automating implementation is another area where cheat tools can help. These cheat tools help with reducing time spent on repetitive tasks and reduce possible human error through workflow of creating content.

A particular project I worked on in a very small team, had a procedural level system where I was creating the art and collision for. The modular components all had requirements and rules that needed to work in order for them to function in the game properly. Once we had a few pieces in place, the lead programmer spent a day creating an automation tool for me to get these modular pieces functional in game. It could of been a tedious task of hooking all compartments up which could of ended up in mistakes and leaving one of us to deal with all the problems in between but it instead allowed a few things to happen:

1. I spent more time creating assets which improved my production time, leading to significant amount of asset creation

2. Neither of us had to actually spent a lot of time hooking anything up

3. Any problems or changes were made globally from their end which then carried through all the assets saving an enormous amount of time

4. The time it took to get assets functional in game was almost instant.

This project came together very quick with new levels created in a small period of time, we also had a lot more fun creating it because we got to spend more time on the things we enjoyed doing.

  • Automating the process where you can to implement assets will increase time for other areas of development
  • Creating tools for team members will improve their workflow and also yours indirectly in the long term
  • Automating some processes will allow for rapid fixing and iterating
  • Reduces human errors and fatigue

On a similar topic here’s also a great talk about Procedural Pipelines for small teams by Mike Blackney

 

What I’ve learned

Even with the things I’ve learned, I still wish I had implemented ways to test things faster through production of my own project. As you get closer to the end of the project it takes longer to load, longer to sift through your content and events take longer to play out. I wish I had made a test scene/sandbox environment where I could drop a player in with certain abilities, weapons or enemies. Nom Nom Apocalypse is a procedurally-generated game, so even loading a specific dungeon with a certain set of rules would of reduce the amount of time spent testing updates, revisions and tweaks.

Conclusion

Games and any interactive application require an unpredictable creative process and this makes it hard to precisely budget for. Taking the time to create tools early on is planning for a greater productive development cycle. Faster implementation means more time spent creating and enjoying the better qualities of development. No project is without its hurdles but designing a content-friendly pipeline will go a long way with forming an advantageous environment potentially reducing down time, making the most out of your budget.

– Josh

 

 

Illustrations by Manfred Steger

Leave a Reply

Your email address will not be published. Required fields are marked *