What else should a game programmer read?

This is a continuation of the article with interesting, as it seems to me, materials that were collected during my work in gaming companies, and which influenced me in one way or another. A game programmer, like any other programmer, has to read a lot of different literature, gaming and game-related articles, and watch recordings of conferences. So, over time, we got a list of articles and videos of different technical orientations, which is noteworthy: quite a lot of them were published in a thread on Habré. The year 20 turned out to be particularly fruitful, when it was not always possible to leave the apartment, then perhaps collecting various articles grew into a small hobby.

But, as they rightly wrote in the comments to the last article, we should not forget classical literature, so this time I will put Gogol’s “Dead Souls” in first place. The work tells the story of a young and ambitious man who comes to a provincial town with an unusual offer: he is going to buy “dead souls” – peasants who have died or are leaving, but have not yet been “deregistered”, in order to re-register as their owner and receive credit for them. loans and privileges.

For two hundred years, the novel has rightfully been considered the property of world literature. The work is smart and ingenious, because the idea presented is not difficult to implement. I think, with some adjustments, it will be relevant in 10 and 20 years, remaining, as it were, timeless. Re-reading the novel, probably for the third time, unfortunately, I understand that I see from my own experience how Chichikov’s ideas still live on.


So let’s continue!

joelonsoftware.com – if anyone doesn’t know, Joel Spolsky was one of the authors of Stack Overflow, probably the most popular resource for programmers with questions and answers. The site provides an opportunity for programmers to share knowledge, solve problems, and discuss programming-related topics. And of course his book “Joel on Software”, a collection of the most interesting articles from the blog with practical advice on software development and project management.

Blood, Sweat, and Pixels: The Triumphant, Turbulent Stories Behind How Video Games Are Made Blood, Sweat, and Pixels: How to Make Games is a book written by Jason Schreier and published in 2017 about how video games are made. About the difficulties that developers face in the process of creating them. The topics that are raised in the book are not only about successful success, there are also about failures, conflicts, small budgets, difficulties (not only technical) that studios and indie heroes face. The iconic projects from the book are “The Witcher 3: Wild Hunt”, “Destiny”, “Uncharted 4: A Thief’s End”, “Stardew Valley” and much more. In general, I liked the book, probably due to the fact that I had to deal with the events described personally, but the author leaves out a lot and does not tell or does not tell in full. What cannot be taken away is the ease of presentation and the emphasis on the human aspects of development. It reads like a good story about difficult decisions and situations, persistent overcoming problems. Happy Ending included.

https://kotaku.com/the-exceptional-beauty-of-doom-3s-source-code-5975610 sources of the third Doom as an example of a high-quality and easy-to-understand large code base. When I read the source code of the third doom, I was always amazed at the very small number of comments, but what is most interesting is that the code was no less understandable. It was always annoying when you couldn’t tell by the name of a method what it did. It’s like taking a pencil with a red lead and drawing it with green. If a method does too much to describe it in a sane name, then you need to reduce the amount of code inside the method – this is probably one of the best rules that I learned from these sources. I wouldn’t say that doom turned my world upside down, but there are fewer comments in the code, and the functions are shorter – that’s for sure.

MISRA C++
This is a set of standards and guidelines for developing safe and reliable software on the plus side. The goal of MISRA C++ was to improve the quality of software, increase its security and reliability through a set of rules, the observance of which helps to avoid common errors and problems. During my work on hydroacoustics software, this was the main guide for development; for example, how do you like the absence of a free new/delete operator in the program? If a program can only allocate memory at the start, or cannot allocate it and only uses the allocated amount, then the approach to design and development becomes radically different. Many practices and rules can be applied in the gaming industry, and it certainly doesn’t get any worse.

https://technology.riotgames.com/news/profiling-measurement-and-analysis
“Profiling, Measurement and Analysis” on the Riot Games website, from the masters of multiplayer and the creators of League of Legends. In this article, two masters will tell you the basics of profiling and some code examples on the pluses. The article is from 2018, but it’s just the thing to start learning the methods and principles of profiling.

EASTL
https://github.com/electronicarts/EASTL
One of three alternatives to the standard library, which most game developers (with difficulty) recognize as more or less working and common. It appeared back when the 98/03 standard was in proposals, and Folly was not in sight. It is still developing, and some solutions are not averse to being included in the standard. Don’t know what to do this weekend? Take a look at these guys’ repo, there will be a lot of interesting things. This is where the EASTL source code begins.

Gaming platforms and game design impose certain requirements on gaming software that differ from those of other platforms. First of all, gaming software requires large amounts of memory but has a limited amount to run on. Additionally, gaming software faces other limitations such as weak CPU caches, less powerful CPUs, and memory alignment requirements other than default. As a result, gaming software must be careful with memory and processor.

The C++ Standard Library’s containers, iterators, and algorithms are potentially useful for a variety of game programming needs. However, the shortcomings and omissions of the standard library prevent it from being an ideal choice for high-performance gaming software. First of all, among these shortcomings, the allocator model should be noted.

The Extended and Partially Redesigned Replacement (EASTL) for the C++ Standard Library was implemented by Electronic Arts to address these shortcomings in the portable and readable form.

level-design.ru
Mikhail Kadikov’s blog about games, interesting articles analyzing various mechanics in games, written in simple and understandable language. I don’t know how this site came across, the first articles did not impress me at all, perhaps due to the author’s desire to greatly simplify concepts and explain obvious things three times. But with each new article they become better and more interesting.

blog.joelburgess.com
Joel Burgess is a game development veteran who has worked on projects such as The Elder Scrolls V: Skyrim and Fallout 3/4. A lot of materials with discussions about game design and its evolution, programming and game development. And based on his articles and speeches at GDC, one could make a separate book on game development (in fact, only one game, of course, Fallout 3), there are so many interesting points and tips.

spiiiin.github.io
I recently met Sasha Boyko @spiiin, I regret that I didn’t find his website earlier. Lots of useful and interesting information. As it turned out, we worked together for some time at Gaijin, but did not overlap on projects. He also made a cool level editor for games like Dandy and more. CadEditor – level editor for many games for different platforms (NES, Sega Mega Drive, GBA), lies here.

“For the Win” Kevin Werbach and Dan Hunter
One of the best books on gamification and the application of design principles and techniques outside the world of game development. The authors explain how game elements can be broken down into their components and used in various areas. Many valuable ideas like game elements and game mechanics can be used to motivate, engage users and gain insight in education, marketing and in general any field that depends on human attention. In general, read it, it’s very funny to notice when they are trying to play with you.

Can a scripting language be faster than pluses?
Lecture by Anton Yudintsev (Gaijin) on daScript, a scripting language – which is faster than C++. Don’t believe me? Why I believe it is a separate question – it was possible to dig the Dagor/War Thunder engine and tools from the inside, and transfer them to NxSwitch and AppleTV. It was very, very difficult to push the tundra engine onto a 6 iPhone, which was essentially an AppleTV 4Gen and make it work.

“The Art of Game Design” by Jesse Schell – good material for those who want to get acquainted with the principles of game design at a basic level and understand what we are talking about. It will help you figure out what aspects and mechanics of games can evoke emotions and impressions in players. How to understand the needs and interests of players, how to use various level design elements, objects, and even phrase construction to achieve the desired emotional response. There is unlikely to be anything interesting for experienced designers, and the practices developed over time are quite difficult to break down.

https://www.youtube.com/playlist?list=PLokhY9fbx05eq8SvcNOxYRquYMzMjF9Ok
A constantly growing list of analyzes of AI in various games; over 9 years, there have been almost eight dozen issues on the implementation of AI in famous games, from FEAR to Spidey.

More links:

A collection of useful tips for optimizing C++ code, it is better to use it as a reference book than to read everything in a row.

In simple terms, why you need to care about cache efficiency in your code, or how to waste a perf 27 times while traversing an array.

A story by Vitaly Borodovsky (WoT) on how to design top mmo projects.

Great article by Nicolas Kraj about the secrets of game designers to make you believe in the game more.

The Playrix company blog on Habré has been empty since 22, but the value of the articles has not diminished. The series of articles about their own VSO engine was especially good

A very interesting report from Naughty Dog on fibers and implementation in their engine, I think this is probably the ideal implementation for a curling iron.

That’s all, I hope it was interesting and useful!

Similar Posts

Leave a Reply

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