All Projects → Arcitectus → Sanderling

Arcitectus / Sanderling

Licence: apache-2.0
APIs and libraries to read information directly from the EVE Online game client.

Programming Languages

elm
856 projects

Projects that are alternatives of or similar to Sanderling

Xmouse Controls
Windows utility to enable or disable active window tracking, raising and also the delay in milliseconds. This is known as x-mouse behavior or focus follows mouse.
Stars: ✭ 122 (-27.81%)
Mutual labels:  accessibility, user-interface
Ws Scrcpy
Web client prototype for scrcpy.
Stars: ✭ 164 (-2.96%)
Mutual labels:  remote-control
Proton
Proton Framework is a Windows post-exploitation framework similar to other Windows post-exploitation frameworks. The major difference is that the Proton Framework does most of its operations using Windows Script Host, with compatibility in the core to support a default installation of Windows 2000 with no service packs all the way through Windows 10.
Stars: ✭ 142 (-15.98%)
Mutual labels:  remote-control
Membrane
A platform agnostic clojure(script) library for creating user interfaces
Stars: ✭ 154 (-8.88%)
Mutual labels:  user-interface
Amazing Swift Ui 2019
23 Amazing iOS UI Libraries written in Swift for the Past Year (v.2019)
Stars: ✭ 147 (-13.02%)
Mutual labels:  user-interface
Mag.js
MagJS - Modular Application Glue
Stars: ✭ 157 (-7.1%)
Mutual labels:  user-interface
React Command Palette
An accessible browser compatible javascript command palette
Stars: ✭ 140 (-17.16%)
Mutual labels:  accessibility
Mctrl
C library providing set of additional user interface controls for Windows, intended to be complementary to standard Win32API controls from USER32.DLL and COMCTL32.DLL.
Stars: ✭ 169 (+0%)
Mutual labels:  user-interface
Visible
🦉 Accessibility testing framework at the next level
Stars: ✭ 164 (-2.96%)
Mutual labels:  accessibility
Spotcommander
The most intuitive and feature-rich remote control for Spotify for Linux
Stars: ✭ 152 (-10.06%)
Mutual labels:  remote-control
Obs Websocket
Remote-control of OBS Studio through WebSocket
Stars: ✭ 2,425 (+1334.91%)
Mutual labels:  remote-control
Houdini
A simple, accessible show-and-hide/accordion script.
Stars: ✭ 148 (-12.43%)
Mutual labels:  accessibility
Ej2 Angular Ui Components
Syncfusion Angular UI components library offer more than 50+ cross-browser, responsive, and lightweight angular UI controls for building modern web applications.
Stars: ✭ 159 (-5.92%)
Mutual labels:  accessibility
Color
Color utilities for macOS, iOS, tvOS, and watchOS
Stars: ✭ 145 (-14.2%)
Mutual labels:  accessibility
Ej2 React Ui Components
Syncfusion React UI components library offer more than 50+ cross-browser, responsive, and lightweight react UI controls for building modern web applications.
Stars: ✭ 166 (-1.78%)
Mutual labels:  accessibility
You Dont Know Ui
Learn how to build universal, modern and scalable user interfaces
Stars: ✭ 140 (-17.16%)
Mutual labels:  user-interface
Angular5 Iot Dashboard
Multipurpose dashboard admin for IoT softwares, remote control, user interface. Develop your client dashboards in Angular 5 with vast variety of components available.
Stars: ✭ 148 (-12.43%)
Mutual labels:  remote-control
Angular Sticky Things
Sticky Directive for Angular 2+
Stars: ✭ 154 (-8.88%)
Mutual labels:  user-interface
Ubkaccessibilitykit
An iOS framework to help with accessibility development and testing.
Stars: ✭ 170 (+0.59%)
Mutual labels:  accessibility
Focusoverlay
Library for creating animated overlays on focused elements
Stars: ✭ 167 (-1.18%)
Mutual labels:  accessibility

Sanderling

Sanderling helps you read information from the EVE Online game client using memory reading.

Sanderling is the eyes of bots and monitoring tools. It helps programs see the game client in a structured way, detecting objects and reading information about the game world. It also reads the locations of elements in the game clients' graphical user interface (e.g., in-game windows, overview entries, buttons, etc.). You can use this information to interact with the game client using mouse input.


Visualization of data read from the EVE Online client memory.


Features

  • safe: does not inject into or write to the EVE Online client. That is why using it with EVE Online is not detectable.
  • accurate & robust: Sanderling uses memory reading to get information about the game state and user interface. In contrast to screen scraping, this approach won't be thrown off by a noisy background or non-default UI settings.
  • comprehensive: Sanderling memory reading is used in mining, trading, mission running and anomaly bots.

Repository contents

Below is an overview of the software components maintained in this repository. The tools and projects listed below come primarily in the form of source code, and you might have to build them from source if you want to use the latest version. For guidance on the build process(es), see the respective subdirectories containing the source codes. If you don't want to build the tools from source, you can find pre-built and ready-to-execute binaries in the releases section on GitHub.

Memory reading library

This library implements the functionality to read from the memory of (64-bit) EVE Online client processes. It reads the UI tree from the game client user interface. It is written using the C# programming language, and the build output is the .NET Core assembly read-memory-64-bit.dll.

Location in the repository: /implement/read-memory-64-bit

Tool to get and save process samples and memory readings

This software integrates multiple functions in a single executable file:

  • Saving process samples to files for later inspection, automated testing, and collaboration. This function is not specific to EVE Online but can be used with other game clients as well.
  • Reading the structures in the EVE Online clients' memory. You can let it read from a live process or a previously saved process sample. It also offers to save the memory reading results into a JSON file.

The compiled binary is distributed in the file read-memory-64-bit.exe.

Location in the repository: /implement/read-memory-64-bit

Memory reading parsing library

This library takes the result of an EVE Online memory reading and transforms it into a format that is easier to use for integrating applications like bots.

When programming an app, we use functions to reach into the UI tree and extract the parts needed for our app. Sometimes the information we need is buried somewhere deep in the tree, contained in other nodes with redundant data. The structure we find in the UI tree is what CCP uses to build a visual representation of the game. It is not designed to be easily accessible to us, so it is not surprising to find many things there that we don't need for our applications and want to filter out.

To find things faster and automatically detect program code errors, we also use types adapted to the user interface's shape. We use the type system of the Elm programming language to assign names to parts of the UI tree describe the values that we expect in certain parts of the UI. The types provide us with names more closely related to players' experience, such as the overview window or ship modules.

The input for this library is the JSON string, as we get it from the memory reading.

For an overview of the building blocks that you can find in the memory reading parsing library, see https://to.botengine.org/guide/parsed-user-interface-of-the-eve-online-game-client

Location of the implementation in the repository: /implement/alternate-ui/source/src/EveOnline/ParseUserInterface.elm

Alternate UI for EVE Online

The alternate UI is a web-based user interface for the EVE Online client. Because of the HTML based rendering, this user interface is better accessible with screen-readers.

The alternate UI also lets you play the game from other devices that cannot run the EVE Online client but have a web browser. This way, you can play the game from your android smartphone or iPhone. This remote-play is possible because of the division into a frontend and backend, which communicate only via HTTP. The backend runs on the same machine as the EVE Online client and runs an HTTP server. The web-based frontend then connects to this HTTP server to read the game client's contents and send input commands.

Location of the alternate UI in the repository: /implement/alternate-ui/

Bots

This repository contains few bots if any at all. Below are some links to bots and guides in other repositories.

Guide on developing for EVE Online: https://to.botengine.org/guide/developing-for-eve-online

And these are some bots using Sanderling:

Contributing

Issues and other Feedback

Spotted a bug or have a feature request? Post on the BotEngine forum or file an issue on GitHub. For communication here, supported languages are English, Spanish, and German.

Pull Requests

The only supported language for pull request titles and commit messages is English.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].