Skip to content

miniSphere 4.7.0

Compare
Choose a tag to compare
@fatcerberus fatcerberus released this 21 Jul 01:33

miniSphere 4.7.0 is the seventh minor update in the miniSphere 4.x release series and brings new API features, further refines backward compatibility, and improves rendering performance. Upgrading is highly recommended.

Important Considerations

  • The value of Sphere.Platform now includes the version number of the engine,
    while Sphere.Version has been redefined to return the version of the Sphere
    API, e.g. 2. Sphere.APIVersion has been removed as it is now redundant.

  • The Shape object has been completely overhauled to better support GPU-side
    vertex and index lists. Rather than these lists being maintained internally,
    they are now exposed to JavaScript code via the new .vertexList and
    .indexList properties. A few breaking changes were made to the API in
    order to support this; refer to the API documentation for more information.

  • Games can now assign a Transform object to a surface's transform property
    to change the projection matrix. To create projection matrices, there are
    two new Transform methods: .project2D() for orthographic projection, and
    .project3D() for perspective projection.

  • Clipping is now supported for all surfaces, not just the screen. Your game
    can now call .clipTo() on any Sphere v2 surface object to set its clipping
    box, just like you can do with screen.

  • Socket objects can now be reused by simply calling the new .connectTo()
    method to reestablish a connection. This even works for already-connected
    sockets; the existing connection will be closed in that case.

  • For convenience, FS.readFile() and FS.writeFile() now work directly with
    strings instead of buffer objects. This makes them unsuitable for use with
    binary data due to the UTF-8 processing involved. Going forward, games that
    must work with binary files should use a FileStream object instead.

  • miniSphere will no longer run on computers without a shader-capable GPU. If
    you must continue supporting such hardware, you'll have to stick to v4.5.11
    or earlier.

Changes in This Version

  • Adds support for creating 2D (orthographic) and 3D (perspective) projection
    matrices.
  • Adds support for setting a clipping rectangle when rendering to a Surface.
  • Adds new VertexList and IndexList objects, used to store vertices and
    indices, respectively, directly on the GPU for fast access at render time.
  • Adds a new .transform property to Surface which allows changing the
    surface's projection matrix.
  • Adds new methods to Model for setting shader uniforms: .setBoolean(),
    .setFloatArray(), and .setIntArray().
  • Adds Socket#connectTo() which allows the same socket object to be used for
    multiple sessions.
  • Adds the engine version number to the string returned by Sphere.Platform.
  • Adds support for the Sphere v1 CreateSpriteset() and Spriteset#save()
    functions.
  • Changes the signature of the Shape constructor in order to support vertex
    and index lists and make it easier to use.
  • Changes FS.readFile() and FS.writeFile() to work directly with strings
    instead of ArrayBuffers.
  • Removes support for GPUs without shader support. If the engine can't create
    a shader-capable display, it will now simply fail to start rather than trying
    to fall back on the fixed-function pipeline.
  • Renames SSJ to SSj, with a lowercase J, to make the name more recognizable.
  • Renames Sphere.APIVersion to Sphere.Version.
  • Fixes several limitations in the internal handling of spritesets which were
    preventing full Sphere 1.x compatibility.
  • Fixes several bugs in internal Dispatch job management, including one that
    can cause the engine to crash with a segfault.
  • Fixes a bug where setting the clipping box out of bounds has no effect.
  • Fixes excessive OpenGL state changes in the internal rendering logic, vastly
    improving performance for games using the Sphere v2 graphics API.

Installing in Windows

Simply download and run miniSphereSetup-4.7.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) (latest version only guaranteed on current Ubuntu release):

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 other Linux distributions, or those using older versions of Ubuntu, can build the engine manually from the tarball (minisphere-4.7.0.tar.gz).