encelo
Some of the highlights:
- Introspective Sort: Render queues can now be safely sorted with thousands of commands, thanks to this hybrid algorithm that uses quicksort, heapsort, and insertion sort.
- Wet Paper: I have polished the Global Game Jam 2025 game with menus, shaders, crossfades, and joystick vibration. It also inspired new engine improvements like easier input detection.
- Job System: The multi-threaded job system is now stabilized, with user semaphores for worker synchronization and a topology-aware thread pinning strategy.
- Crashpad Integration: Support for this modern and cross-platform crash reporting solution has been added, together with easy debug info extraction.
- Array Class Improvements: Fixed a subtle insertion bug and enabled storing of non-copyable/non-movable objects with new tag-dispatching logic.
- Quality-of-Life Updates: Run-time environment variables for configuration, minor engine fixes, and updated CI runners.
14 years of building my own 2D game engine
Fourteen years ago I started writing a 2D game engine as a personal side project. What began as a way to learn has grown into something I've maintained across jobs and countries, through rewrites, feature creep, and shifting technologies.I recently gave a talk at /dev/games in Rome about what it's been like to maintain it for over a decade, from the technical challenges, the lessons learned,...
Show HN: Ten years retrospective about working on my open-source 2D game engine
Unfortunately, it sold pretty much nothing so I'm back to the game industry as an employee while I decided to make it FOSS. :D
It is written in C++ using my game framework nCine (https://ncine.github.io/) and ImGui, and it supports multiple platforms, like PC, Android, and the web.