The Google Summer Of Code 2009 ended. So, this is the time to share with the world what I’ve done.
A Mancala Recap:
The goal of my project was to make a new game for KDE. It is a board game named mancala. The target was to make a mancala game and also to set a generalized rule for different mancala games. The details of my project goals are here.
I had experience of working in C++. But, I never used Qt or KDE API before. So,the toughest thing was to getting up to speed on the code base and tools. I chose Qt Creator as the IDE and it worked nice for me.
I thought, I should start working with setting of game rules and developing a demo version of the game. But, my mentor told me to start with the graphical interface with Qt. Honestly, I felt a little disappointed, but now I know how important that was for me. If I started with the game first, life might be much harder for me in the long run. Anyway, I ended up with a board with cups and stone. Here are the details of that phase.
The board was ready, but the stones on the cup was looking so un-smart. My mentor told me to look them real(and also gave some clue). With some effort, I was able to make them look nice. Then the real work began(as per my application). I made a xml file with the rules that defines the game(the nice Qt documentation made it easy). I changed my code so that everything conforms to the data of xml file. At this stage, I was working on the game Kalah. After being confirmed that my xml scheme works, I made other games.
Everything was going fine, but something still missing. Yeah, the animation part. The movements previously looked totally unrealistic. Perfect implementation of animation was not that easy. I am coming to this later. After I thought, I have made the animation, I started working on the game AI. I came up with a AI and implemented 3 levels of the game. So, this stage ended with a human to computer playable game(with bugs). Here are the details of this stage.
Now what I was saying. I thought the animation is fine, but after implementing AI, I found how wrong I was. Somewhere, things were going real fast, somewhere slow. I was disappointed with QTimer and the timing issues. Then, I made everything ok with a real use of signals and slots and QSignalMapper. If I were not in the problem, I might never realized the power of signals and slots.
Everything was Fine, my game is ready, but it was looking naked. Why?? The game had no background!!! So, to the theme file for every game I added theme for background and the name. Now, this is how it looks:
The code of mancala is in the playground.
Future Of Mancala:
GSOC has been ended but, my journey with mancala will continue (and I am staying with u people).
I would like to implement the Indian lap styles so that the mancala game can work with any kind of traditional mancala games. I also want to make a human to human playable version to play through internet.
And, I will try to take mancala as far as I can.
It’s ThanksGiving Time:
I have a lot of people to thank for my GSOC project. I would like to start from the applicaiton period.
I am very grateful to Lydia Pintscher(NightRose) and JLP(I don’t know your name) to help me to prepare my application. Thanks to Stefan Majewsky for making me clear about the proposal. I also thanks Mauricio Piacentini and others those answered my questions in the IRC channel.
I feel lucky, that I got a nice mentor. Tomaz Canabrava, my mentor, helped me every time I was in problem.
Thanks to all the people those helped me different times in IRC, mailing-list with my project and when I was messing with the svn. I found people in KDE really nice and helpful and I am happy to be one of them .