Reich
Tactical turn-based videogame with a WW II setting.
Reich is a videogame I’ve been working on-and-off for years now. It was born out of my love for tactical games, particularly Intelligent Systems’ Wars series.
It is a turn-based game, allowing up to 4 opponents to compete on each map. I like to have time to think through each move and turn-based games are ideal for this.
Set in an alternate World War II setting, its units and maps are modeled after real-world vehicles and war scenarios.
I’ve used it to learn new game development techniques like path-finding routines, GUI design or artificial intelligence using c#, mono and monogame. I also had a lot of fun implementing automated testing for all the game systems.
[Test]
public void ComputeFogOfWarWithTwoUnitsShouldMergeBothFogsDifferentViewPoints ()
{
int mapWidth = 5, mapHeight = 5;
SetTileMap(ref _Tiles, mapWidth, mapHeight, 1);
CreateUnits(_ExpectedFogMap, mapWidth, mapHeight);
_Service.ComputeFogOfWar(_FogTiles, _Units, _Tiles, _VisionCosts);
var expected = new List<string>()
{
{ "░ ░▓▓" },
{ " ░▓" },
{ " 3 1░" },
{ " ░▓" },
{ "░ ░▓▓" }
};
AssertFogMap(expected, mapHeight, mapWidth);
}
The objective is to defeat all the enemies in the map. It can be done by destroying all of their units or capturing their headquarters. Scattered through the maps are structures that can be captured. Cities provide tokens after every turn that can be used to buy new units. Factories, bases, air and seaports can also be present in a map and allow creation of units associated with that type of structure.
Terrain also influences unit movement and sight. Aircraft have no limitations but ships can only go in the water. On land, tanks can’t cross mountain ranges but soldiers can and get a vision bonus when they stand on top of one. Forests also slow soldiers down but are good hiding places.
The player starts out with the allied campaign. New scenarios become available as the player racks up victories and after he completes the campaign an harder axis one becomes available for him to try.