maanantai 19. marraskuuta 2012

This time it's gotta be.. concurrent

I don't know to whom will the following rant have appeal to but i'll rant on anyway.

MMO's are said the be the most complex pieces of software today. Big money is spent in programming them and the smartest boys are spending countless of hours at their cubicles, hammering away and deciding it really doesn't matter if you don't check for variable overflows.

Anything that has to do with multiple players playing the same game simultaneously is bound to get hairy to say the least. For your IOS developers you got game center to make things smoother.

When I got into programming my first multiplayer game 4 years ago, no libraries I could use existed. I had to build everything from scratch and explore myself. With multiplayer games you get all kinds of funny errors with timeouts, lags and crashes depending on the players internet connection and browser. I adapted a card game called 'tuppi' with php&javascript and after a few months got something that worked on a good day.

Nettituppi (as I called it) might still float around somewhere in a zombie state. It didn't turn into a fully playable game but many lessons were learned by trying to build one. the main lesson probably is 'expect a timeout'. The next best thing to a timeout is to expect a piece of old game data that comes in again and again and again. After that you can start dealing with corrupted / injected data packets and things. The .php file that took care of the game matching and things became a modern example of bloat and bugginess. Don't try to do it with php, kids.

A few years back I thought of rewriting tuppi with javascript and push the messaging thru XMPP. Ejabberd was easy to install but the js libraries for xmpp were just too immature. Maybe even the browsers were too immature. The debug tools most certainly were too immature. =)

So I had to drop XMPP tuppi as I ran out of time to tinker about plus the js XMPP world was just waay too frustrating. This year, things changed. The Strophe library actually worked and there were even a few examples on how to use it. Tinkering on I got the base communications class ready and my primitive bots were Doing Stuff. Brilliant, now we are saved!

There are still a few things to take into account when you communicate over XMPP but nothing too hard. Expect a lot of sitting in front of your computer debugging and trying to find out what happened. But that's the name of the game yeah.

If you, dear reader, want to try and build a js proto of a over-the-net card game, the news is that the javascript libs are there and are not too hard to learn and use. Even complete noobs can get stuff done so Get coding!

Ei kommentteja:

Lähetä kommentti