Status Update

May 3, 2024

Greetings, fellow adventurers! It’s that time again—a moment to share the latest happenings in the gw2cc universe. While our tireless efforts have centered around stability and usability enhancements, we’ve also sprinkled in a few exciting feature updates. So, grab your virtual gear, and let’s dive in! 

Linux Support

We’re thrilled to announce that gw2cc, is now fully compatible with Linux. You can download the Linux launcher directly from our downloads page. gw2cc is built for Ubuntu 24 LTS and has full feature parity with the Window version aside from the Attach mode which is not available. The Linux version is primarily intended for headless botting on a server but you can also run it with video output as long as you have a compatible GPU installed.

StatService

Introducing StatService: A persistent storage solution for your farming statistics.

Gone are the days of losing valuable insights due to session only data storage. With StatService, your statistical data is stored securely in an SQLite database, ensuring durability and accessibility whenever you need it. The perfect addition to keep an eye on the performance of your Bots or general progress. Compare different products, adjust your gameplay or simply visualize your Data! Want to explore your statistics? Use an already established SQLite tools like DBeaver to get ahead of the game!

To start the service, simply run: gw2cc_launcher.exe --tsdb Which will launch a local websocket server listening for your gdscripts / plugins and bots utilizing the corresponding StatService class in godot.

Upcoming Changes

Godot 4.3

The Godot team is in the final stages of preparing the 4.3 release. This update will not only bring a host of performance enhancements and stability improvements, but it will also introduce a new DirectX rendering backend. Our current hope is that this new renderer will solve transparency issues for people with dual GPU laptops.

Skillbar Reconstruction

One of the significant challenges with gw2cc is the accurate reconstruction of the current skillbar and the correct identification of castable skills and their respective targets. We are presently engaged in a comprehensive reverse engineering of the skill data, with the aim of providing a complete skillbar through gw2cc in the future. Despite making considerable progress, the intricate nature of how the skillbar is constructed in GW2 means that it will still require some time before it is ready. Additionally, we plan to offer a standardized ACR interface to facilitate the easy integration of all ACRs with all bots. This will enhance the overall user experience and functionality of our system.

Physics 2.0

Initially, the ambition for gw2cc was relatively modest. Consequently, during the early stages of development, the design of both the agent and physics systems leaned more towards simplicity of implementation rather than performance and extensibility. This approach is now proving to be a challenge. As some may be aware from previous blog posts, integrating moving platforms and mount handling into the existing physics and agent systems would be quite complex and inelegant.

Now that gw2cc has achieved stability and offers interfaces for most of GW2, we can shift our focus to the long-awaited physics rewrite. Given the complexity and time-intensive nature of this task, we plan to implement gradual upgrades to our systems to ensure a seamless transition.

In the first phase, we will transition to using an Entity Component System (ECS) for Agents which is more in line with how GW2 is doing it. At present, gw2cc is cramming all Agent-related data into specific Agent classes. This approach has made the creation and destruction of Agents a resource-intensive and slow process, as all Agents store data for all systems, regardless of whether they use them or not. Transitioning to an ECS will significantly optimize Agent handling and simplify the implementation of features like moving platforms. We aim to keep the old Agent interface as unchanged as possible for now, but new features will be exclusively available through the ECS. We are still deciding on the specifics, but it will likely involve retrieving Agent properties through the respective Managers instead of the Agent class, transforming the Agent class into an opaque handle.

Following this, we plan to add support for moving platforms, enhance the current movement system, and finally introduce mounts.

Improved Plugin System

The existing plugin system was initially conceived as a proof of concept during the early stages of gw2cc development. Its primary purpose was to offer an accessible extension point for third-party developers. While it serves its intended function, its capabilities are somewhat restricted. Therefore, we are planning a comprehensive overhaul of the plugin system to allow for greater customization. This will enhance its functionality and provide developers with more flexibility and control over their extensions.