GameDev Learning
To be a top-level game developer and software engineer, you must always be looking for ways to increase your skills and knowledge. I’ve linked some online resources that you can learn some invaluable information and get ahead of the game 😊.
C++
C++ is the predominate language for developing game engines and high-performance code. It is used throughout the software industry because of its speed, access to hardware, and size. It has been around for decades and does not look like it will be replaced anytime soon.
Tutorials:
https://cplusplus.com/doc/tutorial/
Language reference: https://en.cppreference.com/w/
Guidelines (advanced): https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#main
Design Patterns
Design patterns are solutions to common programming problems that occur frequently in development. They can be used to help solve a problem but are not necessary the exact solution but can steer you in a direction that may be helpful.
This is an excellent on-line book on how to apply design patterns to game programming. Highly recommended! https://gameprogrammingpatterns.com/contents.html
https://refactoring.guru/design-patterns
https://sourcemaking.com/design_patterns
Math
To be an excellent game developer, you need to build your math skills. You may not work at a low level and deal with matrices and other formulas but having the knowledge of how vectors are transformed is essential in the industry. Much of the math required is contained in linear algebra and trigonometry. The top concepts you need to know:
- Vectors
- Matrices
- Rotations (Quaternions)
- Dot Product
- Cross Product
Excellent book that is now free online. https://gamemath.com/
Good resources for learning the foundation of transformations. https://www.scratchapixel.com/lessons/mathematics-physics-for-computer-graphics/geometry/points-vectors-and-normals.html
https://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/
Graphics
Contains excellent database of graphics programming resources. The database is searchable by title, and each article has been tagged to make it easier to find items again. Highly recommended that you subscribe to the weekly newsletter if you are interested in computer graphics. https://www.jendrikillner.com/#about
Rendering Engine Architecture Conference (REAC) is a computer graphics conference about real-time rendering. The site contains information on conference talks with links to videos on the presentations. https://enginearchitecture.org/index.htm
Game AI
Online versions of the Game AI Pro book series. Contains a large collections of Game AI articles from professional industry developers covering techniques and algrorithms used in many popular games. https://www.gameaipro.com/
General Game Development
Of course, this is what we’re here for. It is important that we understand the core components of software engineering and the math involved in transforming objects in space, but game design and programming concepts get us to where we want to be.
YouTube
Excellent channel that contains a lot of information on game design theory. https://www.youtube.com/@GMTK
Mix and Jam is an experimental game development channel, where they study things from the game industry and try their best to study and even recreate them! https://www.youtube.com/@mixandjam/featured
Sebastian Lague creates video on a variety of game related subjects. His explanations are easy to follow and the production is excellent. This is a must see channel. https://www.youtube.com/@SebastianLague
Freya Holmér does videos on tech art, math, game dev, and whatever else they want to project to your screens. This is a great channel to increase your game math knowledge. https://www.youtube.com/@acegikmo
Game Industry talks by professionals. Essential material that covers art, design, code, and marketing. https://www.youtube.com/@Gdconf
Excellent book on various topics that aren’t game specific and written in JavaScript (easy to convert to another language). Coding Train is the YouTube channel with video tutorials on the topics in the book. https://natureofcode.com/book/ https://www.youtube.com/@TheCodingTrain
Excellent YouTube channel on developing a game engine with C++. https://www.youtube.com/@TheCherno
Game Jams
Game Jams are a great way to improve your skills and connect with others in the game community. Game Jams help you to think and work fast to create and execute ideas. There are games that started as a Game Jam and then became full games like “Superhot”, “Celeste” and “Surgeon Simulator.” These pages have a calendar of game jams that you can join.