Bounci Madness

Top  Previous  Next

Torsten Simon, the author of Bounci Madness, kindly took the time to answer the questions for this month's interview.


Q: I have to admit that Bounci Madness is an impressive project when it comes to multiplayer coding. How much did it take you to create the code for the entire game?

A: Well, the entire game has taken more than 5 months of work, even though I didn’t work continuously at it. I didn’t have enough time to work on it, sometimes I didn’t have any ideas on how to solve an important problem or I had no ideas on how to extend the game with new features or funny game modes.


Q: What multiplayer-related features does your game include?

A: One of the greatest features is the online server list. Every server sends its status information to the “main” server. So the clients can open this server list and join a server by simply clicking on it. But there is another great feature: Bounci Madness uses its own link protocol, so if you have installed the game and follow a link in the browser which starts with “bmadness://”, the game will start and automatically join the server-ip that is given in the link. So you’re also able to check the server list on a web page or link your server on any websites.


Of course, Bounci Madness also gives the ability to switch between servers while playing, send chat messages or to make “key-bindings” for often used dialogues. The server system is very complex; you can configure it using the menu or a special server config file, where you can set some global values like gravity, map-cycle, maximal number of players, the admin-password and many more. If you have the admin-password, you can use a special client console, authorize on the server and send orders to the server. You could change the maximal player limit, the gravity, load another map or set some game-mode related options.


The server itself is dedicated, so it can be started on any Windows-based system (also on Windows server systems). The console shows possible config problems, performance related information, some other information about the current server status and creates a log file. Bounci Madness also comes with a SDK (WED Editor + Test application) and some basic open-source code for testing your own levels. You’re also able to add your own level to the map-cycle of the server if the level can be downloaded from one of the http servers. So you can create your own maps just like they do it in other well-known multiplayer games.


Q: How many players can compete at the same time without having latency-related problems?

A: Our biggest test was done with 10 players on a DSL 6000 server and the connection was a little bit too slow for this (60 KB/s isn't too much). Every player needs about 1 KB/s to run smoothly, but every player must also be sent to all the other players. This means that for 10 players you would need about 10x10 = 100KB/s. You also have to think about the calculation performance. Every player is a physical object, and there are many complicated algorithms which have to be calculated in real-time.


Q: What were the most difficult aspects that you have encountered while you were programming the game and how did you solve them?

A: On of the largest problems was the lack of stability of the UDP protocol, which is being used for the data transfer. Sometimes really important information (current map, client-related information, etc) wasn’t being sent, so the clients didn’t know what to do and sometimes the server didn’t know what to do either. If the connection is bad, problems like this can still appear, but the server doesn’t have any problems and runs very smoothly. Some root-server systems have been running with a Bounci Madness server for more than a week now without restarting the application!


One of the other problems was to find a suitable and working solution for the online server list, because (as far as I know) something like that was never created before. I used PHP to get this working. It was also very difficult to let the player use their own names and assign them to the correct objects. But now it works and the players can also choose one of 9 different colours for their characters.


Q: What other tools are you using for your game development needs?

A: I’m using the GSTNet-DLL for some of the server list functions. But I also included the Big-DLL from Timo Stark because it includes many great functions I really needed. Of course I also used EasyParticle 3 to create the particle effects of the game. I used Paint Shop Pro for the entire menu and graphical interface, to create the panels and texts, and Vue 5 to create the great looking menu backgrounds.


Q: What multiplayer-related feature would you like to see being implemented in the future?

A: I'd like to see a much easier method to get a client ID; at the moment it’s complicated to identify a certain client correctly. I’m also a little bit disappointed because some multiplayer bugs haven't been fixed yet. The server should also get a command line to enter commands directly on the server without needing to connect with a client first.


Q: What are your future plans for Bounci Madness? Did you start looking for a publisher?

A: Bounci Madness will be a freeware project, and this will happen for two main reasons: the game is still a little bit too “complicated” for a user who doesn’t often play and there are not enough players and servers and on the other hand I want to use this game as my first really start into multiplayer and make my name a little bit better ;-)


Q: What advice would you give to the users that want to learn multiplayer-related programming? How should they start?

A: Well, I have to say that programming a multiplayer game is completely different to programming a single player game. If you want to program a “real” server-client based multiplayer game, you have to split your code in two parts: one for the clients (the players) and one for the server. It’s often difficult to understand what and why the server needs to do, and what the client.


I can give you a tip: start with a simple 2-player game (server and client) and imagine that the two computers are 2 people who don’t know each other and have to communicate anyway. This might sound stupid to someone who hasn’t worked on multiplayer games yet, but it's a good idea.


Watch a Bounci Madness trailer by clicking here.


Thank you a lot, TSGames.