Snake with ECS
I am very intrigued by Entity Component System way of programming. This methodology or software architectural pattern (as they say) of storing Entities and Components as plain objects that can be serialised and manipulated by Systems is an interesting departure from what I've been taught from the classic OOP books.
Your mindset must be composition over inheritance.
Forget about Dinosaur extends NPC extends Entity, you have to think of the Dinosaur as an Entity containing multiple Components that define it as a "dinosaur".
The idea behind these series is to apply ECS pattern, and code it from scratch, to the very simple game concept of Snake.
This is WIP, here are the current recordings up to date.