The idea was quite simple, here in very short:
- A player can challenge another player choosing a map.
- Every player has a roster of five pawns, and every player has to line up his pawns in a specific area that changes in every map.
- Every player has to choose the pawns (every pawn has its own skills) from a side deck following one rule: he can’t put more than two pawns of the same type in the map.
- Every player in his turn has a limited number of moves and the goal is to occupy some specific area and keep it as long as possible to gain points.
- After 30 turns (15 for player), the player with the higher score wins.
In our first implementation we defined 6 kind of pawns
It was more like an experiment to develop in my free time and for my friend was a good excercise.
More an excuse to push we and our skills to the limit.
The video game development it’s not my job, so I didn’t even know if I could be able to achieve some result and so I decided to focus on the client side, postponing the decision about the server side.
After a couple of months we had a prototype fully functional on client side
What about the server side then?
My brother owns a linux server and he offered to host my experiment for free. I wasn’t in the mood to develop again in PHP so I explained him my idea and he accepted to help us in his free time.
He decided to use Yii.
The server side had to be very simple, I didn’t want in place too much data validation because I prefered to be able to change fast the rules of the game and test it just changing the client side. I decided to secure data once we were enough sure about the game rules.
So the server side had to deal with: login, creation of a game, a very base user profiling, store game’s data and a very soft validation just to be sure not to send rubbish or to avoid that a player could perform a turn in a game that wasn’t his own or perform a turn during the opponent turn.
We worked in this way for few months, after that, my brother’s time for this activity had a huge decrease, so he prefered to quit.
But we had an alpha version fully functional.
I gave the link to some friend to start a test and receive feedbacks.
At that point I had worked on this project more or less 400 hours splitted on two years.
In those hours I even calculated the creation of a basic website, and a UI and UX for the game and website.
At that period I started playing with SignalR and I wanted to use it in the game and so I decided to use my brother’s quit as excuse to refactor a lot of things and change server side technology from PHP to .NET MVC.
The 2013 had been a very complex year so I didn’t find the mood and the time to work on this project, I continued to explore in theory a lot of possibilities, but sadly I didn’t write more code, only few refactoring.
Hoping the 2014 will be better, I recently showed the game to another friend (Marco Mastropaolo) and he accepted to help me with the server side and share the effort. Obviously, again, in our free time.
In any case this project went so far that I’d like to discuss it, go more deeper about the technology I used, showing code, the architectural choices, the testing approach (Unit, integration, acceptance) for the client side, but it’s not possible in a single post so I think I will put occasionally posts on this subject.