Monday, December 15, 2014

An approach

Most of the reason I got bogged down building RPGs in the past was because of scope creep.

Big budget RPGs these days have everything.  You have procedural world, a dozen classes, all with customizable ability trees and flashy animations.  Not to mention thousands of items, enemies and objects.  Building all that stuff, let alone balancing it into a playable game, is a mountain of devwork.  I'd usually get to a point where I could equip a basic item, attack an enemy, gain some XP, then throw my hands up in the air in burned out frustration.

So the approach with this game is to start tiny.  Microscopically tiny.  Down to the raw characters in a Console-line app.
Nethack
This is how the rogue-likes did it - representing the player as the @ symbol, enemies as various other characters, the world as the blocky symbols in the ASCII set * [ ] #.

That's how I'm going about it for now.  Everything lives in a 2D tile world.

Here's the scope I'm attempting for the next month or so:


  • Battle game on a 20 x 20 tile grid
  • Multiple Enemies, Multiple Players
  • Turn based combat, random initiative.
  • Players can move, attack, ranged attack, use abilities and items
  • Enemies have rudimentary AI - move towards player (using A*), attack, heal if wounded
  • No character classes yet
  • Players will have access to a range and variety of abilities (Charge Attack, Throw Grenade, Cast Fireball, Teleport, Heal, Group Heal, Group Slow, etc).
  • The battle screen, enemies, players, abilities, items are data driven.  Data is stored in JSON files, loaded at runtime.
  • Display and Player Input will use Console.Write / Console.Read in a .NET command line app.


The majority of the work will be on the ability system.  The fun of tactical RPGs is all about utilizing abilities in creative ways on top of a 2D grid.  So part of each ability will be the area that it covers: the arcing swipe of a Great Cleave, or the large circular blast of a Fireball.

Next post I'll dive into a bit of the design of the ability system, and go over some of the challenges so far.

No comments:

Post a Comment