A video game is a fascinating piece of software. The amount of unique challenges a developer has to solve is tremendous. Vector Math and Physics, Movement and AI, Graphics and Rendering… even terminology itself can sound scary! Not to mention, combining and intermixing them together can be hard and overwhelming. But does it has to be?

Let me invite you on a journey

In this series of posts, I will walk you through the creation of a simple game. We will start from scratch and slowly build our way through all the hardships and obstacles. We will learn what Entity Component System is and how to render Grid structure using Canvas API. How State Machina helps in setting up the behavior of different systems of the game. Or even how to implement our own Artificially Intelligent Enemy. With each new step, our craft becomes even more sophisticated yet manageable and predictable.

There are tons of excellent software created by smart and dedicated people: Phaser.js, Pixi.js, Unity3d, Three.js, just to name a few. But, I won’t cover any of these incredible technologies in this series. My goal is to talk about principles and conceptspatterns and algorithms, not specific tools. We will build this game from the ground up. Yet, the knowledge you will acquire is hugely transferable. If you realize how, let’s say, implement a minimax or pathfinding algorithm, you can apply them to work with Unity/C#, Unreal/C+, Phaser/TS. It also helps better appreciate all the hard work developers put into these technologies.

#design-patterns #algorithms #typescript #gamedev #javascript

Gamedev Patterns and Algorithms in Action with TypeScript
8.00 GEEK