Monday, March 25, 2013

[Arjun + Dan] Faster Than Light + Game of Thrones

Working Title: Game of Rogue(likes)
Genre: single-player strategy
Platform: HTML5 web browser
Developer: Dan Fast and Arjun Narayan


Arjun and I are both gigantic fans of Faster Than Light and Game of Thrones, so we're going to try to make a game that mixes the two together. Of course, that's far too big for a game jam, so instead we're going to try to make a single battle instance of the game.


+



Game Concept:



Armies battling each other for a castle. They primarily move around heroes, who control troop flows. The goal is to take over/defend the castle.

Heroes:

Heroes change the attributes of nearby troops (morale, damage, health).
Heroes act as barriers, preventing the movement of opposing troops past them, but take damage.
Heroes can act as sources, creating new troops (these Heroes are referred to as Generals).
Heroes act as sinks, attracting enemy troops (also Generals).
Heroes operate special rooms, like moats, ballistas, treasuries, ravens, greekfire.

Castles:

The castle is the main environment. Underlying the castle is an undirected graph with edge capacities that troops can flow through. The graph can be changed in real time thanks to seige weaponry, fire side effects, or other stuff.
Castles guide troop movement and fire movement.
Castles have special rooms with special features.

Troops:

Troops are like fluid. They are created at a source and move around until they meet a sink. If a sink is “filled” to capacity it “breaks” (that mini-battle has been won). This creates a tipping point effect that cascades to the end of battle. The main challenge is an elaborate “dance” as the two sides respectively try and break sinks/keep the sinks from breaking.

Ex)
Troops have the advantage when moving from HIGH to LOW ground.
(Think of this as a positive increase in the edge flow capacity)
Barriers are temporary sinks (think buffers) on nodes. Heroes can act as barriers at HitPoint cost to themselves, or erect barriers (take time to construct and have a set capacity/damage limit).

Fire: 

Fire is like fluid. It is create at a source and moves randomly. Importantly it moves on a different graph to the troops. (adjacency without regard to walls, can cross floors and go directly up)
Fire has the advantage moving from LOW to HIGH ground.
Fire destroys barriers.
Fire affects the castle
Heroes can launch fire

Morale:

Wonder how to model morale. Maybe it is a hero stat like HitPoints?

Game Flow Summary:

A battle begins with the player moving their heroes and generals around their siege equipment. This stage will be removed in the larger rogue like game, as it will happen at the end of fights or at some other point in time. 
Once units are positioned, we launch the battle. Troops are generated at some rate and with some upper limit. The battle stabilizes as troops hit barriers, either doors, walls, the other front of troops, or a hero. Heroes disrupt stable borders by breaking morale. Fire disrupts stable borders. Key rooms (away from the normal flow of troops) also change the borders by mutating the environment. 
Hero micromanagement increases as they take damage, although they can fall back behind lines to heal. Falling back breaks moral however, and moral falls over time. Therefore, the offensive force has a limited amount of time to push forward.


Look and Feel:

We are copying the style of FTL at the moment, but from a cutaway side perspective instead of a cutaway topdown perspective.



Basic Goals:

- JSON representation
- Programmer art
- Undirected graph of castle
- Troop movement and flow
- Heroes
- Victory / Defeat based on killing all opposing heroes

Intermediate Goals:

- Castle art
- Troop art
- Hero art
- Fire movement and flow
- Mutating castle environment

Advanced Goals:

- I can't even imagine these right now

Todo list

I'm gonna work on a scripting environment to speed up the development process. Javascript IS a scripting language, might as well take advantage of it.

Tools

- github
- ace in browser editor
- codeheartjs
- angularjs

No comments:

Post a Comment