What I'm Building in Zig: An Automatic ARPG

What I'm Building in Zig: An Automatic ARPG
What the game looked like when I first implemented isometric view a month ago

I’ve mentioned I’m building a game in Zig, and it's about time to start talking about the project. Before I dive into old commits and share what I've learned on my Zig adventure, I want to lay out what I’m building, and why.

TL;DR: It’s an ARPG auto-battler.

  • Pick a class and start making choices
  • Survive increasingly stronger enemies
  • Level up, learn skills, acquire loot, become stronger
  • Face other players or go for the boss
  • Probably die, try again

The working title is Auto Action RPG. So inspiring. 🤭

Before importing raylib, I rendered the game using emojis in the terminal. It felt more like Rogue than Diablo.

Play as a character from a fantasy class-based roster: Barbarian, Rogue, Wizard, etc. Unlike typical ARPGs, you don't manually move or attack. Instead, you make strategic choices: how you allocate your skill points, what items you equip, which auras to have turned on. The character operates on vibes, like setting your pace and rations in Oregon Trail. Maybe you're a grueling berserker barbarian. Maybe you're a cautious, glass-cannon necromancer.

My design pillars are simple.

  • Strategic choices > direct control
  • Fast and replayable
  • Synergies between skills, gear, and stats
  • Deterministic outcomes

Okay, but why go through all the effort of making an ARPG without letting players have direct control? Because that game already exists. It's fun, but it's not what I want to play right now. Besides, I got lost on Elon's map. There is no cow level.

I'm being purposefully ambitious. I've played a lot of ARPGs. I understand the appeal, the mechanics, and the core systems. They are really fun, but I don't have the time or interest in playing them like before. Path of Exile 2's early access aligned with when my daughter was an infant. Staying up late to play games is punished by a screaming baby at 3 am. Hence, short form, uh Roguelike or something. I don't know exactly! I'll make it an arcade experience instead of a long grind. The entire experience should fit in a coffee break. And be fun every time.

That’s my vision. The engine is my own. The process is primarily educational. The systems are slowly coming together. Next up, I’ll take you back to the first commit I made and what I learned from just diving in.