Giter Site home page Giter Site logo

ftlav's Introduction

FTLAV

FTL: Faster Than Light Adventure Visualiser

With this tool you can record and visualise your unique adventures in the videogame FTL: Faster Than Light. It’s a nice way to archive spectacular FTL sessions for posterity. It can also be a powerful tool for analysing and optimising your play style.

Here’s an example of a full FTL game from beginning to end:

Usage

Before you do anything make sure you have FTL: Faster Than Light installed and downloaded the latest version of FTLAV from the releases page. This application is powered by Java, meaning that it can run on any operation system (Mac OS X, Windows, Linux, etc.) that supports Java 7 or higher. It’s designed to work with any up-to-data version of FTL for Mac/Linux/Windows, no matter if you bought it from Steam, GOG, ftlgame.com or some other place. It’s possible for modded versions of FTL to work with FTLAV, but it might not work for you.

Start FTL: Faster Than Light; start a new game or continue an existing one. Now start FTLAV. If it's your first time it will ask where your FTL data is located. After this, click Open and select the file continue.sav. This file contains all information regarding your current run.

If the selected file is valid you will be presented with a second window showing an empty graph. In the main window you can select the types of data you want to display in this graph. You can toggle these on or off at any time without losing any data. Please note that when toggling changes won’t show up instantly, only when the current gamestate is updated.

Play FTL as you would normally do, with FTLAV running in the background. The graph will update automatically each time you reach a safe point in the game, usually just after an encounter or when exiting a store. It’s also possible to trigger an update by quitting FTL, but this may produce unreliable results.

If you get a game-over by either loosing or winning the game, FTL will delete continue.sav. FTLAV won’t be able to track any new data and will respond with a “File Not Found” error. This is perfectly normal. You can still save your graph as an image by pressing the Export image button. This will save the graph as two PNG images, one with a transparant background and one without, at the current resolution of the graph window. Additionally it’s possible to export a detailed table with information on each possible data point for each visited beacon. This is done by clicking the Export data button. This will save all data as a CSV-file. This can be read by pretty much any spreadsheet application. This can be used to for example maintain an Excel document containing data from all runs with a particular type of ship. With CSV being such a flexible format you might have very different ideas on what to do with your FTL data. If so, share your creations with the community, and please don’t forget to mention FTLAV. If you’re using Apple Numbers you might want to convert the file using this script so Numbers can parse it correctly.

Here’s an example of a CSV-file generated by FTLAV. The image below was captured during the same session.

It’s possible to track data from games that are already ongoing. It’s however not possible to look into the past from the moment you’ve started tracking. This also means that if you quit FTLAV, all data from before the current beacon will be lost. You can however open and close FTL at any moment without using any graph data.

Roadmap

Version 3 (Someday)

  • The method for storing the game state history has been completely redone. Instead of storing the complete history in RAM, each new game state is written directly to a CSV file. This change makes FTLAV a much more flexible and powerful tool. This means you can stop and resume tracking FTL data at any time. This also opens up the possibility for creating your own visualisations on top of FTLAV.
  • The graph renderer code has been completely rewritten. This not only improves overal performance, but also makes it easier to write alternative visualisations.
  • The graph renderer is now available as a stand-alone Processing sketch.
  • More compact UI.
  • Added graph legend.
  • New and improved graph types!
    • Improved per-beacon line graph. Graph lines now can show ∆ between beacons instead of absoluut values.
    • New per sector bar graph, showing totals and averages per sector.
    • New timed scatter plot, showing changes on two axis over time.
    • New systems upgrade diagram.
  • Graph scales in such a way that it never becomes to dense to display on a single screen.
  • Mouseover tooltips for more in-depth information about a particular beacon or point in the graph.

Version 2 (27 september 2015) [latest release]

download

  • New data types
    • Enemy fleet advancement
    • Info on any system (capacity, current energy, damage) on the players ship and nearby ships (CSV exports only)
    • Export the full dataset as a CSV-file

Version 1 (13 September 2015)

  • New data types
    • Scrap count
    • Hull level
    • Fuel count
    • Drone Parts count
    • Missiles count
    • Crew size
    • Ship Oxygen level
    • Crew member health
    • Crew skills (pilot, engine, shields, weapons, repairing, combat)
    • Crew stats (total repairs, combat kills, evasions, survived jumps, skills points)
    • Ship log (total ships defeated, total beacons explored, total scrap collected, total crew hired)
  • Graph features
    • Labeled sectors (name, type, number)
    • Beacon labels (as N explored beacons)
    • Labeled graph lines
    • Coloured graph lines (purple for crew, blue for the rest)
    • Graph title (ship name, current score, difficulty, Advanced Edition on/off)
    • FTL style colour scheme
    • FTL style blue glowing lines
    • FTL style typography
  • Export to PNG
  • Export to PNG with transparant background
  • Help menu

Contribute

If you have ideas, suggestions, problems or encountered a bug, please let me know, preferably by filing an issue at this GitHub repository.

If you want to delve into the code you will probably need some knowledge of Processing (Java library responsible for the rendering of the graph) or/and Java (UI, data-parsing and basically everything else). For the Java part you can look at Vhati’s version of FTL Profile Editor, of which a large part of the code of this project is based. Use Maven to compile the source code.

ftlav's People

Contributors

dependabot[bot] avatar niels-ntg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

dkumm thistlebun

ftlav's Issues

Data.dat inaccesible on linux

After compiling the source, the software prompts me to locate data.dat manually. However by default the steam folder on linux is hidden from view by naming it .steam. (And can't be changed, because that prompts steam to create a new folder.)
This makes accessing the steam folder impossible and causes users to be unable to run FTLAV.

(I was able to get around it by creating a soft-link to the .steam folder and using that. Here's an example of the command:

ln -s ~/.steam ~/steam

)

Per-Jump Encounter/Event Flags

I posted about this in the FTL forum thread under the username 'Gencool', but am now posting here for ease of use.

I know "Crew skills as difference per sector" has already been added to the roadmap, but I think 'per Jump' would also be really useful.

The main example, again, is 'Crew Size' - just having a difference per sector means a ship might display having gained 1 crew over the sector, when in reality the player gained 5 and lost 4.

I suggested a rough workaround for finding more in-depth information about crew deaths.
I admit it becomes less accurate if more than one crewmember dies between jumps, and could probably be improved upon who knows how to code properly, but it'd be nice to see the crew data visualised in more detail.

With the data available through the FTL profile Editor, it seems this could potentially also be used to show Hazard data, Ships Destroyed/Surrendered/Escaped, Flagship Battles, Clones Created, Stores Visited, Systems Purchased/Upgraded, Augments/Weapons/Drones Added to Cargo/Equipped/Unequipped and even Event/Enemy Ship Names (where available).
Having them as Per-Jump flags, rather than (or as well as) sector breakdowns could also help correlate them with dips in hull or peaks in scrap...

Some of this would probably have to be roll-over data, and all optional, though it'd be -amazing- if you could add mini weapon/ship/crew sprites later on (dug from game files, of course).

Problem with the new version of FTL

Hello. I have a problem with FTL-AV because of the new version.
If you didn't know, the beta 1.6.1 is available to download (via steam properties). This change the location of the resources. They were in resources\data.dat and same for resource.dat but now there is only one big ftl.dat where there are resource and data.
So, when I try to launch FTL-AV, a window appear telling me to find the path to data.dat but there isn't any data.dat so I cant laucnh FTL-AV

Add scaling for high-value stats in graphs

Hello,

When you enable total scrap/score trackers along with hull/crew quantity, the overall graph becomes seriously unbalanced since all these stats share Y-axis, but have different usual ranges. I think it would be reasonable to apply some scaling (logarithmic?) for these stats or simply disallow both at once.

Cheers.

Add "redraw graph" button

Hey!

I finally got around playing with your tool (reinstalled FTL, launched a fresh profile for a fresh experience).

I'm not sure about the internals, but it would be nice to have a "redraw" button for graphs which will be available at any given time. I would assume you track all values anyway (regardless of what is enabled at the moment), so this shouldn't be a problem.

Cheers.

Updates?

This is a great addition to the game so it's sad it no longer works. I can't find a way to revert FTL to an older release and patching FTLutilities with vhati's updated version doesn't seem to work.

Any other workaround suggestions are appreciated 👍 :)

Possible graph resolution issue?

Hey,

I'm not sure the problem is about screen resolution (playing on laptop with 1366x768), but the resulting graph has issues with putting everything in a pic without affecting quality. Attaching my full run graph along with CSV. You can generate a pic from CSV (the original one is probably not the most interesting) if you still need it for main page as per reddit comment.

Cheers.

2 2015-9-30 2-0

CSV (seems to be to large to attach directly):
http://pastebin.com/bYUj9u06

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.