Tools to identify bottlenecks and performance issues
Coconut Lizard's Robert Troughton goes through the right toolset to keep a development team happy and working efficiently
Hiring a great team is undoubtedly one of the most important aspects of growing a successful game development studio. However, an often overlooked area is knowing what tools to supply that team with.
Ensuring that the right equipment and software is available, as early in the game development cycle as possible, can save a studio time and money.
Founded in 2015, Coconut Lizard provides a range of engineering services to remove bottlenecks and performance issues in game development -- including game optimisation, game hardening, game porting and middleware integration for Unreal Engine.
Ensuring that the right equipment and software is available can save a studio time and money
Here, we'll be going through the right toolset to not only help to ensure that return on investment for any given project is lucrative, but also keeps the development team happy and working efficiently.
Top tips for development efficiency
- Don't be cheap on hardware
If spending an extra £1,000 on a computer system gives you just 10-20% faster compilation, it's worth doing. That early investment will pay dividends by saving the developer five-plus minutes on every build they do. Having spare CPU means they're not walking away from their computers in frustration to go and annoy other developers.
- Don't scrimp on software licensing
Distributed compilation can make an incredible difference to efficiency. Yeah, it doesn't come cheap, and it can be painful to see that annual invoice come in. It's expensive for a reason, though -- because it's good.
It's immeasurable how much it's worth to have builds complete in 10-30% of the time it would without those tools. Note that if you don't want to spend money on distributed compilation, there are a few free alternatives that you can definitely consider. However, these tools typically don't offer quite the level of quality and efficiency that paid options do.
- Tool up with the best auto-complete
Auto complete tools and three-way-merge solutions are your best friend. There are a variety of options available here -- such as Visual Assist, the intelligent auto-complete (on steroids) for programmers, or Araxis Merge, an excellent cross-compare tool for merging changes made by multiple programmers.
You don't need to go for one solution for everyone, so be sure to speak with your developers about which options they prefer. These tools will help prevent wasted time from compilation errors and bad integrations. Use them wisely.
- Listen to programmer recommendations
Be sure to give proper consideration and thought to any other efficiency saving tools that your programmers recommend. For instance, a favourite of my team here at Coconut Lizard is Incredibuild, which is used for accelerating build times by distributing the work across multiple PCs on the office network. Programmers know their job and how to do it well. Trust and nurture them like you might your Dahlias at home.
Programmers know their job and how to do it well. Trust and nurture them like you might your Dahlias at home
- Above all...
Try to remember that we currently have a huge shortage of programmers in the game industry worldwide. We can only fix that by training new developers or by making already employed developers more efficient. In other words, get your team the tools they need, and you'll also ease the pressure on recruitment.
Giving your existing programmers the ability to work faster, and more happily, is likely much easier than trying to increase the company headcount -- and should definitely help retain the talented team you've already built.
Spend time making tools work
For internally developed tools, it's definitely worth spending the time making sure that they're efficient. Coconut Lizard has actually built our own memory profiler, MemFerret, for optimizing memory usage and for catching leaks in projects and tools. None of the other memory tracking software solutions we saw on the market were up to scratch. In other words, it can be well worth investing a little time in making proprietary technology work for you.
- Ask your programmers to imagine being the user of the tool they're creating. Ask the question: How can this tool make a person's work easier, faster, happier?
- When reporting mistakes and errors, give as much information as possible to help the person using the tool fix the problem. Do this well, and you will perhaps even be able to offer automatic fixes through the click of a button.
- Ensure game errors can be reported early, ideally as soon as they happen. Pointing out an invalid parameter on the player character before beta testing can save a lot of pain and embarrassment.
- Speak to the tool users about their day-to-day tasks and look at ways of streamlining that routine workload. Maybe some tasks can be automated.
- Build a rapport with users of your tool. Make sure that they're confident to report bugs and problems with the tool. Discourage them from finding workarounds to problems before reporting it to the development team.
- Stress test systems to identify potential problems that tool users are likely to meet later into development.
Our 29-strong team at Coconut Lizard is part of Keywords Studios, bringing access to a wider team of around 1,000 people working across game development studios internationally.
When working in such a global industry like video game development, creating the right tools to coordinate large scale productions is vital, especially if you want little to no wasted admin or pain points.
Prevention is the best medicine
Crucially, it comes down to the fact that prevention is always better -- and cheaper -- than a fix. Whether it's the time taken to consider how a tool can make life easier, or spending that little bit more on hardware, investing early on is the key to avoiding bottlenecks and performance issues later on.
For example, you could throw 1,000 characters inside a building to make sure the editor doesn't crash/halt, or build a 100km2 city of duplicated buildings to make sure the toolkit can cope.
Stress test everything as early as possible. Don't wait until the final stages of development when everyone's busy and frustrated on the day that a major milestone needs to be uploaded to the publisher.
Even if these measures may initially seem overcautious, ensuring that you start having done your due diligence will make everything that bit more efficient in the long run, translating to less time and money wasted in the long run. The same applies for internally developed tools. By testing systems consistently and reporting errors early, you will save time and money later on in development.
Fundamentally, the best game development pipeline doesn't cut corners -- it's a cliche for a reason, and that reason is the time, money and effort you save from being throughout the process.
Robert Troughton is the studio head at Coconut Lizard, a video games development studio based in the UK that was acquired by Keywords Studios earlier this year. His team specialises in finding ways to optimise games and improve their performance with real-time technology, particularly Unreal Engine.