Suppose the real question becomes is the developmental costs worth the effort for an older game that is only having this problem in a single region and isn’t stopping the end game players from spending.
I’d be less surprised if they just said nevermind and shut NA LA down over trying to out develop the bots in a F2P low barrier of entry game.
No, its because your point was irrelevant. The code wouldn’t be written to detect “a class” (like, lets code to detect Berzerkers) it only detects repeats of the same pattern. They could create 1 bot script for every class in the game, as long as more than 1 Instance of that Bot is running, those two instances (accounts) will perform things identically, and get banned.
You misunderstood what I meant by “log the character class”. It’s fine.
Maybe, but you keep changing your original idea. Which is a good thing because I can see you’re slowly being nudged towards the proper solution to the problem instead of whatever convoluted system you originally thought of.
“log the character class”
Okay, sure you can do that. Realistically, why would you care in a real world scenario? You shouldn’t care what class they are. It’s a waste of developer time, developer/monetary resources and server resources to design a system that functions that way. Same goes for everything else in your purported solutions thus far.
The goal of the bot/script detection (not talking about speedhacking now, talking about detecting bots/scripts) is to identify the same patterns being executed over and over identically, and class would be part of the data I capture, including skills used, pathing, items equipped or not, cards used, engraving books used, etc. You profile a pattern of actions and log them. You keep it narrow so you don’t affect game performance.
As long as you can log the right data (and enough data), you can tell if two accounts execute the same things in the same way in the same game-order (not talking about packets now, talking about game/quest objectives) using the same class, skills, pathing, etc. As long as you leave “time” out of it (i.e. ignore how long it takes to do things, only care about what is done), then you can detect any two running bot VMs who are running the same script. Bots are not efficient unless they scale up with 100s of VMs running the same script or even set of scripts. Having 1000 VMs each running a different script (i.e. 1000 different scripts) is impractical from the bot side of things.
Not quite. Doing this at scale would absolutely effect game performance when you’re talking about hundreds of thousands to millions of these calculations/checks happening for every existing player. And again, we don’t care about any of those things in a real world scenario.
EDIT: Maybe you’d care strictly from a data collection standpoint, but as far as detection systems go we don’t care.
As I said in the OP, the game server is already performing a validation of game actions. Adding a single “logging” action to a database for only some of those actions in early zones would not affect performance much at all.
Then, a completely different, asynchronous application (on a different server, with its own CPU and resources, so that it doesn’t affect the game server performance) would run the analysis and add the “Marks” against the offending accounts. If an account receives enough Marks, it is flagged for banning with a delay, which is, again, a separate application, on its own server (with its own CPU) to process the bans.
The only thing on the actual game server is that a few game actions determined by the devs (again, 15-20 things at most) which get logged.
Edit: but as Fission said earlier, given the game engine (Unreal Engine 3), SG might not have the ability to really make these kinds of changes - that’s something I have no knowledge of.
I think this will work. I also think on top of this if we were to add a data clustering on all the manual player reports and cross reference with real player inputs we can essentially always get an accurate enough classifier to distinguish between bots and real players. The only thing now is to frequently update the classifier and mix it with the vot detection profiles and mark scoring then this should eliminate most simple bots and focus on the real cheaters and other bots that are harder to catch.
Edit: it would seem like most replies are too focused on a very specific sets of measurements rather than the overall idea and objective. It’s important to realize that giving simple examples to illustrate ideas so that the layman can understand is not the same as actual implementation. Also an async pub/sub queue is pretty easy to make and is very easily scalable horizontally. AWS even has these solutions already (ie. SNS/SQS).
And how do you think the data it’s supposed to examine gets onto said server? You think that just happens magically? Server to server communication presents the same issue I keep stating. Once again proving my first comment; you’re not a dev. You don’t have even remotely any idea how to solve the problems, you’re just throwing suggestions out into the wind because your field and development are loosely connected to each other.
And once again, you’re not thinking about the grand scheme of things. How many servers do you think AGS spun up for this release? Guarantee it’s into the three digit range. So your proposed solution is to add double that for this data examining operation you are proposing. Hosting servers costs money, which eats into profits made. You really thing AGS/SG are going to take a loss of that magnitude of adding that many additional servers to the operation? You’re delusional if you believe that.
but thats the only solution … who the hell cares about the botters and exploiters at least they can start winning over new player … who the hell would right now tell someone he should check lost ark out oO.
At least they winn their own monetezation back !
OK, so you don’t understand enterprise architecture, which is fine.
Server Cluster A runs the game application (many servers, for load).
Server B houses the database for the game. (could be a cluster, but not necessary, depends on factors).
Server C houses the batch jobs which analyze the data to apply marks, and lets say, also houses the batch jobs which process bans.
Server Cluster A is making live database connections to B. Server B has a Connection Pool, which determines the total available database connections it can simultaneously support. This is scalable based on server resources.
When Server C makes a database connection to B, it simply uses one of the Connections in the pool. If there are sufficient connections, the performance of Server Cluster A (the actual game servers) will not be impacted whatsoever. It is only if Server C consumes a large amount of Connections from the Connection Pool of B, thus depleting them and leaving none for the game servers (A). Given that it is a single batch job, and (hopefully!!) you’ve indexed the data properly when you logged it it will make a single pass on the logging table, which is a separate table from the rest of the tables for the game. It should also be doing a READ, which means it won’t need to LOCK the table, so new logging can proceed unfettered while the batch job scans it.
So, AGS needs literally just 1 more server and one more DB connection used (as far as we’re talking about hardware/virtual servers/resources here.) And if not designed stupidly, will not affect game performance one iota.
You’re forgetting about the mass of random events being broadcast from game servers over things as mundane as opening up your mount inventory. The thing to remember is that Lost Ark is a game, not a SV startup microservice platform. Every little bit of performance matters, even on the backend.
I can tell you as a gamedev with just shy of 10 years in both backend and frontend and who has also worked on MMOs; we do use this kind of telemetry to catch bots (and LA likely does as well), but it isn’t free and we need to pick our battles to negotiate with performance requirements.
If you want to go all out on performance, then given we’re only logging a few activities in the Rethramis zone (we want to catch bots early) in the database, then we can set up replication of that one table to a separate server (data store/warehouse) and then run the analysis completely separated from the live servers. Replication is very fast, and then you can scale up those other servers if need be.
A security engineer that uses industry wide accepted terms like “hacking” instead of “manipulating”.
Do you even have an Idea how pathetic your post is, first you address it to AGS/SMG, where you basically assume that they are clueless and you have all the answers in the world. But then you use terms that are explaining things for a layman.
I bet you you are some junior first level guy, that watched some tutorials on basic principles.
Else you would know that IS security professional alone is a useless term if you don’t specify the industry you are working in.