The latest personal project I am working on which also happens to be the largest personal project I have worked on so far.
King of Adem is a game for tabletop minature wargamers. Players manage their kingdom through the app. Kingdoms consist of a number of a territories, each player starts with one.
In each territory there is a capital city in which buildings can be constructed. Buildings provide benefits like more money or the ability to recruit armies.
When 2 armies collide by moving into each other the players can then resolve the battle as normal by playing their normal game of tabletop minatures.
The game takes place on an island called Adem. Adem is a recently discovered island where each player is fighting for control. You fight to become the “King of Adem” by conquering the whole island.
Although Adem is stated as “recently” discovered, this only means “recently” in the grand scheme of things. Adem actually has a number of Kings / Factions already on the island and each Kingdom has some infrastructure.
The project is currently divided into 3 parts …
Part 1 – Game Server
The Game Server is currently in construction and is being developed using the Yii 2 framework written in PHP. The database is MySQL. The server takes view requests and command requests from the client application.
View requests provide data to the client in JSON format. This data has everything needed to render views for the game for example, building, army, territory data.
Command requests provide data to the server about interactions happening in the client application. For example move commands, construct building commands etc.
The decision to use View / Command requests was chosen instead of opening the server up entirely.
Essentially one option could have been for each Data model on the server to have a view, insert, update, delete request to use for either commands, views or both.
This would give the client more freedom at the cost of putting more logic onto the client.
As the first client is being developed using IOS and IOS uses a view per screen type of structure then View requests make sense. Giving the client the exact data the client needs in order to render the view.
Part 2 – Game Test Client
The Game Test Client is currently being developed alongside the Game Server and serves as a testing ground for the development of the server.
The Game Test Client can send View requests to the server and read / present the data from the server in a user friendly way. The Game Test Client can send command requests to the server.
The Game Test Client is being developed using the Yii 2 framework written in PHP. The Game Test Client is my own personal client for testing the server and is not the actual client the end user / player will be using.
Part 3 – IOS Game Client
The IOS Game Client is the actual client the end user / player will be using to play King of Adem. The IOS Game Client as you might have guessed will be an IPhone application. There may also be the ability to run the application on the IPad as well.
I decided to develop the IOS Game Client because I wanted the game to be portable and it cannot get much more portable than having the game on your phone.
I also choose the game to be an IOS application because I want to improve my IOS skills and offer IOS development as part of the everyday services I offer to my clients.
Once these 3 parts are complete the game will be playable and released to the public. Part 1 and 2 are already in construction, Part 3 will be constructed after parts 1 and 2 and completed.
After the game has been released to the public, a number of other client applications could potentially be developed including an Android version and a full game client developed in Unity3D or similar.
The IOS client will be more management like as opposed to a graphical game. The IOS application could include graphics etc, but it will not be at the level of a full game like experience. This is why I suggest a later developed Unity3D or similar game engine development.
I will be keeping everyone informed of the development of this game through the blog so keep checking back for further updates.