March 14th, 2009
I thought I’d change my tune with this post and express my opinions on something that concerns me a little. With the internet connectivity being a strong focus for the current generation of consoles, we have seen the emergence of online stores that digitally distribute games, additional game related content and lots of other goodies. Two of the three major console manufacturers currently use a custom currency on these digital distribution channels. This in itself annoys me because in my mind it appears to mask the real cost of a piece of content. Since a Microsoft point or a Wii point isn’t a common currency I believe that people tend to undervalue its worth and hence buy more content on this fact alone. This is however not my major gripe with the system. I am very dissatisfied with the methods of buying a game through this point system.
To explain my point I want to refer back to an incident that happened a few weeks ago. My brother and I were buying some virtual console game via the Wii Shop Channel, the digital distribution service for the Nintendo Wii. We wanted to buy around four games that we’d previously missed out during our youth. We searched the store to find our first game, Super Mario RPG which was valued at about 800 points. We then followed through the prompts to purchase the game since we couldn’t add it to a shopping cart and bundle it with our other purchases. We were soon arrived at a screen saying that we had to buy a block of points to buy the game. The lowest increment of Wii points was 1000 at $15 AUD. This means that we had to spend $15 to get a game that was really valued at $12 AUD. If we were buying a NES game that usually sell for 500 points then we would have to pay twice the price for it. Overtime we will likely buy more games and use up those points but it is highly likely that we will get to the stage where we don’t want to buy any more games and have several hundred points sitting in our account.
Let’s play with some numbers to get a rough idea of how much Nintendo are profiteering from this concept. According to VG Chartz there are about 48million Wiis sold around the world at the time of writing. Let’s make the assumption that only 5% of Wii users are online and of those 3.75% have some Wii points left in their account. Lets continue with some more assumptions and assume that on average there are 120 unused points in an average account. If my figures are correct this means that 1.8 million Wiis have a total of 216 million Wii points sitting in their account. This works out to a total of $3.24 million AUD and they are making this money for free. Do you feel a little cheated now? I know I do. Of course the Wii user base will continue to increase in the future as will the amount of users buying content for the Wii Shopping Channel so this figure will surely increase.
Don’t take these numbers too seriously but do take note of the extremity of these values. I believe that the Xbox 360 Marketplace uses a similar sort of system so Nintendo is not alone on this one. To heighten the amount of unused Wii points the current bundles of Wii points are not easily divisible in common pricing structures for games. Of course for cases where you buy a point card at retail this problem is inevitable by design but could be avoided by a more realistic point allocation. So the next time you invest in a block of points think about how much you are really paying for that 800 point game. Be back soon.
March 8th, 2009
I’m happy to say that I have finished adding all of the small touches to Draughts and it’s ready for public consumption. According to the deadline I set I am a bit overtime which is slightly disappointing. I think the biggest contributing factor was a lack of planning. By the time I finished implementing the baseline functionality, the game states or the game engine weren’t implemented. Despite being a tad late I feel that I’ve learnt a lot about some new tools such as Valgrind and bit about how game engines work.
I’d like to thank
Roald Strauss for the music. I discovered his music at
Indie Game Music which is an excellent resource for finding game music.
I have only provided the source code for Draughts since I didn’t want to have to deal with request about any compatibility issues. You can however compile the source code yourself and play. The game requires the SDL, SDL_image, SDL_ttf, SDL_mixer libraries. Here is a great tutorial about compiling SDL applications for your system.
Download Draughts Source Code
http://nexfinity.net/portfolio_files/draughts/draughts.tar.gz
Everything provided in this zip file except for the background music is under the CC-GNU-GPL license. The background music is owned by Roald Strauss and he’s permission has been granted for use in this game.
If you would like to leave feedback then you can enter a comment below or drop me an email. I have a few ideas floating around for what I want to do next, probably something more ambitious with SDL since I enjoyed using it. For now my brother has a few web related things for me to do which I should get to. Hope you enjoy playing.
March 4th, 2009
I am happy to say that I have finished programming my Draughts game. If you have been following my Twitter then you may have noticed that there is one thing holding me back from releasing it, memory leaks. I personally expected to have a few since I haven’t had a great deal of experience writing more sophisticated applications in C/C++. I got around to checking these leaks the day before I was heading back to University for the semester so I haven’t been able to address all of them yet but plan to soon. For the mean time I would like to discuss the AI that I have used in this game.
One of the fundamental concepts behind AI is the Turing Test as discussed in Alan Turing’s 1950 paper “Computing Machinery and Intelligence“.
A human judge engages in a natural language conversation with one human and one machine, each of which tries to appear human. All participants are placed in isolated locations. If the judge cannot reliably tell the machine from the human, the machine is said to have passed the test. In order to test the machine’s intelligence rather than its ability to render words into audio, the conversation is limited to a text-only channel such as a computer keyboard and screen.
With this in mind I decided to brainstorm several things that would cause my game to fail this Turing Test. The first notable thing is moving a piece into a position in which the opponent can jump that piece when there are other more advantageous positions on the board. The second is if the computer player doesn’t take the obvious jumps and double jumps. To put these into play I decided to assign a priority to all of the possible moves that a computer opponent could take. Any moves which resulted in capturing an opponents piece would would receive an increase in priority and any moves that resulted in being captured by the human player resulted in a decrease in priority. The computer would then take a random move out of the list of moves with the highest priority.
The system described above is the crux of the AI. Overall effect works really well towards the start of the game but sort of falls apart as the pieces become scattered across the board since the AI moves pieces at random. I’d like to think that the aggressiveness of the computer early on makes its flaws less apparent towards the end but this not always the case.
Thanks for reading. Hopefully towards the end of this week you should be seeing the source code of Draughts here. For now enjoy some of these screen shots.