Skip to content

oznogon/ee-gsl-viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EmptyEpsilon game state log viewer

Visualizes game state logs generated by the open-source spaceship bridge simulation game, EmptyEpsilon.

A screenshot of the EmptyEpsilon game state log viewer, showing a battle between Exuari and Human Navy ships.

Demonstration of a scenario being played back in the game state log viewer: https://i.imgur.com/j07hRlx.gif

Setup

Enable game state logging in EmptyEpsilon by creating a logs directory in the directory where you installed EmptyEpsilon (on Windows), or in a relative path (on *nix), or inside the app bundle on macOS.

Run an EmptyEpsilon scenario, then exit the game. A JSON file should be present in the logs directory, named game_log_(datestamp).txt. For log examples, see the samplelogs directory in this repository.

Clone or download this repo, then open index.html in a web browser (or go to https://oznogon.github.io/ee-gsl-viewer/, which uses the current version on the main branch).

Drag the game state log onto it, or select the log in your storage by clicking the "Browse..." button.

You can then view a replay of the scenario, at one second of gameplay per frame of playback.

Legend

  • Ships: Large deltas (notched triangles) color-coded by faction
  • Missiles: Small deltas color-coded by type.
    • Gray: HVLI
    • Light orange: Homing
    • Blue: EMP
    • Dark orange: Nukes
  • Space stations: Hexagons
  • Phenomena such as nebulae, black holes, wormholes: Images

Other objects are color-coded dots:

  • Yellow dots: Asteroids. Faded yellow dots are visual asteroids that can't be collided with.
  • White dots with a ring: Mines, with the ring representing their detonation range.
  • White dots without a ring: Artifacts.
  • Blue dots: Supply drops.
  • Orange dots: Warp jammers.

Ship and station colors correspond to their faction, using the same colors as EmptyEpsilon's factionInfo.lua script:

  • White: Human Navy
  • Red: Kraylor
  • Light green: Ktlitans
  • Bright green: Ghosts
  • Orange: Arlenians
  • Gray: Independent
  • Bright pink: Exuari
  • Bright purple: USN
  • Teal: CUF
  • Yellow: TSN

Red arcs on ships represent its beam weapons. Faded red arcs represent turreted beams' extents.

When zoomed in, objects with hulls (green) and shields (blue) have color-coded rings. The shield ring can be notched to represent separate shield segments. The thickness of shield and hull rings represent relative strength, so a ship with a stronger shield and hull has thicker rings.

The text at top left denotes:

  • the current mission time
  • the current zoom scale
  • the X / Y coordinates of the center of the view
  • the designation of the sector at the center of the view

Controls

  • Start and stop automatic playback by clicking the "Play" button.
  • Cycle through playback speeds by clicking the "10x" button, which displays the current playback rate.
  • Scrub through the scenario timeline by dragging the slider at the bottom.
  • Toggle callsign displays by clicking the "Callsigns" button.
  • Zoom with your mouse wheel, by dragging the zoom slider at top right, or by clicking the +/- buttons near the zoom bar.
  • Click and drag on the map to scroll.
  • Click a ship or station to display stats, such as its shield and hull strength, weapons, etc.
  • Click the "Lock" button (crosshairs under the zoom bar) to lock the view on the selected object and follow it during playback or when scrubbing through the timeline. This prevents you from manually panning the camera until you unlock the view, or if you lose the selection (by clicking in empty space, or the selected object being destroyed).
  • To load a new file, either drag and drop it onto the current viewer, or refresh the page (ctrl-r or command-r).

Keyboard shortcuts

  • =, -: Zoom in and out, respectively. Hold shift to increase the zoom magnitude.
  • k: Toggle playback.
  • ]: Cycle through playback speeds (1x, 2x, 4x, 10x, 20x, 40x).
  • c: Toggle callsign display.
  • l: Toggle locking the view on the selected object.
  • x, z: Scrub through the timeline one frame (1 second of game time) at a time. Hold shift to scrub by 10 frames.
  • w, a, s, d: Pan the map up, left, down, or right, respectively. The distance panned scales to the current zoom level. Hold shift to pan 10x faster.

Credits

Based on logs/index.html in the EmptyEpsilon repository.

Incorporates: