A study of creating a javascript 2D game engine based on canvas WebGL
Reference examples here https://gamethemedgroup.github.io/GTCS-GameEngine/index.html
- https://github.com/jslee02/awesome-entity-component-system
- https://fractalpixels.com/devblog/nez-and-ecs-basics
- https://github.com/chlablak/ecs-pong
- Audio Engine
- Input Engine
- Render Engine / Cameras support / Text support / Textures support / Illumintation support / Shadders support
- Particles Engine
- Resource management
- Scenes management
- Physiscs engine
- Utils
-[x] Create a pong demo -[x] Invert the relation one to many scenes/world -[x] Add capability to turn on and off game cameras -[x] Add capability to turn on and off systems -[x] Add way to extend the existing engines adding new systems -[x] Add way to add new engines -[] Create a system of states as a collection of active scenes and current worlds, and active systems / cameras -[] Refacor and improve the render layer system -[] Add way to reset the scenes and worlds easily -[] Create the final project game -[] Do the samples with advanced particles -[] Do the samples with advanced physics -[] Do the samples with IDE editor -[] Create the angry birds clone demo -[] Create the side scroll runner demo -[] Create the spaceshooter demo -[] Create the 2d platform demo -[] Create the fight demo -[] Create the rpg demo -[] Add lerna to project spliting the source packages and demos -[] Create the unit tests
- Think about use of typescript
- Library of materials/lights/particles/etc...
- Write documentation with demos and tutorials
- Split the proccess in multiple threads using web workers
- Easy api to do animations and trasitions