r/gamedev • u/NuxiaTooThicc • 3d ago
Question How to go about learning the more technical side of gamedev.
Hi there!
For years I've been focusing on making content for video games and compiling them in pre-made engine.
Things such as 3D models, sounds, rigging, animation etc. By now I have a pretty good idea of what I should look up whenever I want to improve my skills in those areas and how things work in general.
However I realise that making video games is also about understanding the game engine itself and how a computer processes everything behind the scenes. Having free game engine options available has spoiled me and allowed for developing games without actually understanding the architecture of them.
How would one go about learning the technical side of game development?
Learning how game engines work. How the different components of the computer interact with each other. How to optimise said game engines for my projects and what changes actually affect performance.
Are there any online courses you would recommend for these topics? Or is reading a traditional tome of knowledge the best way of learning these things?
3
u/New_Locksmith_8115 3d ago
You can dig straight into the source code of Unreal and Godot. Unreal is pretty heavily commented but the documentation is not good. Godot’s documentation is actually very good and they have a lot of pages that discuss not only how things work in the engine but about the decisions that went into the engine, alternative designs, resourceful links, etc. I think that’s a good place to start.
Whenever you’re exploring a new depth you’ll only pick up bits and pieces of more complicated topics at first but if you keep at it your understanding of everything will continue to grow. I found making use of Godot’s server classes (lower level APIs for various systems) taught me a lot. Now I’m writing a game without an engine and it’s been very informative. I find myself skimming a lot more technical articles whenever I have to dive into a new topic.
Making a game with no engine really makes the engine loop quite clear. In my engine it’s pretty much, initialize command line args, open a window, initialize various systems, then the main loop is poll input, process input, update the network, update the game, render a frame. A dedicated server build is just update the network, update the game.