Skip to content

miniSphere 4.5.0

Choose a tag to compare

@fatcerberus fatcerberus released this 20 Feb 17:40

minisphere 4.5.0 is the fifth minor update in the minisphere 4.x release series and brings several changes to the Sphere v2 API to make it more self-documenting and easier to understand.

Important Considerations

  • Handling of save data has been changed. In order for a game to save, a
    saveID field must now be present in game.json, which determines the
    location the engine will use for that game's save data. If no saveID is
    defined, any SphereFS path beginning with ~/ will be rejected with a
    ReferenceError.
  • Image has been renamed to Texture in service to eventual API convergence
    with Oozaru. The Web platform already exposes an incompatible Image class,
    so this change was unavoidable.
  • system has been renamed to Sphere to better reflect its role as a
    namespace for low-level engine services. Additionally, properties such as
    .version and .apiLevel have been capitalized, since they are runtime
    constants.
  • Sphere.sleep() has reverted to its original behavior; it no longer runs a
    frame loop and therefore now takes a time in seconds rather than frames.
  • FS.openFile() has been refactored into a FileStream constructor. The
    second argument of the constructor uses easy-to-read constants such as
    FileOp.Read as opposed to the arcane C fopen() mode strings used with
    FS.openFile().
  • Games can now get or set the fullscreen mode programmatically by using the
    screen.fullScreen property.

Changes in This Version

  • Adds support for game-specific save directories. Set saveID in a game's
    JSON manifest to control the subdirectory to which ~/ is mapped.
  • Adds a new FileStream constructor, which replaces FS.openFile() and has
    a more intuitive API.
  • Adds a screen.fullScreen property to change the fullscreen mode at runtime.
  • Adds a compile-time warning for Cell targets with no sources (the tool will
    never be invoked in that case).
  • Adds support to Cell for SGMv1 manifest generation, allowing limited
    cross-compatibility with Sphere 1.x to help ease migration.
  • Renames the Image class to Texture to support future compatibility with
    Oozaru.
  • Renames system.now() to screen.now().
  • Renames the system object to Sphere, and fixes capitalization for runtime
    constants, e.g., system.version -> Sphere.Version.
  • Renames the --window command-line option to --windowed.
  • Changes Color#name to return InterCaps names for predefined colors, e.g.
    "DodgerBlue" instead of "dodgerblue".
  • Changes Sphere.sleep() to use its pre-4.3 behavior, taking a value in
    seconds and suspending all engine activity, including rendering, until the
    timeout expires.
  • Fixes a bug where calling FileStream methods on a disposed stream can cause
    miniSphere (and Cell) to crash.

Installing in Windows

Simply download and run minisphereSetup-4.5.0.exe. The Inno Setup install wizard will walk you through the installation process.

Installing in Linux

For Ubuntu (14.04 and later), minisphere is available via personal package archive (PPA):

Installing from a PPA is easy. Simply open Terminal and run the following commands:

  • sudo add-apt-repository ppa:fatcerberus/minisphere
  • sudo apt-get update
  • sudo apt-get install minisphere

You only need to do this once. The system will automatically notify you of future minisphere updates.

Note: Users of Linux distributions other than Ubuntu will need to build the engine manually from the tarball (minisphere-4.5.0.tar.gz).