I just don't underatand how a MMORPG can work. It seems impossible. And it even worked on dial-up, wtf?
>>106767906It's a very simple system.You render most of it client side.You only send packets to users when other user on the server's state changes.
>>106767906I'm one of the skeletons on the floor on the right
>>106767944And how do you make sure that no one cheats?
>>106767971Lots of checking for illegal states and sequences.
>>106767971>And how do you make sure that no one cheats?You put systems in place where it checks on the server where something is possible to do for a user with a normal client. if it's not the case you can think about how to handle it, typically the safest way is to assume lag or other reasons and rubber band you back but it this keeps happening and in different ways you gotta kick or ban them. You can also make it warn an admin to check.
>>106768033On the server-side that is, you cannot trust clients.
>>106767971Server authoritative model.The client only sends your inputs (click attack on thing), the server runs the actual game simulation, then tells the client what happened. Invalid or illegal actions can be ignored or flagged for cheating. The client also may run a simulation locally to hide lag, but that's just visual.
>>106767971you don't, classic wow is infested with flyhacking bots
>>106768058>you don't, classic wow is infested with flyhacking botsOnce again bad programmers being bad at their job. I don' know anything about wow but flying should be an obvious illegal move.
>>106767971FFXIV doesn't have client side anti cheat because they do lots of server side checks + have a army of GMs who respond to every ticket in less than 15 minutes compared to other MMOs that laid off their entire customer support.
>>106768079it wasn't infested with flying botsjust normal chinese bots, or actual humans that behave like machines farming resources.idk about this rerelease "classic"
>>106768079>I don' know anything about wow but flying should be an obvious illegal movemovement is client-side in wow>>106768098they float beneath the terrain waiting for node respawnsthat's why you don't see them
>>106767906All the assets are on client side, so it requires very little bandwidth.
>>106767906The data being transferred between the client and the server is just a JSON formatted object with the player's current position and state and so you're probably only talking kbs of data transfer with each ping. The hard part is synchronizing that especially in a pvp setting.
>>106767906EVERYTHING is sever side, be it movement, or dmg calculation or buff procs.
>>106768079>Finally gave game dev a try >Use gpt to walk through how unity works>Realize it's all just colliders and state change>mfw I realize why game dev is notoriously low wageSeriously front end web dev is more complex than most game dev. Only fighting games are complex for coordinating those collision detections over a network where fractions of a second matter.
some MMOs trust the client more than the server. Segas MMO PSO2 is one example. they use kernel anticheat to prevent people from cheating the system.
>>106767906WoW was the first major MMO to require broadband specifically. The game was virtually unplayable on AOL Dialup. You could get away with playing FFXI on Dialup though.
>>106768166>fighting gamesmost didn't even bother with the precision they just buffered it behind delay based netcodemodern devs slap GGPO in there like it's magic and get upset if you tell them it's not implemented properlyso yeah maybe it's more difficult but fighting game devs are exactly the cavemen you thought the others were
>>106768209Shame really. I've been working Enterprise software for like 12 years now and I could easily take what I've learned to fulfill teenage me's fantasy of becoming a game dev. And I'd be good at it too. But I'd take an insane paycut and the problems would someone manage to be less interesting than connecting enterprise apis to a UX for goySaaS slop.
MMO networking is an insanely complicated topic. "just let the server do everything" is a braindead take once you begin to understand the processing cost needed to do any of these server side validations
>>106768237thats video game networking in general. think how complex fortnite or roblox networking is to support the custom games and billions of kids.
>>106768237Server costs are an not going to be more than pennies per user. The crud operations they're performing to validate the actions are some basic arithmetic with an accepted range. >Player was at x,y,z last ping>Max movement per ping is +-1 per axis>Player is at x+10, y, z>Ban this fuck headOr>Player has a dictionary of attacks with associated cooldowns as well as the last time they used the attach>Player uses the attack >Last time is greater than cooldown>Send back true and run collision check and damage calculation>Otherwise send back falseAll operations that would take more time on the network hop and saving to the db than to actually calculate. In fact the bigger issue is just coordinating a server tick that batches all of these operations so you don't fall out of sync. But again that's not going to make it "computationally expensive".
>>106768308Even zone transitions are brutally difficult to get right in a MMO
>>106767971classic mmos were full of cheats
>>106767971you didnt. on pso hackers could literally just delete your items
>>106768308>Max movement per ping is +-1 per axisyou're either gonna ban innocent players with laggy connections or you're gonna allow cheaters to exploit by omitting ping packetsthis isn't as simple as you think
>>106768308even using just your example (which is just one of the many MMO )>Player was at x,y,z last ping>Max movement per ping is +-1 per axis>Player is at x+10, y, z>Ban this fuck headWhat if some special circumstance in the game moves you faster or further than normal? What if someone decides to modify their position illegally when the server is expecting a anomaly like this if you try to account for it? also what if someone decides to phase through a wall. are you going to raycast every server tick now to make sure people aren't doing that? and this is just movement
>>106768445Add them to a warn list and DC the player if they do it too much. Shrimple as.
>>106768540a DC is different from a banyou would need to hire GMs to manually determine if a player is cheatingand we all know game companies don't want to do that anymore
>>106768478Anomalies like rubber banding should only be done by the server and so a request for illegal movement by the client is flagged while the server is not.
>>106767971pretty sure its close to impossible to completely prevent cheating, I read somewhere that within days of launching a new mmo Chinese hackers would swarm the game exploiting every part of it and the developers would be forced to work late putting in measures. Another thing about Chinese hackers I noticed is they are in every fucking mmo even if the game is 10/15+ years old. It made me feel like playing mmos was pointless since the best players are most likely either cheating through exploits or buying gold from the ones that hack the game. It's probably the reason why most MMO's nowadays have a pay 2 win model to make it pointless for gold sellers.
>>106768268this is easier than an mmo since there are not as many players connected to the same instance. you can scale infinitely for a fixed number of players per game. Just keep adding more compute OP the answer like most things in distributed systems is a log. record every action as a log of events. send this log of events to every connected client. log too big for single server? partition the log into n partitions. each partition is handled by a different server. one server crashed? doesn't matter since you replicated the log to other servers... It's not that simple (you have to solve consensus, split brain, conflicts etc) but basically boils down to that
>>106768166It's low paid because it's popular. If you glue everything together with leftpad then of-course it's easy.
>>106768652those games are crossplay. thats a whole can of networking worms that many mmos dont deal with besides ffxiv.
>>106768710Cope. There's more people centering divs than doing game dev.
>>106768791Those are opposite problems. Game dev is flooded with competent people sacrificing income for passion. Web dev is flooded with incompetent people with no passion doing it for the income.
>>106767906>>106767971Its tough to get it all done properly- simulate things server side, simple checks on events are not good enough- event queue with backpressure handling- defined opcodes and payload schemas, which you check- some anomaly detection on both client and server- client slide behavior checks and enforcement, also a giveaway if a client isn't obeying these- map chunking with one-to-many subscribers- Optionally stuff like r-tree, spatial hash, remote workers for server since you need to scale
>>106767906Its easy. Just send a tcp packet when you click to move and when you use a skill, or buy/sell things, etc. You dont need to sync positions to other users that cant see the player
>>106769033>Tcp
>>106768478Its easier in most mmorpgs. When the user clicks to move just send that to the server, not the movement itself.
>>106769045Yes, of course you can use reliable udp if you want. But most mmorpgs use tcp for such things. If you need faster sync (such as movement with wasd) then you can use udp.
>>106767906mmos were made by white people. Thats why they worked.
>>106767971there's many techniques but everything is resolved server side. Bad programming had some logic in client, which is how people cheated a lot
>>106768638firewalling china IPs or downright any chinese person should be done.
>>106767906I Play wow too!It's hard to explain but mmos usually don't transfer as much data as you'd think. It's not as simple as people claim, but it's not a rocket science either.
>>106768853NTA, but this is a very true statement
>>106769103>implying they aren't already all using VPNs to bypass their own Great Firewall
>>106769169I almost want to see a full ID required mandated login to stop chinese players. Then again, they can just migrate to the US or EU and bypass it still. There has to be a way...
>>106768199>You could get away with playing FFXI on Dialup though.https://www.youtube.com/watch?v=n6mxRUKehtE
>>106767906It's not like dial-up was 'slow' back then. They just couldn't handle sending huge data packets. Small packets behave just like the ones we use today: we send them to each other by sending electricity through a cable, which is pretty much at the speed of light. Well nowadays you got fibre optics for a small boost, but thats it.The game was purchased as a CD, so the only real data-intense thing that would have to be sent to the server is the players' coordinates, along which way you're moving. You can fit these into the smallest payloads. The only thing that really mattered was ping. Lagging players, especially those fucking rogues, were phasing in and out of existence around you while also doing damage. It was frustrating.
>>106767971you pretend that you do but you dont and most of the playerbase just pretends its working ok
how does their bot detection system work?
>>106769832the og botscene was pretty based. imagine being such an autist to sit watching packets in wireguard so you can gain an advantage in a shitty java game
>>106770256It was color detection bots in Pascal (simba), and after Java 1.4 with reflection then people would get seed for the prng.
>>106769090>Bad programming had some logic in client,It's often trade offs instead, letting the client handle some stuff to reduce the lag in games where you have inconsistent internet connections, high latency etc, and of course to cut costs because 100% of the workload being server side ain't free.Things need a round trip so even 20ms will be noticeable
>>106768057Wouldn't that require you to actually process a lot of things server side, ramping up the costs a ton?
I used to play a obscure western port of some korean MMO where the admin would personally teleport you to them inside some secret off-map location if you flamed other users. After hacking someone's account (technically the guy gave it to me and i just changed passwords + helped myself to his gear) they perm'd me, even years later after i signed up from a relative's adress they banned that account in like a week or so flat, obviously had my entire ISP/town on some kind of blacklistThis was one of the first MMO's i took up at around 2008, on my very first own machine. Good times. Might get back into GW2 again at some point
>>106769832Back when i played it was very easy to spot them. Hire a few somewhat experienced players and they could hop around across every world and scan through the hot spots and get rid of the bots in one click. With due process of course. Curious why they never did this.
>>106771631Imagine you make 40k a year at your day job and bot farmers are tripling that. (the secret is that you are the bot farmer in this scenario)
>>106767971By making things require multiple players and snitching lots and lots of snitching
>>106767971Chris Wilson of Path of Exile recently did a decent video on exactly that.https://www.youtube.com/watch?v=x4RNkj_0Mso
is there even a single mmo worth playing nowadays?
>>106773555wow is the best mmo and its trash
>>106767971Probably the best solution right now unironically is to just write it in rust
>>106773555Ultima Online
>>106773609That has exactly 0 to do with the topic friend
>>106773555Final Fantasy XI; if you can hack retail's changes.....I believe WoW with bots is supposed to be quite alright for niller and tbc. XI's private server development is permastalled so you have up to bits of CoP, broken, nothing huge like the WoW bot projects.Subbing to? Buying, playing live on retail? ...probably not. I blame the death of the monoculture, social media and the hebephiles.
>>106773555Toontown
>>106769106Poor eevee is getting groomed41% of sylveons end up in lavender town's pokemon tower
>>106767971Most people don't know how to chest or use something thats already out there like an already built cheat program.
>>106774488Ok pooner.Ywnb a male sylveon.>>106768199Tbh by 2005 most of the world moved on broadband already.
>>106767971Probably use tcp for a chunk of the network traffic since its slow paced game and that makes it easier to check if someone is spoofing values because you can just compare it to the last packet + expected change
>>106773555city of heroes
>>106767906The very first MMO games were simpler, very slow paced and had very limited combat, built for high latency. From the network architecture point of view they look more like a transaction system than a game.
>>106771432yes the server has to process shit and costs money
>>106767906https://github.com/azerothcore/azerothcore-wotlk
>>106773555WoW on private servers. Bronzebeard is launching today:https://youtu.be/Q6Yg37OpR34?si=7pSAA3KaseOOCNKX
>>106767944>You only send packets to users when other user on the server's state changes.thats a lot of packets constantly streaming into your machine about thousands of users on screen moving, jumping, chatting, using spells, everything is a change in animation that your GPU needs to correctly show to you on ur monitor...dude how... this is 20+ year old tech, how did it work back then so smoothly wtf
>>106777091computers are fast
>>106771895nice channel
>>106776680wow i cant wait to play the same exact 25 year old game for the 9th time. nothing like getting that epic 60 dINGGG for teh winz for the 9th time in a row bros. hundreds of hours well invested into the same exact content and the same exact mentally ill retards. epic for the winnnnn
>>106767906too dumb to jewgle shit?
>>106777091>thats a lot of packets constantly streaming into your machine about thousands of users on screen moving, jumping, chatting, using spellsit's not as much as you think it is
>>106767906>I just don't underatand how a MMORPG can work. It seems impossible. And it even worked on dial-upevery server tick an xyz coordinate is sent for all users and distributed to all clients
>>10677755320k players and millions of game entities?
>>106771432That's why you had to pay monthly to play
>>106771432I imagine it's not that bad because they're not really doing anything physics related. For something like WoW, it's just a lot of simple stuff like "move in some direction" and "use X ability -> calculate damage done/buff received/etc," basic high school math, very light stuff for a computer, the most computationally intense part is probably just checking a point for collision with the world/floor mesh and walls and stuff. They don't have to do any rendering either. I would imagine a contemporary singleplayer AAA 3D game with physics was probably doing more work locally every second than a WoW server was doing for 1000 players. That means they still need a lot of processing power to serve hundreds of thousands of concurrent players, but the figures wouldn't be prohibitive in any way.
>>106767971block any connections outside the US, Canada, or UK.
>>106773799Keeping as much server validation code as possible outside of unsafe is going to make it extremely difficult for a hacker to hack the mmo, you need to really mess up
>>106777676there's not that many, you only get users in your vicinity, and you probably don't even get 10 actions per second per userwith 50kbps you can handle 100 users moving around and casting spells and shit
>>106777676You never play with that many players at the same time, they will just create another instance of the area.
>>106777955Prevent memory issues has nothing to do with preventing logical errors. Most hacks are the latter, not gaining access to the server itself. Why are rustards so stupid?
>>106777955Once again you demonstrate no knowledge on this topic