Code a 2D Game Engine using Java – Full Course for Beginners
By freeCodeCamp.org
Published: Jan 03, 2022“
Learn how to program a 2D game engine from scratch using the Java Programming Language. You will use the game engine to create a Super Mario Clone but the engine can be used to create other games as well.Code: https://github.com/codingminecraft/MarioYoutube/tree/master
Course created by GamesWithGabe. Check out his channel: https://www.youtube.com/channel/UCQP4…Part 2 (final hour of this course): https://youtu.be/roPRqEQZFu8
Course Contents
- (00:00:06) Introduction
- (00:07:54) Setting up the Window with LWJGL
- (00:25:20) Adding Event Listeners with GLFW
- (00:51:42) Creating a Scene Manager & Delta Time Variable
- (01:11:26) How OpenGL Graphics Programming Works
- (01:32:53) Drawing the First Square
- (02:02:56) Regexes and Shader Abstraction
- (02:24:25) Game Camera OpenGL
- (02:47:47) GLSL Shaders
- (03:08:45) Texture Loading in LWJGL3
- (03:36:02) Entity Component System
- (04:06:25) Batch Rendering in LWJGL3
- (04:50:00) Resource Management in LWJGL3
- (05:05:30) Texture Batching
- (05:38:48) Spritesheets
- (06:01:12) Dirty Flags in Rendering
- (06:23:17) Alpha Blending and Z-Indexing
- (06:38:56) Integrating ImGui
- (07:01:56) ImGui Fonts and Scene Integration
- (07:19:43) Serialization with Gson
- (07:42:48) Deserialization with Gson
- (08:06:03) Exposing Variables to the Level Editor
- (08:25:29) Converting Screen Coords to World Coords
- (08:49:27) Drag ‘N Drop Level Editor
- (09:15:25) Debug Drawing Functions
- (09:47:35) Snap To Grid Tool
- (10:10:25) Debug Drawing Boxes and Circles
- (10:28:58) Framebuffers in OpenGL
- (10:52:56) ImGui Docking in Java LWJGL
- (11:11:55) Adding a Game Viewport
- (11:34:51) Mouse Screen Coordinates to Game Viewport Coordinates
- (11:50:01) Pixel PERFECT Mouse Picking
- (12:23:39) Enabling Mouse Picking and Code Maintenance
- (12:35:16) Editor Camera Controls with Lerp
- (13:01:48) Coding Gizmos
- (13:31:03) Translate and Scale Gizmo
- (14:04:29) Properties Panel
- (14:33:53) Integrating JBox2D in our Engine
- (14:54:53) Event System and Box2D Physics
- (15:19:09) Adding an Engine Runtime (Play/Stop Buttons)
- (16:10:10) Refactoring and Physics
- (16:40:28) Font Rendering
- (16:43:34) Beginning Scene Hierarchy & ImGui Upgrade
- (17:00:38) Scene Panel Drag & Drop (ImGui)
- (17:18:31) Even More Bug Fixing
- (17:44:51) 2D Animations
- (18:18:29) Sounds with OpenAL
- (18:44:27) Improving the Editor
- (19:21:24) How to Use Box2D Physics
- (20:06:12) Pillbox Colliders and Player Controllers
- (20:45:32) Variable Length Jumps
- (21:25:28) Powerups
- (21:51:52) Goomba AI
- (22:29:59) Mario Pipes & Editor Improvements
- (23:01:59) Game Camera & Grid Lines
- (23:28:28) Mario Turtle AI
- (https://youtu.be/roPRqEQZFu8) Adding Flag Poles to Mario
- (https://youtu.be/roPRqEQZFu8) Fireballs and Bug Fixes
- (https://youtu.be/roPRqEQZFu8) The LAST Episode and Distributing your Game
Learn to code for free and get a developer job: https://www.freecodecamp.org
Read hundreds of articles on programming: https://freecodecamp.org/news
And subscribe for new videos on technology every day: https://youtube.com/subscription_cent…
”