jahed.dev

FrontierNav Report: April 2018

Progress Report

Changes in April

April saw a steady progress towards open sourcing FrontierNav and the gradual introduction of collaborative tooling. The interface has been tidied up too: consistent colours, cleaner layout, better navigation. On top of that, Xenoblade 2's map is almost ready!

It's nearing the end of May now but it's worth mentioning May's update will come in June as usual with Progress Reports. This update was delayed by some weeks.

Xenoblade 2 Maps

The data for the maps is available now. It's just a matter of linking it all up, making sense of it and making it presentable. Can't wait!

Open Source

As I refactor FrontierNav's codebase, it's becoming more clear what the future will look like. There's a clear separation between individual games and how they interact with FrontierNav's "chrome", that is the stuff around it like the sidebar and user drawer.

I may be at a point to either migrate an entire game's interface to open source or create a new one as an example. The remaining difficulty is around credentials and separating third-party services like Firebase to the point where they're not needed for development.

The core aim for open sourcing isn't a feel-good achievement, while that is an added benefit. The aim is to allow others to contribute their own games and interfaces using the same set of data. Reducing the duplication of effort we currently see in the community.

Yearning Peer-to-Peer

The more I look at the Dat Project and Beaker Browser, the more I wish it was ready for production. It really is an ideal for FrontierNav. The downside is, hardly anyone's using it. So until then, I just have to sit tight.

Text Guides or Editing Tools?

The aim with Text Guides was to allow a simple form of collaboration on FrontierNav: articles, walkthroughs and pieces of text in general.

While I was implementing it however, I realised something. I was implementing what was essentially a blogging platform. Is that what FrontierNav should be? Maybe, sometime in the future. But right now, to quote from the last report, the aim is to create "a data management and visualisation platform for video games". The tooling for editing data isn't there yet, and I feel that should be the focus right now.

The initial attempt at data collaboration was to create a repository on GitHub with all the data as individual JSON documents. While this worked initially, there was just too much data and too many files to deal with, and Git became too sluggish at it.

Most recently, I tried using a Google Spreadsheet. While the spreadsheet made bulk editing a lot easier, spreadsheets are too limited. The data FrontierNav deals with is complicated and a spreadsheet can't represent that without external parsers and validation.

So, here's a rough plan of how the built-in Editor will work:

  1. FrontierNav works with two types of data:

    • Official Data: Loaded by default for all users.
    • User Data: Created or imported by a user.
  2. A user can edit various parts of the Official Data, making a copy of it which we call "User Data". For example: adding new map markers, new enemies and editing existing data.

  3. Once complete, the user can export this User Data and share it.

  4. Other users can import the User Data for their own use.

  5. A FrontierNav Admin can review the User Data and update the Official Data.

Next Up

This month I'll focus on getting Xenoblade 2's maps out. It's really close.

After that, I'll work on the Editor as right now, it's clearly a bottleneck.