Which Game Network Type???

We are trying to develop a rts/fps that is will be mostly multiplayer. The players play on instanced maps without any interaction with other battles or players that hadn’t joined before battle start. In the aims of keeping our side costs down, we’d only have some servers to support game matching services and after a battle has started, the players break off from us and just maintain connections with each other (and then reconnect to the server and submit results or similar).

The following question is based on that the above plan is acceptable and not incredibly naive or prone to breaking (if it is, please let me know):
Would it be better to have a peer-to-peer network set up where each player (probably a total of 5-8) are connected with each other and when one sends info, it gets sent to everyone from that comp, or should I have one player become a pseudo-server for the rest to connect to and have all the network events go through that?

Hi

Peer to peer gives you a reliability advantage, if someone lags out, you can just drop them from the game if you wish, with one person being the server, if they lag out, everyone gets disconnected. The down side is security, with peer to peer, everyone knows everyones network address, which means a players can do nasty things to one another, unless thats part of the game play? :slight_smile:

peer to peer also introduces firewall issues to a large number of people. UPnP might help you on this issue, but lots of people disable it on devices that support it.

HTH

Endolf

[quote]but lots of people disable it on devices that support it.
[/quote]
Got any states to back that up? Most end users (non-techy) that I know of wouldn’t know what UPnP was, let alone disable it. If they’re techy enough to know how to configure their router and know enough to turn it off, they can probably cope with forwarding a port too :slight_smile:

Kev

What’s the current ratio of people who can’t escape their NAT? IIRC from PS3 the numbers of home BB users with this are still high enough that you want a server somewhere doing packet-forwarding.

IMHO, peer to peer is generally harder to get right - both technically and in terms of infrastructure (preventing variable rates of packet loss and latency from unfairly disadvantaging some players (if you do nothing about them) or destorying the gameplay for everyone else (if you do)). You also artificially limit the number of players per map: P2P is heavily limited by the upstream bandwidth of the players, and there are very few people today on the internet who have anything more than tiny upstream. Depends how much “action” there is in the game, but if there’s a lot of player-created non-determinism, your number of players per game will be forced to be quite low.

It’s also not valid for most games development - in terms of personal experience, client server would be much much better for you.

Finally, servers are a lot cheaper than you may imagine, and if the game has any popularity at all, you may find yourselves wanting to go to a fatter server in the near future. If you make the game “one player hosts” then you have an easier path to switch to hosted servers. But that’s only an issue if there is any chance the game will get played by more than a couple of hundred people ever (no indication from your post whether this is a fire-and-forget hobby project, or something that you want to promote widely) - I suspect you don’t care about this one.

So … go P2P by all means. There’s intersting stuff to learn from it. But c/s is the more normal route for games dev (RTS being the only real exception, and then mainly because the number of things a player can do per minute is very low)

PS: in case someone doesn’t notice, it was the bolded item that stuck out at me. FPS and P2P don’t mix - in general, it would be insane to attempt it.

For the game each player would have a persistent army that would be stored on their account and then at each battle, they could contribute some number of troops from that reserve to then control in the fight. Since each player has there own army, we thought that to distribute the computational costs of AI (since physics will be calculated, too), each would generate the AI actions on their computer and then send the events to the others. This seems like that could be a lot of traffic, especially if the total number of guys is numbering (hopefully) at about 1000.

So, I guess I’m asking, would it make more sense to build it so that only the fastest computer acts as the server and computes all AI, and then broadcasts it to the clients? This would make it much easier then to switch to our own servers running everything if it became popular enough.

As for whether or not this is just a hobby, it kind of is, but I would want to see it finished and go somewhere with it.