A pet project is an important part of every developer's growth. However, there isn't always enough time for it. Recently, I realized that it's not necessary to spend a lot of time on pet projects. Even a few hours a week dedicated to development can lead to noticeable progress within six months. It's important to be consistent and focused on the outcome.
I have developed my own 2D HTML5 engine in TypeScript + Canvas for creating games or applications similar to online graphic editors. What's particularly interesting is that I built it from scratch, without using any third-party libraries except React for the UI.
During the project's development, I gained valuable experience in optimization and working with algorithms. The engine consists of various systems. I implemented collision and raycasting system, camera system, pathfinding system for crowds, custom renderer with layer-based rendering, batching, and tile support.
One of the goals was also to create a project with hybrid architecture, where the entire UI is built with React and interacts with the ticker-based application. This allows for easy creation of games resembling economic strategies or farms with multiple forms. Such an approach can also be useful in graphic applications that have numerous tool menus (e.g., Pixlr/Figma).
My project is currently in the Alpha stage, but it can already be viewed online. Currently, I'm focusing on refactoring and improving performance.


