Thursday, May 19, 2016

The Lost Tribes Extensions

In my play test last Friday it was suggested that before I start working on ships in orbit, I should work on my Missions infrastructure.  Basically, how are missions going to work.  I knew that I wanted missions to be an independent thing from the game itself, so that other players could create their own missions.

Physics infrastructure is something that I knew I needed to do, so extensions have been adapted to handle how a ship is validated and operates within the game.  This plays into a recent decision that ships and space stations will not be things placed in boxes.  Instead a ship is basically an interconnected complex with components performing certain functions.  I'm still deciding on the method for ship validation.

It's Going to be XML

I have decided on XML as the extension language for these reasons:
  1. XML is easier to read than JSON especially when the data gets very hierarchical.
  2. XML has a schema definition mechanism that JSON doesn't, this will make the parsing of the specification easier.
  3. The tools for transforming XSD to C# classes already exist.
  4. The XML files get loaded once at game start, so while XML will use up for more bytes, it's an expense only born at the start of the game.

The Book

It was always my intention to use The Lost Tribes to tell interactive stories based around a core engine.  So each extension is really a book containing one or more chapters, where a chapter is a mission.  The idea of a chapter allows you to have text associated with the chapter, individual objectives and have a bunch of descriptive text around these two ideas.

The organization of the book is as follows.  Starts with "Book (Name with descriptive text)":
  • Uses - Identifies other TLTBooks that contain Material and Building information.
  • Game - Identifies the game seed/generation options
  • Dependency - Identifies books that have to be completed at the difficulty being played to open this book.
  • Difficulty - Identifies difficulties this game supports.  Generally Easy, Medium, Hard.
  • Start - Identifies the starting planet for this player.  Can be "Random" which finds a star system with a planet in the hospitable zone of the star.
  • Required - Identifies raw material that must be present on the player's first planet.
  • Stockpile - Identifies the material that will exist on the player's first planet.
  • Raw - Identifies new raw materials that are available in this book.
  • Material - Identifies manufactured materials the player can make in this book.
  • Building - Identifies new buildings/facilities/components the player can construct and how much time is required by the construction bots to make the building.
    • Input - identifies the material required by the building.
    • Output - identifies the material produced by the building, assuming the minimum units for all the inputs are met.
    • Construction - Identifies the building materials required to make a building.
    • Physics - Identifies how the ship acts/reacts within the physical environment.  Each physic part identifies:
      • Type - Which space domain the ship is present, eg. Normal, Nebula, Hyperspace, QuantumSpace, etc.
      • State - State of the ship within that domain.
      • Action - Desired action of the ship while in the state.
      • Code - LUA code describing how the component reacts when the action is initiated.  If the code requests a state change, then all other physics components must also result in the same state change in order for the state change to occur.
  • Chapter - Identifies one or more chapters for the book.
    • Objective - identifies one or more objectives for the chapter, with one or more of the following rules.  Note this will be amended as the game progresses:
      • Stockpile - The stockpile facility must be added.
      • Complex - A raw complex of a given material must be located.  No buildings need to be present.
      • Building - A building must be added, removed or if it's a "transport in", configured with at least one transport.
      • System - Must discover a solar system.
      • Planet - Must discover a planet.
      • Station - Must create a space station over a planet.



Wednesday, May 11, 2016

Planet View Update

In addition to the changes to the research view and migration to MarkLight, I've been able to improve the Planet View.  The major improvement is the Tech view which shows the building inputs, outputs and construction needs of individual buildings without having to go into R&D to get it:

Research View Update

Most of last week was consumed by a migration from one UX version to another.  When will I ever learn to wait until version x.3 of anything before migrating?  Fortunately, the developer was available on Slack and we were able to have real-time support chat conversations.  Still, ran into far too many bugs.

Anyway, here is the updated Research View.  It now incorporates all of the suggested Play Test changes that were identified about 2 weeks ago.



Major Additions/Changes:
  • CHANGE: The top-right icon is reflective of the view you are going to when clicking it.
  • ADDED: Top-left BACK icon allows you to backup in your view.
  • ADDED: Lower-Left Game Timer
  • ADDED: Lower-Right Tech View

New - Tech View


It was pointed out that it would be really nice to be able to remember/see the formulas for the various factories.  So I have added the tech view.  Which is also available on the Planet and Complex views, shows up to 9 building formulas, showing the Inputs, Outputs and Construction needs for each building type.

Selecting/Unselecting a Building Type is done by right-clicking the building in any research view.

Tech in the Research View allows you to also quickly find the research to show a graphical view or to unselect it.  Whereas, in the Complex and Planet views, there is a "Forget Button" to remove it from the list.


Monday, May 02, 2016

Playtesting Update

Last Friday, I took the game to the Calgary Game Developers work session and got some great feedback from 3 of the developers.  I've incorporated most of the suggests, except one, which I will defer to later on.  That one is related to how to view the tech tree, and I will add it when I revise the tech tree later in development.

Major Changes:
  1. One of the biggest changes that cannot be shown in a blog is the ability to spin the globe with the mouse.  This makes it super easy for the player to look at the planet.  LEFT spins left or right.  MIDDLE spins up and down.  I did incorporate LEFT to do both left/right and up/down but it was very disconcerting which is why there are two buttons.
  2. Hide and prevent hexes from being selected when they cannot be selected, and update this in real-time as buildings are added and removed.
  3. Implemented a shader for text so that at low angles to a complex, the backdrop image for one building hides labels that were behind it.
  4. Distance measuring now shows the transport route in addition to calculating the distance.
  5. It's now possible to migrate between complexes via the HUBs.
  6. Planet Aggregation is now real-time.  Before you had to exit the complex to get the actual aggregation.
  7. Revised the tech tree to make it clearer how the flow worked.
  8. Revised the GIS view to make the buttons narrower so that more filters can be displayed at the same time and changed how the layers are ordered to make it easier to find.
  9. Changed the complex view to make it easier to read things.
  10. Removed the "X" icons from all views and replaced them with icons represent the view you would navigate to.
  11. Plus others.

As a result of the feedback I have revised the planetary view to include labels over the vertices so that at a glance you can see the primary output of the complex.  Zoomed in, it looks like this:


Since each complex typically routes in multiple inputs and, generally, produces a single output, it made sense to identify the material that the complex produced, and this made the view much descriptive.  Later on, I'll replace this text with an icon, but for now, text is good enough.

I went on with the changes and now show only the labels for the inputs and outputs, and revised the colouring on the connector lines on a per complex basis.  The lines show RED (start) to GREEN (end).  These lines are also temporary, I'll replacement with arrows or particles later in the development.  Particles are preferred because then I can use the same icons describing the outputs as particle textures.

In the image below, I show the before and after labels view:


It should be clear that the formula for a Plasma Conduit is Gold, Iron, Copper IN and the output goes to Plasma Injector manufacturing.