Releases: spheredev/neosphere
minisphere 4.1.1
minisphere 4.1.1 is a maintenance release for minisphere 4.1.
Changes in This Version
- When starting a game with a JSON manifest, the main script is now run as a
CommonJS module unless the manifest explicitly specifiesversion: 1
. console
methods now actually send text to the console.- Sphere Studio now runs minisphere Console at V0 verbosity by default.
Installing in Windows
Simply download and run minisphereSetup-4.1.1.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.1.1_i386.deb
, while 64-bit users should download minisphere_4.1.1_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.1.0
minisphere 4.1.0 is the first minor release in the minisphere 4.x release series, introducing a new CommonJS module, assert
, to the standard library.
Breaking Changes
- There is a new Standard Library module included,
assert
. It is based on
the Node.js built-in module of the same name, and includes most of the same
methods with identical semantics. - A handful of
system
object functions have been renamed and given simpler
names. Specifically:system.doEvents()
is nowsystem.run()
, and
system.restart()
is nowsystem.reset()
. - The Sphere Studio plugin now includes an option to display
ssj.trace()
output. Previously this output would always be invisible while using the GUI
debugger, with no way to show or even retrieve it.
Changes in This Version
- Adds a new module to the standard library:
assert
, based on the Node.js
built-in assert module. Unlikessj.assert()
, the functions in this module
throw anAssertionError
when an assertion fails. - Renames a few
system
APIs, giving them easier-to-remember names. - Adds an option to show
ssj.trace()
output while debugging a game with
Sphere Studio.
Installing in Windows
Simply download and run minisphereSetup-4.1.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.1.0_i386.deb
, while 64-bit users should download minisphere_4.1.0_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.0.1
minisphere 4.0.1 is a backwards-compatible update for minisphere 4.0. This update fixes a bug in system.extensions
which caused the array to be missing entries.
Changes in This Version
system.extensions
now includes properties for individual extensions. Each
has a value oftrue
, which allows games to check for the presence of extensions via, e.g.
anif
statement instead of searching the array.- Fixes a bug which caused the
system.extensions
array to be missing entries.
Installing in Windows
Simply download and run minisphereSetup-4.01.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.0.1_i386.deb
, while 64-bit users should download minisphere_4.0.1_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 4.0.0
minisphere 4.0.0 is the fourth major minisphere release. This version introduces the brand-new Sphere v2 API for a fully modern Sphere development experience.
Release Notes - Breaking Changes
- Several object constructors such as
Image
,Color
, andSurface
have been
repurposed as Sphere v2 APIs, while constructors for legacy objects such as
ByteArray
have been removed entirely. Any code using the constructors will
need to be updated. - Objects constructed using a Sphere v2 API--such as the
Image
constructor
(see above),Color.Black
et al., and so on--are no longer compatible with
the Sphere v1 API. For example, you can't use a v2Color
object with
Rectangle()
or assign a v2Image
to a v1 spriteset. Doing so will cause
aTypeError
. - The Sphere v1 API is now deprecated in its entirety. It is not recommended
to use any Sphere v1 functions in new games, and the v1 API is thus no longer
documented. New games should use the Sphere v2 API exclusively and migration
is highly recommended for existing games. - Automatic CoffeeScript and TypeScript transpilation has been removed from the
engine. This was always a bit of a misfeature as Duktape isn't quite fast
enough to do this on demand without causing unwieldy delays. Any
transpilation must now be done in advance.
Changes in this Release
- Introduces the new Sphere v2 API. The entire Sphere v1 API, including the
map engine, has been deprecated and is no longer recommended for use in new
games. For information on using the functions in the new API, see
docs/sphere2-api.txt
. - miniRT has been overhauled and repurposed as minisphere's implementation of
the Sphere v2 standard library. Seedocs/miniRT-api.txt
for more
information. - Drops support for on-the-fly transpilation of TypeScript and CoffeeScript.
This must now be done in a separate step.
Installing in Windows
Simply download and run minisphereSetup-4.0.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_4.0.0_i386.deb
, while 64-bit users should download minisphere_4.0.0_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 3.3.0
minisphere 3.3.0 is the fourth minor release in the 3.x series. This release boasts improved random number generation using the xoroshiro128+ algorithm, and predefined colors such as Color.Red
, Color.Chartreuse
, Color.DodgerBlue
, etc.
Release Notes - Breaking Changes
- Several legacy API calls have been deprecated (but retained for backward
compatibility) in favor of new designs:Font.Default
,Mixer.Default
, andShaderProgram.Default
properties
replaceGetSystemFont()
,GetDefaultMixer()
, and
GetDefaultShaderProgram()
, respectively.Color.mix()
replaces bothBlendColors()
andBlendColorsWeighted()
.
- A large collection of predefined colors (the full X11 set) is now provided
via direct properties ofColor
. This is often more convenient than
constructing Color objects manually, and makes code dealing with known colors
much more readable. - minisphere now uses the much faster xoroshiro128+ algorithm to generate
random numbers instead of Mersenne Twister used in past versions. This may
affect games usingRNG.reseed()
to manually seed the generator, since the
generated values will differ.
Changes in this Release
- Now uses xoroshiro128+ as the random number generator instead of the slower
Mersenne Twister. - Adds a new property to the RNG object,
RNG.state
. This allows you to save
and restore the internal state of the random number generator, for example to
deter save scumming. - Adds a bunch of new API calls to make working with Color objects easier:
Color.fade()
,Color.of()
,Color.mix()
(which supersedes the old
blending functions),Color#name
, and a bunch of predefined colors such as
Color.Chartreuse
,Color.Blue
, etc. Font
,Mixer
,ShaderProgram
andWindowStyle
now include static
.Default
properties which refer to the corresponding built-in default
assets.
Installing in Windows
Simply download and run minisphereSetup-3.3.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_3.3.0_i386.deb
, while 64-bit users should download minisphere_3.3.0_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 3.2.0
minisphere 3.2.0 is the third minor release in the 3.x series. This release boasts a vastly improved module resolver based on Node.js and console.log()
support, and paves the way for an eventual API overhaul in minisphere 4.0. Upgrading is highly recommended.
Release Notes - Breaking Changes
- Module IDs passed to
require()
are resolved using a more advanced algorithm
designed to emulate the behavior of Node.js. Compatibility is mostly
retained; however, there may be subtle differences, for example in the
handling of relative IDs. - minisphere 3.2 supports
console.log()
and its variants. Output produced
this way will only be visible with the debugger (SSJ) attached.
Changes in this Release
- The module system has been overhauled to work more like Node.js, and now has
support forpackage.json
files, parsing JSON files as objects, and useful
APIs such asrequire.cache
,module.loaded
, andmodule.require
. require()
can now load JS modules from anywhere in a game's file system by
prefixing the module ID with a SphereFS alias (@/
,~/
, or#/
).- Adds support for
console.log()
and friends.stdout
is reserved for
under-the-hood logging, soconsole
output will only be visible when SSJ is
attached. - Improves frameskip behavior: The frame timer is now reset only if the skip
limit is hit. This should ensure a more consistent update rate even under
lag conditions.
Installing in Windows
Simply download and run minisphereSetup-3.2.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_3.2.0_i386.deb
, while 64-bit users should download minisphere_3.2.0_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 3.1.2
minisphere 3.1.2 is a backwards-compatible update for minisphere 3.1. This update fixes a deadlock issue when running against Allegro 5.0, which is an issue on Linux, as well as a bug which could have prevented .s2gm
-based games from running.
Changes in This Version
- Fixes an issue where sounds were reinitialized whenever a script called
Sound#play()
(including the first time), potentially triggering a deadlock
bug in Allegro 5.0. This affects Linux only, as Allegro 5.2 is used on
Windows. - Fixes a regression in minisphere 3.1.0 which could cause games with an
otherwise valid.s2gm
manifest to fail to start with an Unsupported Engine
error.
Installing in Windows
Simply download and run minisphereSetup-3.1.2.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_3.1.2_i386.deb
, while 64-bit users should download minisphere_3.1.2_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 3.1.1
minisphere 3.1.1 is a backwards-compatible update for minisphere 3.1. This update fixes a bug in miniRT and adds the ability to pass a Mixer object to Sound#play()
.
Changes in This Version
- Fixes a bug in miniRT/music where it tried to call
console.write()
instead
ofconsole.log()
, causing it to throw an error and potentially crash the
game when logging error messages. Sound#play()
will now accept a Mixer as its second or third argument.
Previously the Mixer had to be passed to the Sound constructor, which was
awkward.- The map engine now uses its own mixer for map-defined BGM.
Installing in Windows
Simply download and run minisphereSetup-3.1.1.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_3.1.1_i386.deb
, while 64-bit users should download minisphere_3.1.1_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 3.1.0
minisphere 3.1.0 is the second minor release in the 3.x series. This release brings several improvements to SphereFS and Galileo, three new miniRT components, and fixes several minor bugs. Upgrading is highly recommended.
Release Notes - Breaking Changes
- SphereFS prefixes have changed. Single-character prefixes are now used for
SphereFS paths instead of the~usr
,~sgm
, and~sys
aliases used in
previous versions. Any code depending on the old prefixes will need to be
updated. - The user data folder has been renamed to "minisphere". This was done to be
more friendly to Linux users, for whom filenames with spaces are often
inconvenient. If you need to keep your save data from minisphere 3.0, move
it into<documents>/minisphere/save
. - The Galileo API has been updated with new features. These improvements bring
some minor breaking changes with them as well. Refer to the API reference
for details. - The search path for CommonJS modules has changed since 3.0. Modules are now
searched for in@/lib/
instead of@/commonjs/
. ListeningSocket
has been renamed toServer
. Networking code will need to
be updated.
Changes in this release
- SphereFS now uses single-character aliases:
#/
for built-in engine assets,
@/
for the root of the sandbox, and~/
for the user data directory (for
save data). - Changes the user data directory name back to "minisphere" to be more friendly
to Linux users. - Adds some new components to miniRT: miniRT/binary for easy loading of
structured binary data, miniRT/xml for XML parsing and DOM generation, and
miniRT/prim to pre-render expensive-to-draw primitives like circles. - Adds a new Transform object which allows working with transformation
matrices. - Improves the Galileo API: Shapes can now be drawn directly, Groups have a
transform
property which allows their transformation matrices to be
manipulated, and shader uniforms can be set usinggroup.setInt()
,
group.setFloat()
, andgroup.setMatrix()
. - Adds new Galileo Shape types
SHAPE_LINE_LOOP
andSHAPE_LINE_STRIP
. - minisphere now looks for CommonJS modules in
lib/
instead ofcommonjs/
. Async()
is now calledDispatchScript()
for API consistency.ListeningSocket
is now calledServer
.- You can now use
-0
through-4
on the command line to specify the engine
log verbosity level.
Installing in Windows
Simply download and run minisphereSetup-3.1.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_3.1.0_i386.deb
, while 64-bit users should download minisphere_3.1.0_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.
minisphere 3.0.8
minisphere 3.0.8 is a maintenance release. This release adds support for repeatable commands in SSJ as well as fixing a segfault.
Changes in this release
- Fixes a bug where minisphere would crash instead of showing an error message
if it was unable to create a render context. - SSJ will now continue with the previous course of action if given a null
command. This only works for certain commands.
Installing in Windows
Simply download and run minisphereSetup-3.0.8.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.
For other Debian distributions such as Linux Mint or Debian itself, simply download one of the .deb
packages below. Users of 32-bit systems will want minisphere_3.0.8_i386.deb
, while 64-bit users should download minisphere_3.0.8_amd64.deb
. Once downloaded, simply double-click the file and your package manager will guide you through the process of installing the package.