Civilization (IN PROGRESS)

Introduction

Many years ago I purchased the 2010 FFG Civilization board game and absolutely adored the complexity of the game. It attempted to stay true to the original video game, while incorporating its own unique board game mechanics. About a year ago I got Tabletop Simulator, and was shocked to find the game mod in its workshop with the expansions. The game is unfortunately quite difficult to play online because it is not very popular, a fan remade the game online but it is no longer accessible and only supports multiplayer.

Process

I recently started on a project to remake the board game with all of its expansion packs, except instead of multiplayer focus, I am planning to start with singleplayer. I am working on this in Unity3D using C#, but long-term I do have plans to add online functionality. I was able to import all of the game's assets into unity, and will start working on the game's complex turn system. I have already completed a menu screen, game settings, world generation and asset imports. I plan on using heavy object-oriented programming to complete this project with inheritance, polymorphism, abstraction and encapsulation. Unlike Tabletop Simulator, I will be using a scripted system for the game so players would not make any mistakes with the large number of content packed into it. For the AI I have decided on implementing my own customized version of the Minimax algorithm where the AI would decide the best possible moves by weighing the scores of its and other player's moves.