// the find
ryanb/ruby-warrior
Game written in Ruby for learning Ruby.
A turn-based game where you write Ruby methods to control a warrior climbing a tower, fighting enemies and rescuing captives level by level. Built for people learning Ruby syntax and basic OOP, not experienced developers.
The ability classes (attack, feel, bind, rescue, etc.) are each a tiny single-purpose file under lib/ruby_warrior/abilities, which makes the codebase itself a decent example of clean OOP to read alongside playing it. It has real test coverage - rspec specs per ability plus cucumber feature tests for the CLI flow - so it's not just a toy script. The sense/action split (non-destructive queries vs one action per turn) forces you to think about state and control flow instead of just memorizing API calls.
Development has basically stalled - the only recent commits are dependency bumps for Ruby 3.3, no new abilities, towers, or fixes to the grading system the README itself admits is unfinished. It's strictly a terminal experience with no visual feedback, which will feel dated next to browser-based alternatives for the same audience. Only two towers (beginner, intermediate) ship, so progression ends quickly once you've cleared both. The epic-mode scoring and grading logic is described as a work in progress by the maintainer, so don't expect it to be rigorous.