This is the architecture referred to in my forthcoming article. Here is a sample:
Continuation of my Gui Showdown — ECS vs Plain Javscript vs. MVC vs. Vue.js
The ECS (Entity Component System) architecture is the new hotness in game developer circles. Its a way of architecting your software that rejects classes in favour of a more deconstructed, data driven approach. The results, in gaming apps at least, are massive reductions in complexity and huge increases in performance and maintainability.
When I read about ECS it got me thinking — why not use it for more traditional software, not just games?
In a way, all GUI apps want to do the same thing: display information, allow users to manipulate that information, run business logic to add value — then display the results. The Model View Controller (MVC) architectural design pattern, invented in the late 1970’s, whilst understood in different ways, basically asks us to separate the Model (the information) and View (the GUI presentation) — with the Controller role looking after handling GUI inputs and business logic.
The Entity Component System (ECS) implementation deconstructs MVC and deconstructs Object Oriented programming itself, to do things in a totally mind altering way
The Entity Component System (ECS) implementation deconstructs MVC and deconstructs Object Oriented programming itself, to do things in a totally mind altering way. By understanding the MVC roles, we can hopefully track where all the roles went!
Please contact me for the full text of this article, if you are interested.
List of repository modules/files being visualised in the above diagram: