If you are a software developer working in the video game industry and wondering what else you could do to improve the quality of your product or make the development process easier and you don’t use static analysis – it’s just the right time to start doing so. You doubt that? OK, I’ll try to convince you. And if you are just looking to see what coding mistakes are common with video-game and game-engine developers, then you’re, again, at the right place: I have picked the most interesting ones for you.
One of the best ways to prove that static analysis is a useful method is probably through examples showing it in action. That’s what the PVS-Studio team does while checking open-source projects. After publishing of various articles, we compiled our top-10 mistakes from the program code in the video-game industry, and now we suggest you read this article - https://www.viva64.com/en/b/0570/
List of projects considered in the article:
- X-Ray Engine
- CryEngine V
- Space Engineers
- Quake III Arena GPL
- Doom 3
- Unreal Engine 4
Although video-game development includes a lot of steps, coding remains one of the basic ones. Even if you don’t write thousands of code lines, you have to use various tools whose quality determines how comfortable the process is and what the ultimate result will be. Static analysis is a very useful tool when developing, and one more option to help you improve the quality of your code (and thus of the final product).
Firebird, MySQL, and PostgreSQL are probably the most famous representatives of DBMS. Naturally, these projects often are compared with each other - by functionality, usability, etc. We have decided to perform our own code quality comparison of these projects.
The article gives a review of bugs, detected using PVS-Studio static code analyzer. A 'direct' approach of comparing by the number of warnings in this case is badly applicable, so you have to find other ways to compare. For example, you can analyze projects for potential vulnerabilities, as well as to see which of the most interesting errors will be found. By undertaking such a review, you can estimate, which code is better, and find out who will emerge victorious from this battle.
Read more - https://www.viva64.com/en/b/0542/
Honestly I warn: take this text with a certain amount of skepticism. I just recently started to get acquainted with the internals of PHP, but I would like to tell you about what is happening behind the scenes bug # 75237 .
On November 23, 2011 id Software supported its own tradition and published the source code of its previous engine.
This time, it's time idTech4 , which was used in Prey, in Quake 4 and, of course, in Doom 3. In just a few hours more than 400 forks of the repository on GitHub were created, people began to explore the internal mechanisms of the game or port it to other platforms. I also decided to participate and created a Intel version for Mac OS X , which John Carmack kindly advertised .
From the point of view of cleanliness and comments, this is the best release of the id Software code since the code base Doom iPhone (which was released later, and therefore commented better). I highly recommend that everyone learn this engine, collect it and experiment.
Here are my notes about what I understood. As usual, I cleaned them, I hope they save someone a couple of hours and encourage someone to study the code to improve their programming skills.