A downloadable game

Technical prototype for the combat system for Shrinelands, a co-op game about exploring distant lands and encountering deadly foes.

Composed of the Unity client and standalone server, which also includes old-school play through the command line or via Discord bot.

In the prototype I focused mostly on some technical achievements

  • authoritative server model using MVC for clients
    • allowed for easier development by separating game logic into a DLL outside of Unity
    • being turn-based means that the networking can be pretty straightforward, with players simply sending what actions they want and the server returning state updates to all connected clients
  • data-driven abilities
    • all character abilities are driven by JSON configuration files, allowing for easy rebalancing and fast creation of unique skills
  • leveraging Unity's animation system as a finite state machine for the UI
    • a bit of boilerplate to make it working, but being able to easily visualize states in the animation window helps maintain consistency, and using events/dependency injection with the states helped avoid bugs in UI edge cases

Also from playtesting I've focused on a few design considerations

  • a focus on abilities which change the environment
    • abilities such as the Chalice Bearer's "Pour Out", both healing and converting a tile to a water tile, possibly slowing enemies or dousing the fire elemental's advance
    • firedancer's being able to create flames - using them as portals or as area denial
    • the ever advancing tide of the slimelord - slowly converting an area into viscous slime, allowing him to travel with ease but cutting off foes
  • novel combat resolution based on cards
    • more tangible representation of odds by seeing the deck of options
    • can include modifiers as themed cards, making bonuses more grounded in the fiction