PROJECT YAML
PROJECT Y.A.M.L. started as a prototype to test what I could do with the C# engine FlatRedBall2. I used Clear Code's Pygame-CE tutorial as a starting point and remade the game in C#, letting FlatRedBall2 handle most of the boilerplate. Given FlatRedBall's 20-year development history and the brand-new second iteration of the engine, it was a great chance to learn how to build modular systems. It runs right in your browser, no install needed.
Developed with C# and FlatRedBall2, with heavy use of test-driven development to keep the code clean and ready for bigger projects. Assets are used from Scarloxy, Moana Prinz check their asset packs out on Itch.
Features:
- Turn-based battles with the classic triangle: Fire beats Plant, Water beats Fire, Plant beats Water.
- Custom battle logic inspired on modern OOP principles (Christopher's Okhravi): effects, conditions, moves, and stats are composed from small, reusable interfaces instead of baked into monolithic classes.
- 16 monster species to spy (and battle) across evolution chains and level-up moves, all data-driven via JSON.
- Sneaky trainers that chase you down with line-of-sight (using Raycast) and basic a dialog system included.
- Monster Bestiary, pause menu, and audio sliders for the music you'll hear a lot
- Pixel art everywhere: monsters, attacks, and effects brought to life with the FlatRedBall2's stand alone Animation Editor, plus UI built with Gum.
- Custom audio mixer with context-based music and SFX ducking
Controls
| Key | Action |
| Arrow keys | Move (8-directional) |
| Escape | Open pause menu (overworld) or settings/Bestiary |
| E | Interact with NPCs |
| Left Mouse Click | Click buttons on title screen, drag audio sliders |
| Space/Enter | Advance dialog, confirm menu selection |



