5 ms·
Not sure how this is designed in this game, but if you want to make the game only show a certain portion of the map to clients at a given time, you need to make
by voidpointer 10y ago
Not sure how this is designed in this game, but if you want to make the game only show a certain portion of the map to clients at a given time, you need to make sure that things that the player should not see are never sent to the client. Otherwise, you are always opening the system up for this sort of "cheating". With the game being open-source, it is easier to do but also with closed-source games, this is what things like "wallhacks" etc are based off: making information that is available to the client visible to the user.
- chongli 10y agoI don't know how you're supposed to do that and maintain acceptable performance for scrolling the screen around the battlefield. It's one thing for a game like DotA 2 to only send position updates for units that aren't obscured by fog of war, it's quite another to constantly keep track of the scrolling screen of the player and only send them the objects in that rectangle.
- cerved 10y agoSC2 does it not problem
- chongli 10y agoNot true. Map hacks have existed for SC2 since beta. They would not be possible if this technology was used.
- erdevs 10y agoWhat do the map hacks accomplish? Can you see full unit information across the map? I doubt this is the case, except for the game host. For clients, I'd be surprised/disappointed if this were true as it is not costly to filter the information from clients if FoW visibility has already been calculated.
- detaro 10y ago> Can you see full unit information across the map? Yes. The engine works by syncing the entire game state between all players (and observers, which in tournaments can become an annoying issue) and all clients have the same information.
- erdevs 10y agoInteresting. I'm surprised they took this approach.
- Paradigma11 10y agoIt's true. http://wiki.teamliquid.net/starcraft2/Hacking http://wiki.teamliquid.net/starcraft2/Hacking
- erdevs 10y agoWow, that is crazy! Thanks for the info.
- Nuzzerino 10y agoMy guess is that the main technical problem preventing this in SC2 is related to the game's replay-saving system. If you have only partial data, your client can't include the data from the opponent's perspective, which makes the replays suck. Theoretically you could generate the replay server-side but it would be resource-intensive without a costly technical overhaul.
- erdevs 10y agoYeah, I'm surprised they didn't design for this. Typically replays (in any game) are a log of initial state and then player input commands, rather than complicated state streams. Input commands are simply replayed in the simulation. It seems possible to keep the master log of input commands and then simply replay the simulation on a client during replay. With this design you could filter inappropriate information from each client during gameplay but have full replay information. I'm sure there are good reasons why the design in SC2 is as it is, but this was surprising! Thanks for the info.
- deleted 10y ago[deleted]
- lawless123 10y agowarzone has a fog of war, i think people are confusing zooming out with that? If you zoom out you will still only be able to see map area you revealed and in that map area you would only see enemy units if your units could observer an area.
- chongli 10y agoNo. I'm talking about the unit position data which is sent from server to client. If the designers of the game intend for you to have a restricted view of the battlefield that you must scroll around actively and a mini map showing unit positions within the visible range of your army, they are consciously making a choice to restrict the way in which your game client views the data sent to it. By modifying the client to allow you to zoom out, you're bypassing this restriction and gaining a wider view of the same data.
- lawless123 10y agoOK i see what you mean, i wouldn't have considered zooming out like that cheating.
- overgard 10y agoThis is unlikely to be based on a camera rectangle. Fog of war, sure, but in most rts games the camera can jump immediately from a minimap click. Players would complain about popping and its doubtful a developer would value cheat prevention over standard experience.
- qwertyuiop924 10y agoWhile modems may be dead and buried, Carmack's response regarding wallhacks to reading ESR's essay "The Case of the Quake Cheats" in '99 still applies: >With a sub-100 msec ping and extremely steady latency, it would be possible to force a synchronous update with no extra information at all, but in the world of 200-400 msec latency [and] low bandwidth modems, it just plain wouldn't work.
- rl3 10y agoMost RTS games are simulations, so the client has to have the enemy unit positions in order to conduct its local simulation. In this case the best defense against map hacks (assuming it's closed source) is frequently updating the game, and messing around with the underlying unit data structures or systems each time there's an update. A map hack isn't very effective if it breaks every week or two on a regular basis, requiring more reverse engineering effort each time. One notable exception to the local simulation model is Planetary Annihilation, which uses a traditional client/sever model as far as I'm aware.
- mohaine 10y agoChanging the games doesn't really help unless you also change the network protocol as a lot of hacks just inspect the network data steams. This makes it harder to check for at runtime and it is harder to change the network protocols since changes break everybody on the old version. I think quake cheats got to the point a cheat server would MITM the game and shoot automatically and or auto-aim shots for the user.