Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

freeCodeCamp

Code a 2D Game Engine using Java - Full Course for Beginners

via freeCodeCamp

Overview

Embark on a comprehensive 24-hour course to program a 2D game engine from scratch using Java. Dive deep into game development concepts, starting with setting up a window using LWJGL and progressing through advanced topics like OpenGL graphics programming, shader abstraction, and entity component systems. Master batch rendering, resource management, and texture batching techniques. Explore the integration of ImGui for user interfaces, implement serialization and deserialization with Gson, and create a drag-and-drop level editor. Learn to work with framebuffers, implement mouse picking, and develop editor camera controls. Delve into physics integration with JBox2D, font rendering, and 2D animations. Apply your knowledge to create a Super Mario clone, complete with AI-driven enemies, powerups, and classic gameplay elements. By the end of this course, gain the skills to develop your own 2D games using the custom engine you've built.

Syllabus

) Introduction.
) Setting up the Window with LWJGL.
) Adding Event Listeners with GLFW.
) Creating a Scene Manager & Delta Time Variable.
) 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 Coordinates.
) 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.

Taught by

freeCodeCamp.org

Reviews

Start your review of Code a 2D Game Engine using Java - Full Course for Beginners

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.