3 ms·
> This doesn't mean anything at all if you've actually built a game before. You can do this with ENet alone, which means they haven't done anything for you. I
by reitzensteinm 6y ago
> This doesn't mean anything at all if you've actually built a game before. You can do this with ENet alone, which means they haven't done anything for you.
I write multiplayer games for a living, and the thought of an built in multiplayer system that does more than ship bytes around and maybe help out with serialization is a red flag.
Do you want to build a strategy game, an FPS, a MMO or a fighting game? Well that's four completely different architectures.
Engines that ship with built in multiplayer tend to be a step up in flexibility from modding a game.
- andrewmcwatters 6y agoGreat, I ship engine software that gets used by game developers. A strategy games, FPS, and fighting game all have the same networking model. An MMO is the only one that doesn’t, and yet you still have a subset of the prior in the later. So no, engines should provide more.
- reitzensteinm 6y agoThis is just not true. The vast majority of strategy games use deterministic simulations with input delay. Fighting games generally use what is essentially event sourcing from inputs with rollback. Neither of these look anything like the client side prediction you'd build an FPS on. I personally know a AAA project that tried to build a strategy game on a rock solid FPS engine's netcode and it was a disaster that sunk it single handedly.
- reitzensteinm 6y agoAnd that's before we get in to asynchronous, async/sync hybrid, trusted peer to peer (used a lot for coop games to lower server costs), multiplayer idle games, hybrid deterministic with trusted peer to peer (eg you can move around freely but gameplay modifying actions are scheduled in advance). It's a complicated and vibrant field and one size does not fit all. There are just parts you can abstract away and provide libraries for.
- andrewmcwatters 6y ago> asynchronous All multiplayer is asynchronous you donut. Asynchronous game rules have nothing to do with asynchronous networking. > async/sync hybrid Pulling stuff out of your behind. > trusted peer to peer (used a lot for coop games to lower server costs) No such thing. There is no "trust" in multiplayer. If you write a peer to peer game, you're open to cheating. > multiplayer idle games What? > hybrid deterministic with trusted peer to peer Pulling stuff out of your behind. At the end of the day, entities, objects, actors, whatever you want to call them, have networked fields and they're serialized and transmitted. Game rules state is networked. Developers choose what they want to network. The engine determines what is sent and what is not. This lattermost piece is where things can get complicated based on whether or not information needs to be sent, shouldn't be sent, is sent by visibility or audibility, is sent by quad tree node, etc. But there's no different architecture for it. That's plainly stupid. There's nothing about these made up designs you're talking about that stops the need for entities to have watched fields that get serialized and transmitted based on transmission rules.
- reitzensteinm 6y agoAll of these systems exist in real games I have first hand knowledge of. What I'm taking from this conversation and looking at your engine is you're very familiar with the Source way of doing things, but ignorant of other work in the field. If you were being pleasant I'd be happy to go in to specifics, but you aren't, so I won't. Although I will say this: > There's nothing about these made up designs you're talking about that stops the need for entities to have watched fields that get serialized and transmitted based on transmission rules. Over a million people have played my multiplayer games, and they are not implemented this way.
- andrewmcwatters 6y agoAll multiplayer is deterministic. You can't have networked multiplayer without determinism. > event sourcing from inputs with rollback This is the exact same thing as rollback in FPS games. It works the same way. > I personally know a AAA project that tried to build a strategy game on a rock solid FPS engine's netcode and it was a disaster that sunk it single handedly. Fascinating, because Valve literally did it with DOTA.