Motivation

Overwatch queueing is very annoying to me: sometimes it is extremely slow, and I want to leave my desk to do some workout or drown my head into a book. However I won't be able to know when the queue is done if i am not continuously checking the screen. Someone like large streamers may choose to browser youtubes while waiting, or they can just leave the speaker playing sound that when the queue is done he can hear it, which is also a huge mind burden. As an FPS game you have to rely on the headphone to hear the location of enemy, so it would be tiring to plug in plug out your headphone while queue. I want to make a device that can notify me when the queue is done, so I can leave my desk and do other things. It could also serves as a good practice for python autmation.

Investigation

Most of the exsisiting solutions are for overwatch 1, and use a graphic solution: read the screen, parse the text in the photo, and then send a notification. I tried to dig about whether there is a way to get the queue status from the game: like do packet sniffing or get an API.

Packet sniffing seems not achievable, as the game must be using some kind of asymmetric encryption. Also I tried to get an api from the official API(https://develop.battle.net/) but it seems every time you tried to log in it automatically log you out. Turns out metamask addon for chrome somehow result in unkown bugs here. I can still log in with incongnito mode. The api is easy to get, but its just about the game data like player info. It would be nice to have a small web application to track your sr rank or win/lose rate, but there is not even an api for overwatch2 yet.

Looks like the graphic solution is the only way to go.

Solutions

1. Monitor the Overwatch Window

Behavior Analysis

When queueing : the window performs like this:

  1. pop up a big blue top tab with a circle animation on the left side
  2. a big Finding Game and other static picture if you dont need the page. But sometimes I may want to checksomething else, like shop page. If I detect that static page it will result in many wrong alert
  3. When the game is found, the blue banner would pop up and become shorter

Anyway, If your queue is done, you will have an orange [ready] Block. We can detect if there is an orange one with ready

Or we can monitor the top right small blue. We can see if the pixel is changed, or we can try to read the text.

https://www.youtube.com/watch?v=5OEbsR5N59w

Build and Code