What should a game programmer read?

The amount of specific knowledge that an ordinary game programmer requires, even if he has just started his career, makes me “slightly” sad. This is one of the reasons why most of the people who are “hungry to make games” are eliminated at the stage of technical interviews (usually there is more than one). It’s normal and sad. Add here that non-fundamental knowledge, such as tools, libraries and engines, has to be updated about once every 5-7 years. I don’t see here that game development is very different from other areas of development. If 15 years ago “good me” had emailed me a list of books that I would have to read and comprehend, the army of collected rakes would not have been so large and diverse, and without half-length handles. Be careful, there will be a super long picture at the end of the article (taken from github from herewith permission of the author)


All books and resources that will be given here can be divided into several types (this is a personal opinion, you can discuss it).

Documentation and examples

Here I can only advise you to spoil it, no one will write documentation better than the creators of the tool. So my practice is to read the manual and samples before starting to code. Many people start doing this much later, when bugs have already appeared or something is not working.

Best practices

Of the sea of ​​books on programming (mostly on the pros) and development in general, there are not so many left on my desk.

Code Complete: A Practical Handbook of Software Construction (Steve McConnell. “Perfect Code”)

More and more often I return to this book to find the argumentation and the right words and to dissuade my colleagues from dragging a new fashionable framework into the engine while it works. The book describes the basic principles of software development, such as modularity, code readability, reuse, as well as various aspects that affect the quality of the resulting “product” – design, testing, debugging, analysis, etc. Everything seems to be written simply and clearly, but how difficult it is to write simple and clean code in a real project.

Effective C++ (“Effective use of C++”, Scott Meyers)

I would teach the entire trilogy (there is also Effective and Modern C++/The Most Effective Use of C++) by Meyers on how to “well” write spherical horses in a vacuum in the first years of university, in parallel with studying the language itself. The book provides practical advice and guidance on how to use the pros to write efficient, productive, and clean code. It is clear that the books are quite old and do not meet modern standards, but this does not make them any worse.

Robert Nystrom “Game programming patterns” (https://gameprogrammingpatterns.com)
The only normal book (and portal) dedicated to practical programming patterns and examples that are used or have been used in the development of computer games. The author was a game developer for a long time, but then he went to the dark side and started making Dart.

I was recently pleased with this book, and I recognized myself in a couple of these pieces of advice. It became a shame, I need to work on myself. @Andrey2008 Thanks for the book, it was interesting.

Fundamental books for development

“Game Engine Architecture” – The book was written by Jason Gregory and is a comprehensive overview of the principles, concepts and practices associated with game engine development. Describes the theory and various aspects of game engine architecture, starting with basic design principles and ending with real-life examples. This book is about how to make game engines, you can see how they are made in reality in a lot of examples on Github. Game Engine Architecture is essential reading for game developers, designers, and engineers. It is unlikely that you will find a more comprehensive description collected in one place and in accessible language.

Jeannie Novak. Game Development Essentials

Unlike many other books about the game development process, Game Development Essentials shows the complexities that can arise during development. Throughout the book, the main message conveyed to the reader is that creating the game of your dreams requires more than just a good idea, and that programming a game is hard work, not fun. I advise you to read it both for those who are planning to get into the gaming industry in general, and for those who are thinking about getting into IT. Igrostroy is only a special case of the software creation industry, where certain features of its features are maximized.

Eric Lengyel. Mathematics for 3D Game Programming and Computer Graphics

Eric Lengel is the founder of Terathon Software and creator of the C4 Engine, and a former developer at Naughty Dog, Sierra Studios and Apple. Intended primarily for programmers who want to gain a deeper understanding of the processes inside the game and the mathematics behind it all. However, in most cases the book is too technical and difficult for beginners, especially in the field of 3D graphics. Basic knowledge of mathematics is not enough here, and an understanding of mathematical concepts at the level of 2-3 years of university is required. Additionally, the book focuses mainly on the mathematical aspects of the design, with no examples of how it can affect the overall architecture, design, mechanics, etc.

Game AI developer library (proger + designer)

Game AI Pro (Steven Rabin) is a book series edited by Steven Rabin about AI in computer games. Each book in this series is a collection of articles and materials from real developers who share their experience and knowledge.

Making Deep Games (Doris C. Rusch) – The book was written by Doris C. Rusch, the author promotes the concept of “deep games” and gives practical recommendations for creating them. There are very few technical details, the author talks more about the concepts and mechanics that can cause emotional changes in players, experiences and maintain the atmosphere. Not a very interesting book, as for me, it’s a lot of water to stretch into 200 pages, but in some places it is useful, and I noticed some practices in different projects.

Game Engine Gems – a series of books on features of already released games, something like a paper podcast of valuable tips, techniques and best practices from experienced developers. The format consists of short stories from experts in the game development industry. An interesting read as a retrospective of mistakes and how to do the “shoulds”, and especially the “don’ts”. Don’t look at the title, it’s not just about game engines, over time the releases have become about a little bit of everything.

The Pyramid of Game Design (Nicholas Lovell) – The book describes a conceptual model of computer game design. The described model should help game developers connect various aspects of game design; again, the model is theoretical; I have not seen any practical examples of its use over the years of development. As a theory it looks pretty good, but as a practice, I would not give free rein to such ideas in a real project due to their high focus on emotions.

Dev blogs

In addition to books, in order to keep abreast of what is happening in the industry, from time to time I look at what is new from people who are moving the industry forward. In first place, of course, will be GDC and videos for the entire duration of the conference, as well as smaller conferences. Below is a list of personal blogs, where interesting articles and analyzes of the game periodically appear.

gdcvault.com
fabiensanglard.net
simonschreibt.de
oddtales.net/blog
blog.thomaspoulet.fr
froyok.fr
adriancourreges.com
elopezr.com
gen-graphics.blogspot.com
astralcode.blogspot.com
morad.in
alain.xyz
kosmonautblog.wordpress.com
cookieplmonster.github.io
factorio.com/blog
aschrein.github.io
mamoniem.com
simoncoenen.com/blog
acco.net
bartwronski.com

Github\Assetstore

Knowledge, articles and developments in general tend to flow to specialized sites. In this regard, assessors have become a good opportunity to roll out a prototype or MVP in order to quickly see people’s reaction to this or that idea. What used to be the prerogative of large companies and was shown at GDC as hard-won experience and know-how, is now available in tons in the form of plugins for a buck, or even for free. The downside of this approach was a strong decrease in the quality of solutions; 80% of libraries and plugins are abandoned after a year of development, so you need to approach with caution any lib that you drag from Github or the store. Even 1k stars does not guarantee that the library and the project will be spoiled for a long time.

github.com/fffaraz/awesome-cpp – the repo can be useful for everyone who is interested in programming in general and the pros in particular, it is updated quite often. There are many links, for all occasions, but not all projects are alive.

github.com/Caerind/AwesomeCppGameDev – a lot of links to engines and in-game tools, again not all of them are alive. But the selection is extensive and just being aware of what is and what is not is very revealing. Even going through the links and seeing what and how can be implemented is also useful.

github.com/skywind3000/awesome-gamedev – all sorts of in-game stuff

Instead of conclusions

Nowadays, people view books with a great deal of skepticism, preferring more interactive learning tools, such as video courses or mentoring. Video courses and online tutorials, due to their format, greatly simplify the presentation of information, they can be useful for visualizing complex concepts, but a book gives you the opportunity to think, there is no one else between you and the book. It is better to read books in the original, because translations do not always fully convey the author’s assessment, or are replaced with adapted versions, which does not always benefit the translation.

And of course, theory without practice is dead. To learn how to make games, you need to make them constantly.

The same picture

I didn’t need the information from two-thirds of the books from here during the entire development period, but perhaps this is simply the consequences of the “progressive differentiation” of the industry.

Similar Posts

Leave a Reply

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