YoVDO

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

Offered By: freeCodeCamp

Tags

Java Courses Game Development Courses OpenGL Courses Shader Programming Courses Entity Component System Courses

Course Description

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

Related Courses

Creative Programming for Digital Media & Mobile Apps
University of London International Programmes via Coursera
Online Games: Literature, New Media, and Narrative
Vanderbilt University via Coursera
Game Design Concepts
Canvas Network
General Game Playing
Stanford University via Coursera
Program Arcade Games - Learn Computer Science
Independent