How would you solve MMO combat latency without client-side prediction?

How would you solve MMO combat latency without client-side prediction?

Yes, this is a technical topic.

Attached: 20130117_gw2combat.jpg (1440x900, 447K)

Other urls found in this thread:

en.wikipedia.org/wiki/No-communication_theorem
twitter.com/NSFWRedditGif

do what ever fps's/mobas do

give everyone better internet
make a turn-based combat system instead
have the game kill all bandwidth-using processes on startup

>give your users better connections
>make sure users only connect to other users with similar latency
>dont validate stuff the client sends back to the server, treat it as all good

alt + f4

>>dont validate stuff the client sends back to the server, treat it as all good
You want your game to get hacked? Cause that's how you get your game hacked

Have everyone connect through a VPN that sets your ping to 999 so it's same ping for everyone (e.g. if you have a ping of 200 it would add 799 through tc)

Me? I do not mind having client side prediction
OP is the one who has to make such tradeoffs when having requirements like that

I wouldn't because mmos are for brain-dead children and should be illegal alongside slot machines

Eve online solved this pretty well.
Have stupid long ticks (1 second) for server side computations, and have the visual stuff approximated on the client side.
Additionally, under server load these ticks scale and become longer, so what once took 5 seconds instead takes 20.

This works because of the type of game it is, and it needs it, since it's single shard.

I largely agree, but non-themepark mmos are for grownups

You can't unless you can create some sort of warp in space time.

>stop liking things i don't like!

Seems legit

>themepark
>>>/mmorpg.com/

the ones that tried to mess around with combat latency ended up with a big mess and thousands of hours spent on something that no one wants.

Battlefield 3: Implemented a latency system, it solved the problem were you missed shots while hitting the target? Yes but it also created one that's even more frustrating now you could die 5 or 10 seconds later for no reason, bullets chased people around corners and jumping around corners made you invisible for 1 or 2 seconds so you could surprise people and kill them.

If you have a shit connection don't play games that require high latency go fuck of and play tetrix.

Make the game single player offline and co-op/pvp online.

The only people with latency issues are Australians and New Zealanders. Dont be one of those and there's no problems.

its still an issue going US-EU or US-SA, hue cockroaches ruin everything they touch.

having only client-side protection will also inevitably lead to your game being hacked, unless it can only be played on un-modifiable black boxes distributed by the publisher rather than users' own PCs

having a hackable client will also inevitably lead to rootkits taking screenshots and process snapshots every few seconds for every legitimate nonhacker user.

build a new internet like LoL is trying to.

desu I am of the opinion that if you rely even a tiny bit on client side measures to protect against cheats then you are going to have a hard time
client side protections are just unnecessary fluff

supreme commander has a similar method,
the server only accepts commands every 100ms

Make a system that creates a wormhole between each user's pc as soon as they engage online using cobol.

1 tick is all Eve needs for gameplay, though. It's also all it can afford without overloading its clusters a ridiculous amount. If you even up it to 2 ticks per second, gameplay doesn't improve for anybody except tacklers, who will be able to instantaneously warp scramble anyone coming out of cloak; even the instant warp fits, literally the only thing that can definitively counter tackle.

Slow tick-rate only works because the design of the overall game supports it. Very, very few games support that design. I would argue that the majority of realtime games would suffer significantly below 20 ticks/second. And even then, that's kind of low for my taste but with absolutely zero research I would guess that's probably around what games like WoW use for server performance reasons.

Most RTS games have this design, and it works well for them, because RTSes don't rely on low latency that much. A delay of half a second between my order to have my army attack, and the actual attack, is fine.
FPS games traditionally have a very different design, that involves prediction and latency compensation and shit. Because these games become unplayable with 0.5 second latency.
MMOs and dotalikes are a bit of a middle ground, which presents new challenges. I do wonder what tech these systems will use in ten years, when most of the good ideas have hit the market.

1000 tick servers

>0.5second
thats like 3x+ what is acceptable

For shooter games, certainly it is. But for games like supreme commander, it's really not a problem.

Can't you need to be able to guarantee good latency with more than 10 people.
The lockstep like alg that most mobas do just won't work either.

there were mmos and 64v64 shooters running on dialup in 2000, after broadband everyone started shipping lazy shit netcode

So long as it's not pvp you could made battle ai deterministic and make sure the sever and client are on the same page every once in a while.

Fuck me, that actually sounds like a good idea

dialup wasn't inherently slow latencywise.

That sounds familiar, AoE2?

>he says this on Jow Forums

Its like an Indian traveling to a big first world country and complaining about someone's dog shit in the street.

t. shooter player

Yes, I believe most online rts games work that way.

If you refuse to use client side prediction to smooth things out then you're limited by the speed of light in the transport medium, which is mostly fiber. You're further limited by the PACELC theorem in that you will often have to choose between latency and consistency even when the network is working reliably.

There is no good solution, only tradeoffs. That's why client side prediction is often used. It works well when the connection is reliable and typically the user won't notice it. If you want good real time play, do it over a local LAN.

In C&C, everything was seeded and everyone had the same seed. Everything ran on everyone's separate clients, and it largely assumed that everyone was on the same page. That's why it had a lot of desync issues.

Blizzard managed to figure it out like 15 years ago

Turn based system. Just like global cooldown in wow.

First off, every 3D action MMO *needs* its own engine designed specifically for it.

Fuck this Unreal Engine bullshit that developers employ just to save money at a significant cost to performance. MMOs are some of the most demanding software out there; using a generic engine for one is just fucking lazy.

Cooldowns and turn-based systems aren't the same thing at all, even conceptually. On top of that, it was implemented as a game balance thing, to prevent ridiculous plays; similar in concept to Eve being limited to 1 tick/second. There are many examples of excepting the rule of the global cooldown at that.

We could use entangled particles to communicate between servers and clients instantly.

autokick anyone within a threshold of the average ping

So.. The majority of players?

(You)

I hope that's a joke. Poe's law says I should give you benefit of doubt.

It is and isn't. I know we can't do this now, but don't know if it's just impossible.

999ms guy gets kicked the average goes down
20ms guy gets kicked the average goes up
it'll even out

>I know we can't do this now, but don't know if it's just impossible.
It is.

en.wikipedia.org/wiki/No-communication_theorem

It's just impossible.

That was more a statement of how you worded your suggestion; I knew what you meant.

Also,
>your connection is too good to play
Punishing people for having good connections is the most ridiculous thing. It's a great way to have the disdain of customers and players.

Thanks for that, especially the link :)

as if someone picks the internet plan with a bad connection

And? It is perfectly reasonable to punish players who have a bad connection. It might not be their fault, but what does that have to do with anything? The fact remains, punishing people for having a good connection is not only incredibly ridiculous but also a great way to have the disdain of anyone who invests time and money into your product.

5G is going to massively reduce latencies, it has almost wired level latencies

People gaming on shit tier 3rd world lines might be able to just game off a 5G router and get better speeds, and once this tech is adopted in many countries you'll see better latencies

actually this is not a bad idea, however you would need to write a protocol for that since vpn itself is not capable of traffic shaping.

implying i would play anything that's not region locked, pajeet

You're playing a fucking MMO. You're playing with pajeets and chinese bots, whether you like it or not.

>Can't you need to be able to guarantee good latency with more than 10 people.
Planetside has 300 people fighting at once and maintains good latency, copy what they do

>Planetside has good latency

Every time i've tried it's unplayably shitty

The game does not have perfect latency all the time, but it has good latency most of the time.

If you're trying to argue otherwise you're nothing but a shitposter

Use the mesmer's teleport to move bits from clients to server instantly.

I think what they do is have much higher levels of sever side checking and interactions with people who are close, similar to things like fortnite and pubg.
Most of the time the devs have specific areas where players are supposed to be clumped players in these areas are all dealt with on the same server or process, with people outside that being put into a misc server where things aren't checked as closely. The idea being if you're out in the open you're an idiot and are gonna die anyway.
The big difference being, that strategy is harder to do when you have 1000+ persistent players and even more NPC's across a much larger space.
IDK it's a hard problem

So if you're out in the open not only are you at a tactical disadvantage but also at a technical disadvantage? That's just stupid. When you die, it should be because of the inherent disadvantages to making those decisions, not because the server is unable to facilitate making those decisions in any meaningful capacity. Bad design.

You're at a technical disadvantage only because you're at a tactical disadvantage

Some shitter running out in the open is inherently less important

Well thats true but, there are also fewer players out there. So most of the time you probably wouldn't notice. And additionally the other players are at the same disadvantage so it kinda evens out

Planetside is clientside and does render culling, prioritizing important things first - like nearby players, and less important things last, like an unmanned turret 300m away. Long distance players also turn into 2D sprites instead of 3D models, and I'm pretty sure their positions are updated less often to your client than people rendered close to you.

Clientside does means that even when someone is being a laggy motherfucker, if you see him and shoot him, it hits. (It also means cheating is easier)

Attached: lagman.webm (720x404, 2.99M)

>you're only at a technical disadvantage because you decided to run into a technically inferior area which is transparent to the user and is not actually meant to affect gameplay but does anyway
You have yet to tell me why that isn't bad design, all you did was sweep the bad design argument under the rug.

If you can design it in a way that's predictive of the quantity of players in it and will virtually never affect gameplay because of the sheer improbability of the number of players entering that area, I can see that being a good way to do it. Impact on those shitters is negligible to minimal, except in extreme, unlikely cases. It has its flaws though because edge cases DO happen. That's a very mitigation, but I feel like it could be improved. There are a static number of players in a map so I bet that can be used even further, such as making areas/servers that process inputs and actions adaptive, to be less intensive the fewer players there are in an area.

I mean, all rendering is done clientside. I was talking about serverside interactions. If they do everything client side that would be impressive and I'd be curious as to how they did that.
Some sort of weird P2P?

iirc planetside 1 was using a modified tribes 2 engine which was open sourced as torque and there are some great writeups about the netcode as it was excellent

That's why the battle royale system is so genius. Forcing the players to be closer makes them kill each other which relieves sever load as the players get closer.

It takes the best case scenario for player interaction and uses the ruleset to incentivize that behaviour without the players knowing

Man i miss /gw2g/

Always reminds me why i will never buy a pass when they can't even get these furry spambots under control

I actually hate the battle royale system. It feels vapid and unsatisfying to me. It took all the interesting parts of games like DayZ (struggling to survive in a dangerous world, paranoia, establishing and breaking trust between other players in an open world) and just kinda boiled it down to the lowest common denominator smashing-watermelons-for-satisfaction-tier stuff. But, it is what it is. And it does allow for a lot of transparent technical tricks to let players do their thing while also relieving server stress. I appreciate it as a programmer, but definitely not as a player.

spatialOS and amazon's distributed server solution are the latest in MMO tech

don't think it's the sort of tech that helps with latency though, mostly just helps keep everything server-sided

When I say clientside, I mean your interaction with other players.

If you see someone and shoot them, your computer does all the physics calculations, determines whether or not you hit the target, and then sends that off to the server. The server then tells that player they're being shot at and how much damage they're taking.

It's easy to cheat in this system because all you need to do is spoof the info you feed the server "oh yeah, I uh, totally hit that guy..." and the server just trusts it.

There's interpolation as well. Player positions aren't updated constantly, they get smoothed out between position updates. Webm related (recommend watching 0.25x or slower) is from when a bug disabled interpolation and players were jumping around between position updates.

Attached: lagside1.webm (768x480, 2.98M)

Honestly I'm not a big fan of it, but I appreciate it for what it is.
Though I don't really like DayZ either XD

What if Players only come into conflict with those they have smaller pings with.

The server is a bottleneck in that all events have to go through it.

I hesitate to say it as its such a meme, but peer to peer and blockchain may help, as the game server wouldn't need to immediately keep track of combat events/transactions (such as killing, being killed, looting items), but they could still be cryptographically verified

And here's an example of smoother player movement with interpolation working properly

Attached: 5guys.webm (768x480, 2.99M)

Blockchain maybe but peer to peer? In zero percent of games has peer to peer made networking any better. It literally has only caused problems. I haven't looked enough into blockchain to see what that's about.

It has worked well for skype and bittorrent. An mp3 is conceptually not that different to a rare item.

The only issue for gameplay is the ability of files to be copied unlimited times.

SSL certificates on the other hand for example are either issued to you from an authority or not.

And here's an example of the number of players planetside 2 can have in a small space fighting each other with little/no observable lag issues

Attached: SmallGloomyKestre2.webm (1024x576, 2.89M)

>It has worked well for skype and bittorrent.
Guy. I'm not even sure if you're aware of what you're saying right now. Are you well in the head, friend? Do you need to lie down?

In zero percent of games has peer to peer made networking any better. It literally has only caused problems.

And here you can see how the render culling works with players too far away to matter.

Attached: SmallGloomyKestre3.webm (642x690, 2.87M)

p2p is used to save money, that's about it

This is halo custom edition, using lead, I'm not sure how it works, but I'm pretty sure the hits are calculated by the server.

Attached: out.webm (640x512, 2.55M)

Hey no need for personal attacks friend.

Just saying cos why would you have data going from one players computer, to the game server (maybe one that has a high latency) then back to another player that may close on the network to the first player?

Using money as an analogy, you don't need to ask the Queen of England's permission if you can give a five pound note to your friend in return for something.

All that needed is that you both trust that it is indeed a real five pound note and it has the required monetary value.

Yeah, that's what a server-side setup looks like.

Everyone you see is basically an 'echo' and a little bit behind where they 'actually' are. So you lead the target not to account for projectile travel time, but for packet travel time and server processing speed.

Essentially, you send info to the server "I'm shooting x/y/z" and the server verifies it, and then passes the data, or not, to the other player. The trouble with this is that players with different ping times require different amounts of lead and gameplay can get inconsistent - server side models usually try to use some prediction algorithms to keep player positions updated even when that info isn't available. Under a clientside model what you see is what you get.

I prefer clientside, but it's way too easy to cheat, which is why most competitive shooters use a serverside model.

>make a turn based cmbat system instead
honestly this is pretty good, you can make a botched realtime/turn based hybrid like in most old D&D games, add an command queque and achieve a super comfy mmo experience that requires you to pay attention for a split second once every 5 seconds.

I know what you're talking about, I understand the principles involved; however sending data for game logic is NOT the same as having game files themselves transferred in the time they need to send them. If you suggested to use peer to peer for client downloading, I would say yes, that's a great option; and in fact is already adopted by some developers.

However it's not. It's not the same thing. All the files you need to see that rare item are already on your computer. BitTorrent works well the way it does is because sudden change in host, lost packets, taking the time to hash sections of a file, etc. are inconsequential to file transfer. You are NOT transferring files in game logic. At least not 99% of the time. Peer to peer has only caused problems for game networking, and history has showed this, 100% of the time. Hands down. It is not something you can dispute with speculation. It works for client downloading, and saving the company money. That's it.

>I prefer clientside, but it's way too easy to cheat, which is why most competitive shooters use a serverside model.
If I recall correctly, Overwatch is clientside, with a "favor the shooter" model. The client interpolates and predicts but the server has the right to invalidate the client information. Roadhog's hook, for example, performs server-side checks before allowing an enemy to be hooked.

peer to peer is bad for any serious game because without server verification you can cheat

>How would you solve MMO combat latency without client-side prediction?
Local servers
Battle royale games are technically MMOs

Why don't we all just go back to playing on LAN?

>it's a US West mistakes peruvians, puerto ricans, mexicans and chileans for BRs episode
Most online games get BR servers but the spanish speaking countries are completely or at least partially ignored. We have to deal with them just as much as you guys have.
Throughout my years playing games like ragnarok, WoW, diablo, etc... 3/4 times idiot BRs were just underage kids. I honestly couldn't care less about a kid acting like an idiot. It's a whole different story when it's some 20+ year old retard though I'll give you that.

Attached: 1469416748015.jpg (403x474, 22K)

>for a game from 2006 it's perfectly acceptable

You don't say

t. Peruvian
Viva poverty

Attached: battleroyale-rp.png (1276x182, 31K)