[#Script #Coding] Code a 2D Game Engine using Java – Full Course for Beginners

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

By freeCodeCamp.org
Published: Jan 03, 2022


freeCodeCamp.org 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…

Proudly powered by WordPress
Creative Commons License
EricBrooks.Com® is licensed under a Creative Commons License.

Disclaimer: The views expressed herein are solely those of Eric Brooks. They do not necessarily reflect those of his employers, friends, contacts, family, or even his pets (though my cat, Puddy, seems to agree with me on many key issues.). In accordance to my terms of use, you hereby acknowledge my right to psychoanalyze you, practice accupuncture, and mock you incessantly with every visit. As the user, you also acknowledge that the author has been legally declared a "Problem Adult" by the Commonwealth of Pennsylvania, and is therefore not responsible for any of his actions. ALSO, the political views and products advertised on this site may/may not reflect the views of Puddy or myself, so please don't take them as an endorsement. We just need to eat.


Connect