Seventh Saga

Screenshot 2015-03-15 19.51.24
Your stalwart Demoness ready to destroy everything

 

 

“Seventh Saga” is my first attempt at the 7DRL.  I’ve done a few odd ‘proper’ ASCII-based Roguelikes in my spare time, but nothing for 7DRL, and I do love a games jam.  You can play the finished version over at my itch.io page. Your goal is to travel the human land, corrupting their towns and forts and generally killing everything, gaining more power as you do so so you can take on the mighty human fortresses and corrupt the whole map.

As Roguelikes go it’s pretty simple.  You can move, attack and eat stuff off the floor.  There’s experience and levelling to help with the tougher enemies, and there’s allied AI that’ll pour out of bases to help you fight enemy armies, but it’s fairly basic as RL go.

Feel free to also check out my twitter feed for progress along the 7 days.

Tasty development secrets (read: buggy mess of horribleness) and other stuff below the cut:

The original plan

Admittedly, I spent a bit too long mucking about with new stuff in Unity than actually developing a fun, balanced game.

Originally I wanted to do a big, epic-scale Dynasty Warriors-esque army vs army on a giant map thing.  There were two main things that ultimately got in the way of this idea: The first was that the map is absolutely tiny by Roguelike standards (it’s 30×30!) because while making the whole thing 3D I made the tiles absolutely huge.  The second thing was the silly idea of limiting each tile to only one creature at a time.  This resulted in a complete cluster of enemies trying to path around each other and failing to do so, so about 5 days in I canned the ability for bases to send out npcs to capture bases and just made it so only you can.

Screenshot 2015-03-15 19.52.23
Corrupting everything! Except mountains. Because reasons.

 

On the visuals side of things, I’d originally opted for a kind of war table kind’ve look where everything would be all 3D and pieces would be moved around.  Not wanting to actually do any 3D modelling, I did all the ‘pieces’ as low res pixel art.  Eventually I ditched trying to make things look more abstract and jammed in the grass/sandy textures to make it look more fantasy-world friendly.  In the end I quite like how it looked, but would’ve preferred some higher rest sprites and some nicer, less blocky terrain.

One idea I had was that while your hordes capture bases it gradually spreads a nasty ‘creep’ corruption over the world to highlight your progress, and this creep will buff your soldiers when fighting on it.  Originally, only you could spread the creep, but that was ditched so it naturally grows from captured bases.  It’s impossible to get 100% due to the map layout, even though there’s a percentage score at the end.

Two armies collide
Two armies collide

I quite liked the idea of slowly turning a nice idyllic fantasy world into a complete mess, so there’s that.

Stuff that didn’t make it

Armies manually capturing bases was dropped.  They’d send out little saboteurs that would head to the nearest bases and try to capture them, usually getting slaughtered by the soldiers inside unless you helped out.  This lead to some epic fights, but due to the low resolution of the map and the naffness of my pathfinding, it wasn’t particularly fun, so that was all dropped.

Archers were sprited for both human and demon races, but not used – Ranged combat isn’t in at all.  You were also going to have a set of spells & equipment to help turn the tide of battles, such as explosive bomb traps and the ability to spread fires through forests.  I toyed with procedural level generation but in the end went for a hand-made one as I was going to do a series of tutorial levels, but in the end there’s just the one example one.  Money & new equipment was written down but dropped pretty early on.

They're so sparkly, they must be friendly!
They’re so sparkly, they must be friendly!

Bugs!

The game’s a buggy mess.  Even by jam standards I had to rush in a lot of things and spent waaay too long mucking about with Unity effects.

  • The game is designed and coded so no two creatures should occupy the same space.  They still occasionally do, and things get a bit silly/broken.
  • It’s possible to confuse enemies so instead of attacking you they just jump to whatever square you were in last. (note: Turn order matters!)
  • Animals wander around including swimming about in the sea.
  • When retreating from an enemy chasing you, pathfinding completely breaks for everyone else nearby.  This results in a performance hit and confusion in enemy AI.
  • The A* weighting results in some wonky pathfinding – lots of diagonal movement.
  • Probably lots of other nasty ones.  I still haven’t even ‘won’ yet
This peasant beach-hut thing is about to have a nasty surprise
This peasant beach-hut thing is about to have a nasty surprise

Post-mortem:

  • Get your turn-order/time management sorted.  There’s a lot of confusion in the AI logic due to the certain order creatures move/attack.
  • Check to see if your pathfinding algorithm can even reach its destination and handle if it can’t.  20 creatures all performing a 300 tick A* algorithm only to realize something’s blocking them grinds performance down a lot.
  • Don’t spend all day going “Ooh look how pretty I can make the blood splatters!”.  Spend only half a day.
  • Always try to get your types into a state where creating new custom creatures/entities is pretty much trivial.  Unity’s component-driven nature’s great for this, but remember script-execution order can be a nasty complication.

Overall, I quite like the visual style – I’d like to do a ‘proper’ Roguelike adventure game in this visual style but with a considerably more stable codebase behind it.  Maybe in the future.  For now, more Games Jams await!

-M

1 thought on “Seventh Saga”

Leave a Reply