I am making a Bomberman clone and have the game logic all set up, and now I'm ready to add in networked multiplayer.
This is my first time attempting network code for a game and have read about client-server setups, P2P setups and their main advantages and disadvantages.
It seems like some game genres are more convenient for certain network structures than others. For example, P2P is common in RTS games.
Well, I consider Bomberman to be like RTS of sorts, just greatly simplified in rules and player options. It has real-time action like a shooter or fighting game, but not as fast-paced (although I know Awesomenauts also uses P2P and that is an arena fighter). I am going to make it support up to 4 players and then after having that work, see if it scales well to 8 players.
Currently I have some test server and client setup in the game, using Lidgren. Just for sending string messages through each other and displaying them in their windows, nothing more. If I were to use P2P instead, I was planning on just sending player input states every time the input state has changed for that player. The input state is encoded in a bitmask which would help in sending data to a minimum.
Would P2P be better for this sort of game, or client-server? And am I correct in the kind of data I am going to send to the other players (or server), or should I send the players' own position and bomb data?
I know I still need to deal with input lag, and sending player data directly is more prone to user hacking, but I want to start with the basics first because I think that the network structure I choose will greatly impact how I will update the game logic.