Have you seen problems when running multiple bots at the same time?
If you saw bots messing with each other’s sending input to a game client, you will want to use this new feature.
This month, I added built-in input focus scheduling functionality to the botengine for Windows software. Input focus scheduling is a technique to resolve the contention for device input focus between multiple bots. This problem occurs when we run multiple bots requiring input focus on the operating system level in parallel. To make sure this feature is enabled for your bot instances, see the guide at https://to.botengine.org/guide/input-focus-scheduling
@Mohano has published some functions to work with drones in EVE Online. These functions let you choose subsets of your drones to return to the bay or to launch and engage:
@Zalain and @Mohano explored how to use cloaking devices in EVE Online. One outcome was discovering new, more robust functions to check if the module is already active.
I realized that the name ‘BotEngine’ doesn’t describe well what we do here. So I’m changing it.
I started with BotEngine about six years ago. Since then, I have learned a few things. Some of these learnings made me understand that there are better names for a platform like ours.
‘BotLab’ seems a more appropriate name.
I expect this name to save new arrivals time because it better summarizes what we do: Learn about and develop bots.
How does the renaming affect you?
As part of the renaming of BotEngine to BotLab, the website address will change to botlab.org.
However, you don’t need to update programs or bookmarks right away, as the old links will continue to work for the time being.
Introducing Elm Editor - a web-based IDE for Elm programs
We made a big step in improving development tools for bots and other apps with the introduction of Elm Editor.
In the past, we asked developers to set up tools on their machines for working on code. These tools help explore libraries, view documentation, and get feedback on our creations. For example, one crucial feature of a development environment is pointing out problems in the program code.
While these tools are very helpful, setting them up was complicated, which was a great barrier to getting started.
To solve this problem, I started developing a new web-based integrated development environment. This work began circa one year ago. Now Elm Editor has reached a level of sophistication that makes it the better choice for beginners.
Instead of installing a specific program on your system, you can use Elm Editor like any other web page in web-browsers like Chrome, Firefox, and Edge.
I updated the guides on bot development to skip the work for setting up tools and bringing readers right into the action.
The guides currently point to the instance at https://elm-editor.com
In the future, we might have a customized version that adds features specific to bot development and botlab, like configuring the bot-settings or starting a bot session directly from the editor.
First Graphical User Interface of the BotLab Client
The November releases of the BotLab client introduced the first graphical user interface.
While the functionality for automation remained the same, this new interface improved usability. Users frequently struggled with the command-line interface. The graphical interface removes friction in many use cases with more straightforward navigation and specialized visual elements.
Some of the highlights in Novembers’ version include:
A dedicated dialog to help report a problem with a bot or share a session.
Visual separation of the status text generated by the bot and other status information.
Hyperlinks to help reach catalog entries and sessions.
Dedicated controls for Devtools to import artifacts to inspect with an open file dialog.
Dedicated dialog for installing the client.
Below is a screenshot of the view running a bot in a live session:
And here is a screenshot of the new interface to import session recordings in Devtools:
I have already updated the most popular guides to match the new UI, and the work on documentation continues to update everything for consistency.
In January, EVE Online developer @CLEMARC tirelessly tested the framework and engine and shared and analyzed session recordings to improve bot performance.
This work improved both botlab client and the frameworks for EVE Online. The botlab client evolved over several iterations in January, finally resulting in version 2022-01-25: Improve response times for agent tasks from bot in play session · Viir/bots@6577a13 · GitHub
The performance improvements in the client also removed blockers that could delay the execution of tasks started by a bot.
On the framework side, we improved readability and introduced unique task IDs so that bot developers can easily track tasks in inspection tools.
@Abaddon introduced support for Korean localizations of EVE Online. This change enables bots to understand the game state better when working with a game client in the Korean version.
Software like bots and local monitors often use textual labels in the game client to understand what is going on in the game world. These labels can vary depending on the language settings in the game client.
Abbadon shared multiple sessions with training data for Korean, enabling the use of apps with Korean EVE Online game clients.
In September and October, the user interface of the BotLab client evolved fast. Most importantly, the last few months saw the introduction of a new graphical user interface (GUI). The new GUI is a complete rewrite and replacement of the previous GUI. Based on a new technical foundation, it enables more efficient development and, as a result, the addition of functionality that reduces the complexity for gamers and bot developers.
Transitioning from the main menu into the session review is already much easier in the new version: The DevTools views are now inside the main window, so switching to a separate window is no longer necessary.
And for bots working on websites, there was another addition simplifying the usage of these bots: As of version ‘2022_10_23’, the interface for bots supports opening a web browser window directly inside the BotLab window. This new way of hosting web browser instances brings several benefits: Since the web browser component is integrated with the BotLab client, the separate download and waiting period when starting a bot is now obsolete. And when running many bots at the same time, the integration helps us see which browser window belongs to which bot instance.
When comparing the BotLab client from August to the newest one, you will also see a striking difference in the colors. While reimplementing all the views in the BotLab client, I also made the visuals consistent with other BotLab GUIs, like the one in the Reactor.
One of my favorite improvements in DevTools last month was supporting using the up-and-down arrow keys to scroll through the timeline: No need anymore to move your mouse for that: Press ‘up’ or ‘down’ to get to the previous or next event in the timeline.
Many thanks to the early adopters who helped test the new interface and squash bugs over the last weeks.
I hope you enjoy the simplified workflows and improved usability with the new interface.
As always, I am keen to hear about your experience, as these reports enable me to make bot development even easier in the future.
In December, we reached another milestone in the evolution of the interface to run bots. In November, we already reported on the new graphical interface to run bots. The latest update expands that graphical interface with controls to configure bot sessions. You can see the expansion in version 2022-12-10 and later of the BotLab client: After selecting a bot to run, you will arrive in the new ‘Configure Session’ view. Here you can customize the parameters of the new session, including the bot settings, to customize the behavior of the selected bot.
Despite the addition of the graphical interface for session configuration, you don’t need to change existing scripts or integrations to start a bot via the command line: The new interface will then reflect the arguments given with the command to start the process.
A significant improvement regarding bot settings is the new live feedback: Since the settings language is specific to the selected bot, it sometimes takes a few tries to find the right prompt for your situation. The new interface makes it easier to refine the bot settings prompt: After entering a prompt, the interface shows you the response of the bot right away. This response shows if the bot understood the prompt, so you know if you need to rephrase it. Since the response from the bot is displayed inline, you can see if it works without having to start a session.
You can also see a quick overview of the new graphical interface in this video, showing the complete process of running a bot:
Marcos did it again. Over the last two months, Marcos Macedo contributed many improvements to EVE Online, demonstrating how to automate tasks in the game.
Following is a list of some of Marcos’ recent contributions:
We have made several improvements to the BotLab client recently.
Thanks to @Abaddon, we improved storage efficiency, and disk usage for the play session recordings is reduced by more than 90 percent in most cases compared to the earlier versions.
The February release brings some visible changes. The new main menu lists recent play sessions as an easier way to open a past session again for review or further processing.
There is a new release of the BotLab client to improve support for running multiple bots on the same (virtual) machine. The play session configuration now offers to turn off the input focus scheduling feature:
When you use separate RDP sessions to isolate bot instances from each other, input focus scheduling is not necessary for these sessions. Therefore, turning it off in these cases is better to avoid unnecessary delays of your bot’s actions in the game clients.
Version 2024-04-07 of the BotLab client software massively improves runtime performance in DevTools. This speedup is most noticeable when the play session timeline shows many thousand events. Several optimizations in the timeline’s rendering code improved performance here and reduced delays and waiting times.