IGWOCTISI is a pure multiplayer turn-based strategy game developed as a team project on the last term of my bachelor grade university education. Its rules are more or less similar to those of the popular browser game Warlight and the classical board game Risk. The setting is different however as all the action takes place in space. The aim of the description is to be a brief retrospection of the project.
- IGWOCTISI Server
- IGWOCTISI Web Interface
- Lambda Cipher Genesis, codename IGWOCTISI 2: The revenge of IGWOCTISI
The major challenges which the team encountered during the 3 month development phase consisted of:
- Implementing multiplayer functionality. The network communication was to implemented in a multithreaded way, which forced the team to carefully design the specifics so as to avoid many troublesome and difficult to detect errors such as race conditions and deadlocks. Also, there were many various so-called "rainy day" scenarios which needed to be handled in order to make the game stable enough for the player to actually be able to finish a single round.
- Devising an effective workflow, communication and documentation methods. There where many opportunities for disagreements and misunderstandings starting with the game client architecture, through server message specification and ending with such down-to-earth issues as code organization and coding conventions.
- Integration. The client, server and the website were developed using different technologies and essentially running on different machines.
Technologies and tools
The client was developed using C# along with XNA and the Nuclex Framework (specifically the GUI and particle modules). The server is a Python script using SQL Alchemy package. The website consisting the ladder and game history was using the Kohana 3.3.0 framework. Most of the code was written using Visual Studio. Two version control systems were used: Mercurial and Team Foundation Server.
- The team consisted of programmers who started programming more than 6 years ago and apart from general programming experience all had worked with agile software development methodologies.
- The team members already had experience using most of required technologies.
- All in all, the project hand very clear vision and goals and went according to schedule, with almost no feature creep (apart from a few visual enhancements).
- Obviously, not all middleware was perfect. Some of it required serious hacking in order to make it fit out needs.
- Some features were not really needed and were therefore ignored, but remained until the end of the project, haunting the backlog.
- The project management software was cumbersome and required some additional effort in order to learn the workflow in the beginning, but in the end, it worked and didn't make it (much) more difficult to accomplish the tasks.
|Logging screen||Game lobby||In-game chat|
|Deploying fleets||Moving fleets||Commands|
|Game statistics||Player ranking||Player profile|