miniSphere 4.7.0
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,
whileSphere.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'stransform
property
to change the projection matrix. To create projection matrices, there are
two newTransform
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 withscreen
. -
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()
andFS.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 aFileStream
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
andIndexList
objects, used to store vertices and
indices, respectively, directly on the GPU for fast access at render time. - Adds a new
.transform
property toSurface
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()
andSpriteset#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()
andFS.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
toSphere.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
).