Nhiilo

How does Game Events works?

Recommended Posts

I don't really know how it works internally since I have no idea about .NET programming capabilities, but conceptionally it works with reading log-files and kind of sort of image-recognition (not really but you can imagine it as such as far as i understand it from the game events provider code).

There are textures used from the game, that indicates an event like a kill, gaining gold etc. and those textures are loaded from the game and can be recognized by the overwolf-client which then "translates" the events into javascript for the app-developers to use.

More static information like game-start, spectate and game-mode can also be read from the game-logs the moment they are written by the game.

Since it's all made up from data you "just" have to know what data-changes you are looking for to make use of it :)

 

Share this post


Link to post
Share on other sites
18 minutes ago, Colorfulstan said:

I don't really know how it works internally since I have no idea about .NET programming capabilities, but conceptionally it works with reading log-files and kind of sort of image-recognition (not really but you can imagine it as such as far as i understand it from the game events provider code).

There are textures used from the game, that indicates an event like a kill, gaining gold etc. and those textures are loaded from the game and can be recognized by the overwolf-client which then "translates" the events into javascript for the app-developers to use.

More static information like game-start, spectate and game-mode can also be read from the game-logs the moment they are written by the game.

Since it's all made up from data you "just" have to know what data-changes you are looking for to make use of it :)

 

 

I thought they were using some kind of injection and listening game events. Log files seem reasonable but I don't think it's using image recognition. Because it would use so much power (RAM, VRAM or GPU. Not sure which one) and it would be so slow. I've tried image recognition with C# and it was really slow. Even AutoIt had a delay on image recognition in an 800-pixel test code. Think about +1366x768...

Share this post


Link to post
Share on other sites
13 minutes ago, Nhiilo said:

I thought they were using some kind of injection and listening game events. Log files seem reasonable but I don't think it's using image recognition. Because it would use so much power (RAM, VRAM or GPU. Not sure which one) and it would be so slow. I've tried image recognition with C# and it was really slow. Even AutoIt had a delay on image recognition in an 800-pixel test code. Think about +1366x768...

Yes basically. Listening for texture-hashes as it seems from the code, but i can't tell how exactly. Not pixel-based image-analyses of course.

But there are no dedicated events from most games. Has to be some sort of injection and recognizing certain events like in league of legends through the texture-hashes.

You can take a look in the code for the game events provider to get an idea.

Edited by Colorfulstan

Share this post


Link to post
Share on other sites

In some other thread they mentioned they use some form of shared memory system to get events to overwolf. I imagine they won't go into details since it's kind of a business secret :)

Also got confirmed that in some apps where there are no official event support they use OCR. It's actually not as slow as you imagine. I'm actually working on a feature that calssifies a part of the screen (about 200x200 px area) and I could run it at 60fps no problem in  javascript (!) on my ~2 year old laptop. And you have the possibility to run these heavier tasks in a compiled DLL whihc you may write in c/c++, so it's very efficient.  

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now