I spent 5 years building a roguelike game in pure Ruby (no game engines) to explore Entity-Component-System architecture and event-driven patterns outside of typical Rails applications.
Full disclosure: The project benefited significantly from AI assistance in the later stages to keep momentum going while balancing a full-time job and family. I used AI as a coding partner - I made all architectural decisions, reviewed every change, and stayed in control of the direction. It let me focus on the interesting problems (ECS design, event systems) rather than grinding through boilerplate.
The game runs entirely in the terminal and uses the same architectural patterns we use in production web apps - ECS for entity management, pub/sub for events, observer patterns for game state.
Why Ruby? Honestly, because it's the language I know best, and I wanted to prove you could build a game without reaching for Unity, Godot, or even a Ruby game library. It's all vanilla Ruby.
I spent 5 years building a roguelike game in pure Ruby (no game engines) to explore Entity-Component-System architecture and event-driven patterns outside of typical Rails applications.
Full disclosure: The project benefited significantly from AI assistance in the later stages to keep momentum going while balancing a full-time job and family. I used AI as a coding partner - I made all architectural decisions, reviewed every change, and stayed in control of the direction. It let me focus on the interesting problems (ECS design, event systems) rather than grinding through boilerplate.
The game runs entirely in the terminal and uses the same architectural patterns we use in production web apps - ECS for entity management, pub/sub for events, observer patterns for game state.
Why Ruby? Honestly, because it's the language I know best, and I wanted to prove you could build a game without reaching for Unity, Godot, or even a Ruby game library. It's all vanilla Ruby.
The codebase is fully open source and I've also written a book about the process (5 years in the making) that walks through the architecture decisions: https://www.amazon.com/Building-Your-Own-Roguelike-Hands-ebo...
Technical highlights:
- Entity-Component-System from scratch - Event-driven game loop - No dependencies (just Ruby stdlib) - Runs in the terminal
I'd love feedback from the HN community, especially on the architecture patterns. Happy to answer any questions about the implementation.
Thank you, davidslv