Friday, November 09, 2007

Nintendo DS programming

I got my DS a couple of months back. It is a cool looking black DS. The first thing I did with the DS was to try my hands on programming on the DS. Programming on the DS is very simple not like other handhelds like the PSP. There is a huge community support out there on the internet to help you get started with DS programming. Devkitpro is a free homebrew sdk provided by the community to start programming on the DS. Once you install this SDK, the environment on your machine is set to compile and execute programs directly onto the DS. You could download the DevkitPro SDK here:



Please download the latest version of the SDK. The installation process is very simple and it will guide you through the entire process. Once this SDK is setup, you could browse through the SDK examples on nds programming. There are tons of tutorials to choose from starting from 2D graphics programming, 3D programming, sound programming on the DS, etc. You will have access to all tutorials to start writing your first game on the DS.


But hold on! When you compile the program on your PC, a single file output is created with a .nds extension. What to do with this file? Well in order to run this on the DS, you will need to first buy a R4 memory card which can be used as a regular DS cartridge.
So where can I buy this R4 memory card? Well you will have to purchase this online and get it shipped to you. One of the places where you can buy this from is http://www.gadget-asia.com/. The best deal on this website is the R4 card with a 1GB micro SD card. Also it comes with free shipping to India!

Below is the direct link to buy this:

Once you have this memory card you should be able to transfer your programs onto the DS and check out the output. DevkitPro allows you to fully access the hardware of the DS. So this is the closest a homebrew programmer will get towards programming on a real console. I have programmed on the PS2 Linux kit provided by Sony but it is a real pain in the ass to program on that kit as very little support or documentation is available to program on the PS2. Though I managed to write some code on it but it is not worth the effort. I strongly recommend programming on the NDS as it is the closest you will get to real programming on the console. Of course you do have XBOX 360 programming by using XNA, I still have to try it out!
So go ahead and get you hands dirty on the NDS!


Saturday, July 21, 2007

The technology behind MMOGs (Massively Multiplayer Online Games)
I'm very excited with the MMOG scene that is happening around the world. The technology behind this fascinating experience is just mind blowing. Just imagine millions of people connected through hundreds of servers and playing in a persistant world. Isn't it fascinating to think what kind of technology must be behind such a system? Well some may say such technologies have been existing since a very long time when hundred of computers were connected to each other and the crazy world of "downloading" used to happen. About a decade ago, before a similar situation existed with hundreds and thousands of internet users connected to each other and shared their files on the net. Well the technology might not be the same as an MMOG but I'm sure the experience would have been similar. The fascination of connecting and sharing information with hundreds and thousands of internet junkies just makes the entire social experience exciting.

Figure: a in-game shot from World of Warcraft, a popular MMOG game.
Well now the famous question....how do I start writing the system behind a MMOG game? Well the answer is complex as an MMOG game involves both writing a game as well as the networking system behind this game. So I would broadly classify writing 2 systems for an MMOG game.

  1. Firstly the networking system which would drive the technology behind the game, and
  2. Secondly the game itself which would offer that unique MMOG experience.

I'm more interested in exploring the technology behind the MMOG networking component. Before you start writing any components for an MMOG system, you would have to be familiar with basic networking concepts like client, servers, TCP/IP, sockets, etc. I would suggest you starting with reading about Winsock 2.0 which basically helps you with creating sockets and networking different computers and setting up a client-server architecture. Instead of going through books, I would suggest first reading trough the below article on Winsock programming. It is fairly simple to understand and I hope you would find it easy too just the way I did it.

WinSock2 for Games by Stefan Hajnoczi

Once you are clear with the concepts of Winsock, you can then explore the architecture behind some famous MMOG engines like BigWorld, Multiverse, etc. I shall be writing some more theory behind these architectures a little later. Till then expore the world of MMOG!


Sunday, June 17, 2007

Just finished playing: God of War 2
what a game!! i thouroughly enjoyed playing this game. I was waiting for this game ever since it was announced last year after the release of god of war 1. But the ending has left me wanting for more. God of War 3 will hit the next gen systems next year and I do hope they bring it to the PS2 too. Cmon Sony, there are more than 100 million PS2 out there...do not dissappoint the fans of this system...get it on the PS2 too....

My favorite boss fight of this game was the lakhesis boss fight with the sisters of fate. A good lenghty boss fight. Not that it was tough, I just loved the constant tension this boss fight maintained. This would easily be one of my best boss fight for a long long time. This even beats my previous best boss fight in Shadow of Collossus (anyone remembers the dog boss).

I must say the story of God of War 2 was very good and always kept me going to know how the story unravels itself. God of War 2 is easily one of my best games I have played this year.