Virtual Developer Workshop: Containerized Development with Docker
By Damian Wolf, Livecoding.
Unity is a popular game development platform. It is impressive regarding functionality, and also caters to the different game development requirements. Game developers can use Unity to create any type of game imaginable, from world-class RPG games to the most popular augmented reality game, Pokêmon Go. With widespread use around the world, many developers showcase their Unity skills and build an audience online even before the game is released! Furthermore, many beginners utilize Unity to learn game development or game programming in general.
The real impact of Unity is more diverse because it is a perfect tool for both indie game developers as well as big teams working on a project. The ecosystem also helps Unity to sustain and grow in the right direction. Due to its complexity—it handles design, scripting, debugging, and other aspects of game development—Unity can be tough to manage.
And, that's why we will go through the 20 Best Unity Tips and Tricks for Game Developers.
20 Best Unity Tips and Tricks for Game Developers
Before we start, understand that Unity is updated frequently, so the best tips listed here can differ from version to version. It is always a good idea to introspect and modify the tips according to your project and the version of Unity you are using. Let's get started with the tips.
Five Workflow Improvement Tips
Workflow improvement tips are clearly aimed to help you improve your game development process. They will ensure that your project moves faster and in the right direction.
Let's list the five best workflow improvement tips for Unity game developers:
- Source control your work for maximum effectiveness: Make proper use of source control to improve your workflow. This will ensure that you don't lose any of your work and also enable you to go back and forth to check what's changed. You can serialize assets, use branching strategy to maximize control over production, and use sub-modules to maximize effective control of your source code.
- Ensure that you decide on the scale of assets you are going to use in your project. The decision depends on the type of project you are working on, and the resolution the game is aimed to run at.
- Always automate your build process to save time. Automating the build process also will ensure you can work on different game versions simultaneously, and also help make small changes now and then without going through the whole build process after every change.
- Properly document your work. There can be no big disaster when you find yourself stuck over a piece of code that you wrote earlier but forgot to do code documentation. Also, documentation can help other teammates to better understand your work and collaborate on the project. You can use Livecoding for video code documentation. Read this to learn more.
- Test scenes can become a bulky part of the project and they are useless after the project is done. To make sure that your project files don't become bulky, keep test scenes separate from your code and delete them when the project is complete.
Five Coding Improvement Tips
Now, let's move to the most important part of game development: coding! Let's get started.
- Use namespace to your advantage. Namespace enables you to handle your code better because it allows you to avoid any clashes with 3rd-party libraries and other classes within your code.
- Coroutines is a great tool for solving many game problems, but they are equally hard to understand and debug. If you are using Coroutines, make sure you know what you are doing. Understand how they work in sequence and parallel mode, and so forth. Read more about Coroutines here.
- Assertions can be your best friend when finding bugs in your code. You can use the Unity.Assertions.Assert class to use assertions.
- Extension methods are great for improving your syntax readability and management.
- Localization should be done in separate files. Keep only one language in each file.
Five Debugging Improvement Tips
Debugging can be a tough nut to crack. With proper debugging, you can make your game release-ready and ensure that final game quality is maintained. Let's get started with some debugging tips for Unity.
- Master the debugging tools available in Unity. The debugging tools in Unity provide a lot of functionality, including functions that can effectively help you debug your game. Utilize functions such as Debug.Break, Debug.Log, Debug.DrawRay, and Debug.DrawLine to your advantage. The first two functions are used to understand game state, whereas the last two functions help you to visually debug the game. You also can use the debug visual inspector to locate runtime private fields.
- Because Unity doesn't provide any special IDE to work with, you can opt to use any IDE for your development work. It is also a good idea to master the IDE debugging features. Check out Visual Studio's debugging article to learn more.
- Unity has released many test tools. You can check them out and enhance your debugging methods. You also can check the tutorial for Unity test tools here. In addition, you can use the available tools to run scratchpad tests. Scratchpad tests are more conventional, and don't require you to run a scene.
- Console logging can be very useful if used in conjunction with an extension. For example, you can use Console Pro Enhanced to make your console amazing!
- You need to debug differently to debug visual animation. The Visual debugger can help you do that by generating graphs over time. For example, you can use Monitor Components to do so.
Five Performance Improvement Tips
Tightening up your game optimization is necessary to make your game successful. The game could be great, but is still plagued with performance issues. And, games with performance issues are not received well by the end users. To make sure your Unity game is well-optimized, try out the following tips.
- Before you start optimizing your game, you need to find out where the performance issues are coming from. For starters, it is a good idea to find out whether or not it is coming from the GPU or the CPU. Finding the culprit will help you approach your optimization better, because both GPUs and CPUs have different performance optimization strategies.
- Performance optimization is important, but don't write code that is complex to read and hard to maintain. The decision should be made according to what performance gains you are getting for the change. If it is not substantial, ignore it. If the gains are high, keep them and do proper code documentation for others to go through the code.
- Try to share object material in a scene to improve performance per scene.
- Check if the game works better by lowering the game resolution. If that's the case, use better materials and algorithms to make it work at a higher resolution.
- Use a profiler to understand and track performance problems. You can get started here.
Game development is a complex trade, and requires mastery of different skills. The preceding tips will help you to make your game development more refined. Additionally, these tips are not exhaustive at all. It is all about mastering your craft and learning on the go. If you are a Unity game developer, you can showcase your work and build your audience at the same time by broadcasting your work on Livecoding.tv. The platform also offers unique value on feedback because other game developers chip in by sharing their thoughts to help improve the community.
Do you think the article lacks some important points? If so, don't forget to comment below and let us know.
About the Author
Damian Wolf is an author and tech enthusiast with articles published on top technology & coding Web sites, such as InfoWorld, DZone, HongKiat, and more. In addition to working with Unity Game Engine, he loves trying out new things: apps, software, and trends, and will gladly share his views.