Code a 2D Game Engine using Java - Full Course for Beginners
freeCodeCamp.org freeCodeCamp.org
9.34M subscribers
515,718 views
0

 Published On Jan 3, 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/Ma...

✏️ Course created by GamesWithGabe. Check out his channel:    / @gameswithgabe  

🎥 Part 2 (final hour of this course):    • Code a 2D Game Engine using Java [Par...  

⭐️ 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
⌨️ (   • Code a 2D Game Engine using Java [Par...  ) Adding Flag Poles to Mario
⌨️ (   • Code a 2D Game Engine using Java [Par...  ) Fireballs and Bug Fixes
⌨️ (   • Code a 2D Game Engine using Java [Par...  ) The LAST Episode and Distributing your Game

🎉 Thanks to our Champion and Sponsor supporters:
👾 Raymond Odero
👾 Agustín Kussrow
👾 aldo ferretti
👾 Otis Morgan
👾 DeezMaster

--

Learn to code for free and get a developer job: https://www.freecodecamp.org

Read hundreds of articles on programming: https://freecodecamp.org/news

show more

Share/Embed