Entity Component System | Coding a 2D Game Engine in Java #10
Join the Discord: https://discord.gg/4tHeAkxNg7
In this tutorial, I describe the different methods of abstracting game logic into components. Specifically, I go over the Component Pattern as described by Bob Nystrom in GameProgrammingPatterns, data-oriented design, as specified by the article below, and Entity Component System. I give a brief overview of how each of these systems are coded, and then we implement the Component Pattern.
I also describe how to handle the problem of Component communication. The method I use, uses the GameObject as a middleman, that coordinates communication between different components that it contains.
Code for this tutorial: https://github.com/codingminecraft/MarioYoutube/tree/803e66d9a2365dce9faf1a89998fa7b1c48a1e6d
ECS Articles
============
* https://medium.com/ingeniouslysimple/entities-components-and-systems-89c31464240d
* http://gameprogrammingpatterns.com/component.html
I haven't looked through these articles, but it looks like there may be some good resources.
* https://github.com/dbartolini/data-oriented-design
---------------------------------------------------------------------
Website: https://ambrosiogabe.github.io/
Github: https://github.com/ambrosiogabe
Here are some books I recommend if you want to learn about game engine development more thoroughly. I do not profit off any of these sales, these are just some books that have helped me out :)
My Recommended Game Engine Books:
Game Engine Architecture: https://www.gameenginebook.com/
Game Physics Cookbook (Read this before the next physics book): https://www.amazon.com/Game-Physics-Cookbook-Gabor-Szauer/dp/1787123669
Game Physics (Ian Millington): https://www.amazon.com/Game-Physics-Engine-Development-Commercial-Grade/dp/0123819768
Game Programming Patterns (Free): https://gameprogrammingpatterns.com/
My Recommended Beginning Game Programming Books:
JavaScript Game Design: https://www.apress.com/gp/book/9781430247166
My Recommended Java Books:
Data Structures/Algorithms: https://www.amazon.com/Data-Structures-Algorithms-Java-6th-ebook/dp/B00JDRQF8C
LWJGL (Free, but I haven't read this thoroughly): https://lwjglgamedev.gitbooks.io/3d-game-development-with-lwjgl/content/
Outro Music: https://www.bensound.com/royalty-free-music