EVE Online Fleet Commander Console (EFCC)

Background

Eve Online is a space-based, persistent-world massively-multiplayer online role-playing game. When doing a team fight, multiple fleet (consist of 200+ real player) is involved. Commander of each fleet not only need to command the fleet, but also coordinate with the main commander. Both of them is by voice normal. Which is a great stress for the fleet commander. A tool is propose using UI interface and API. Automate many routing works hence reduce workload of fleet commander and main commander.

Client Requirement

  1. A tool that reads fleet and player data and summarizes it to the main commander’s console.
  2. Main commander can issue orders both vocally and through the software, visible in real-time.
  3. Star map with jump gates, wormholes, and Jump Drive support for capital ships.

Idea

  1. Use ESI (EVE Swagger Interface) for data gathering.
  2. TCP connection for real-time communication.
  3. Dump map data to SQLite for persistence.

Implementation

Python+PyQt5+OpenGl

1. Data Collection (ESI)

  • Pull ESI tokens from EIMS (an existing player made system that intergrated ESI for corporation management)
  • Pull player and fleet data form ESI using tokens: location, ship type, fleet status, etc.
  • Real-time updates from the EVE Swagger Interface (Within request limit, which limit to 2 time/M).
  • Local scanning data is not avaliable in ESI hence each fleet must have someone uploading them periodic.

2. Communication (TCP)

  • Set up TCP server-client for fleet-to-main commander data sync.
  • UI orders transmitted in real-time. Voice is handled by other software similar to TeamSpeak (YY)

3. Star Map & Navigation

  • Project 3D star system data into 2D for easy use.
  • Using ESI to read player built structure and filter for jump gate and add to the database.
  • Dynamic map with fleet positions, jump gates, wormholes, and capital ship jump drive support.

4. Database (SQLite)

  • Store star system and star gate data. Player and fleet data only store in the server.
  • Periodic updates for status, history, and mission progress.
  • Each reboot will result in a star gate data update.

5. UI Design

  • Fleet commander sees key stats and order notifications.
  • Main commander controls orders via voice and UI with live fleet status.

6. Automation & Workflow

  • Automate data collection, status updates, and routine tasks.
  • Trigger alerts based on in-game events(% of ship in the fleet is damaged, #of player in enemy system is greater than us, etc..).

Github Repo

Non-disclosed for 3rd party usage

Collaboration

Worked with 3 more developer all work full time in Tech Giant.

Screenshots