<!doctype html>
<html>
  <head>
    <title>Townengine Wiki : Packaging</title>
    <link rel="stylesheet" href="style.css">
  </head>
  <body>
    <h1 style="margin-bottom:0in">T3. Packaging<span style="float:right">{twn}</span></h1>
    <a href="index.html">Go back
    <p><a name="overview"></a><strong>T3.1 </strong><strong>Overview</strong>
    <blockquote>
      <p>Assets are distributed by packs, which can come in either archived or, for development purposes, folder form.
         {twn} games operate in a sandboxed filesystem and operate strictly on supplied content.

      <p>Archives are limited to zip format, with .btw file extension.

      <p>One pack by the name of 'data' is always assumed to be present alongside executable,
         whether in folder /data/ or /data.btw archive, where precedence is taking over for /data/ folder variant.

      <p>Root /data/ could be used to point to other packs in its /packs/data.toml file.
         It results in a union filesystem, where directory structures are overlaid on top of each other.

      <p>Packs which are loaded first have precedence over later ones, preserving their contents.
         For example, if /assets/foo exists in root /data/, and another /assets/foo is found elsewhere,
         only the root /data/ version will be available.

      <pre>
# Example of data.toml file
# `deps` array of tables is loaded sequentially, where dependencies of dependencies are processed first before continuing.

[[deps]]
source = "../../common-data" # where does it come from
name = "common-data"         # should be a globally unique identifier</pre>

      <p>Compilation utility might later be available to combine packs for easier distribution.

    </blockquote>
  </body>
</html>