If you really want to understand game development, consider coding your own game engine.
We just published a 25-hour course on the freeCodeCamp.org YouTube channel that will teach you how to code your own 2D game engine using Java.
You will use the game engine to create a Super Mario Clone but the engine can be used to create other games as well.
Here are all the sections in the comprehensive course:
- Setting up the Window with LWJGL
- Adding Event Listeners with GLFW
- Creating a Scene Manager & Delta Time Varia
- How OpenGL Graphics Programming Works
- Drawing the First Square
- Regexes and Shader Abstraction
- Game Camera OpenGL
- GLSL Shaders
- Texture Loading in LWJGL3
- Entity Component System
- Batch Rendering in LWJGL3
- Resource Management in LWJGL3
- Texture Batching
- Spritesheets
- Dirty Flags in Rendering
- Alpha Blending and Z-Indexing
- Integrating ImGui
- ImGui Fonts and Scene Integration
- Serialization with Gson
- Deserialization with Gson
- Exposing Variables to the Level Editor
- Converting Screen Coords to World Coords
- Drag 'N Drop Level Editor
- Debug Drawing Functions
- Snap To Grid Tool
- Debug Drawing Boxes and Circles
- Framebuffers in OpenGL
- ImGui Docking in Java LWJGL
- Adding a Game Viewport
- Mouse Screen Coordinates to Game Viewport C
- Pixel PERFECT Mouse Picking
- Enabling Mouse Picking and Code Maintenance
- Editor Camera Controls with Lerp
- Coding Gizmos
- Translate and Scale Gizmo
- Properties Panel
- Integrating JBox2D in our Engine
- Event System and Box2D Physics
- Adding an Engine Runtime (Play/Stop Buttons
- Refactoring and Physics
- Font Rendering
- Beginning Scene Hierarchy & ImGui Upgrade
- Scene Panel Drag & Drop (ImGui)
- Even More Bug Fixing
- 2D Animations
- Sounds with OpenAL
- Improving the Editor
- How to Use Box2D Physics
- Pillbox Colliders and Player Controllers
- Variable Length Jumps
- Powerups
- Goomba AI
- Mario Pipes & Editor Improvements
- Game Camera & Grid Lines
- Mario Turtle AI
- Adding Flag Poles to Mario
- Fireballs and Bug Fixes
- The LAST Episode and Distributing your Game
Watch the full course below or on the freeCodeCamp.org YouTube channel (25-hour watch).