Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The buttons don't show up on the shop repair screen, so I can't parse. #71

Closed
focabr opened this issue Feb 23, 2023 · 13 comments
Closed

Comments

@focabr
Copy link
Contributor

focabr commented Feb 23, 2023

As a help to other BOT developers, I was using eve-online-mining-bot as an example of how to use repairshop, but I am not able to get the buttons.

Even adjusting the ParseUserInterface using the messagebox as an example, the "Pick New Item", "Repair All" button does not appear inside the "session--event--eve*reading.json", I made several adjustments and could not solve it.

The BOT is at https://github.com/focabr/bots/tree/main/implement/applications/eve-online/eve-online-mining-bot

I am uploading the session-recording-2023-02-23T07-24-46.zip .

image

@Viir
Copy link
Owner

Viir commented Feb 23, 2023

Hello Marcos,
Thank you for sharing your experience 👍

These are new UI elements.
I haven't seen a training data set containing these buttons. So these two button labels are simply new. That means we do the standard process to enable reading them: You share the session recording, and then we take crops from the two button labels to add them to the training data.
That process results in a new parsing library, and I will add that to the example repository. You can then copy the parsing function from there.

I am uploading the session-recording-2023-02-23T07-24-46.zip .

Thank you very much for the recording, I will look into it 👍

@Viir
Copy link
Owner

Viir commented Feb 23, 2023

I started to look into the game client session-recording-2023-02-23T07-24-46. I agree. It seems like the individual buttons are not in the memory reading. So bots will have to look at the screenshot to read the buttons.
For the buttons in message boxes, they already do that. Since bots already read from screenshots, no change in interfaces is necessary. The main novelty here is the new labels on the buttons.

Viir added a commit that referenced this issue Feb 23, 2023
Adapt the reading of the repair shop window to the observations shared by Marcos at #71

Below is an excerpt from the linked discussion:
-----
I started to look into the game client session-recording-2023-02-23T07-24-46. I agree. It seems like the individual buttons are not in the memory reading. So bots will have to look at the screenshot to read the buttons.
For the buttons in message boxes, they already do that. Since bots already read from screenshots, no change in interfaces is necessary. The main novelty here is the new labels on the buttons.
Viir added a commit to Viir/bots-test-github that referenced this issue Feb 23, 2023
Adapt examples for EVE Online to the observation shared by Marcos Macedo at Viir/bots#71
Expand the reading of button labels to cover the 'Repair All' text.
Also, add a framework to test the screenshot reading function with concrete example images: Automatically generate multiple representations of each source screenshot to account for the noise introduced by binning.
@Viir
Copy link
Owner

Viir commented Feb 23, 2023

@focabr as far as I understand, you were specifically looking for the 'Repair All' button.
I now added the reading of that button at 1312de5

As mentioned earlier, the reading is done by looking at the screenshot. The framework merges the buttons read from the screenshot into the value representing the parsed user interface.

@focabr
Copy link
Contributor Author

focabr commented Feb 24, 2023

Hi,

During the tests, 6 out of 10 were successful, and of these 4 some he selected the "Repair Item" button instead of the "Repair All", as these buttons are not appearing in the memory reading and it was necessary to use the screnshot method, I imagine the problem is in the Photon UI of EVE Online.

Thinking about it in the RepairShop window I checked "Disable Light Background" and after that it was 10 out of 10 the tests were successful.

I think we can recommend where the BOT has to use the screenshot method and click on the "Disable Light Background", what do you think?

I sent a recording session-recording-2023-02-24T18-11-08.zip

@focabr
Copy link
Contributor Author

focabr commented Feb 24, 2023

The information that he obtains by the screenshot method is there a way to export the JSON file?

For Eve Online memory reading I can export using this button, would there be something similar for the information that is extracted by the screenshot.

image

@Viir
Copy link
Owner

Viir commented Feb 24, 2023

Yes, you can export that using the button labeled 'Export crop as PNG':

image

@Viir
Copy link
Owner

Viir commented Feb 24, 2023

During the tests, 6 out of 10 were successful, and of these 4 some he selected the "Repair Item" button instead of the "Repair All", as these buttons are not appearing in the memory reading and it was necessary to use the screnshot method, I imagine the problem is in the Photon UI of EVE Online.

Thinking about it in the RepairShop window I checked "Disable Light Background" and after that it was 10 out of 10 the tests were successful.

Thank you for the test 👍
It sounds like that setting you discovered in the game client improved the contrast on the button labels.
We can reduce the threshold for the expected contrast in secondIsSignificantlyBrighter to support scenarios with lower contrast. Maybe that is enough to make it work independent of "Disable Light Background".
I will test with 'session-recording-2023-02-24T18-11-08'

I think we can recommend where the BOT has to use the screenshot method and click on the "Disable Light Background", what do you think?

I have not yet seen an implementation of that.
I think bot developers can choose which way is right for their audience.

@Viir
Copy link
Owner

Viir commented Feb 24, 2023

I sent a recording session-recording-2023-02-24T18-11-08.zip

I found this in event 218:

image

Is that a normal level of noise?
Supporting such a noise level would require much more training effort than the variant at the top of this thread.

For comparison, here is a binned crop from the example from above:

image

Let's look for that "Disable Light Background" option.

@focabr
Copy link
Contributor Author

focabr commented Feb 24, 2023

Yes, you can export that using the button labeled 'Export crop as PNG':

image

Thanks, is there a way to export a JSON with the content of what was extracted from this image?

@focabr
Copy link
Contributor Author

focabr commented Feb 24, 2023

I sent a recording session-recording-2023-02-24T18-11-08.zip

I found this in event 218:

image

Is that a normal level of noise? Supporting such a noise level would require much more training effort than the variant at the top of this thread.

For comparison, here is a binned crop from the example from above:

image

Let's look for that "Disable Light Background" option.

Yes, the "Window Appearance" -> "Transparency" parameters are in the default values of the game client.

We can adjust to other values if necessary.

image

@Viir
Copy link
Owner

Viir commented Feb 25, 2023

Thanks, is there a way to export a JSON with the content of what was extracted from this image?

At the moment, there is no such way. But it is an interesting idea to toy around with.
We could solve this via an interactive instance: Adding a declaration representing the selected event to the interactive environment to support easy access to these images. 🤔

@Viir
Copy link
Owner

Viir commented Feb 25, 2023

Yes, the "Window Appearance" -> "Transparency" parameters are in the default values of the game client.

We can adjust to other values if necessary.

Thank you very much for the guidance 👍 This will help people to find better setups much easier!

In alignment with our contributor reward program, I will add one million credits to your BotLab account at https://reactor.botlab.org/billing
💸
With these credits, you can run five hundred hours of online sessions.

Viir added a commit to Arcitectus/Sanderling that referenced this issue Feb 25, 2023
See Viir/bots@3c96262

Adapt the reading of the repair shop window to the observations shared by Marcos at Viir/bots#71

Below is an excerpt from the linked discussion:
-----
I started to look into the game client session-recording-2023-02-23T07-24-46. I agree. It seems like the individual buttons are not in the memory reading. So bots will have to look at the screenshot to read the buttons.
For the buttons in message boxes, they already do that. Since bots already read from screenshots, no change in interfaces is necessary. The main novelty here is the new labels on the buttons.
@focabr
Copy link
Contributor Author

focabr commented Feb 27, 2023

To minimize possible problems, in the available example of using the repairshopwindow it selects the first item in the repair shop window.

Everything working as it should. Thanks again for your effort and commitment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants