Skip to main content


Recent Posts

Engine Development / Re: miniSphere 5.1.3
Last post by Fat Cerberus -
5.1.3 is up to fix a couple annoying issues and add support for Promise#finally().  The error screen is also a bit more colorful now. :smile:
Engine Development / Re: miniSphere 5.1.2
Last post by Eggbertx -
Removing 32-bit support seems pretty reasonable, considering Windows 7 was released 8 years ago according to Wikipedia. And that's a long time in technology years.
Engine Development / Re: miniSphere 5.1.2
Last post by Fat Cerberus -
miniSphere 5.1.2 improves exception handling for asynchronous code.  Unhandled rejected promises--and by extension, uncaught exceptions in async functions--will now trigger the error screen the same as a normal exception.  It also adds system-directory packaging: When packaging a game into an SPK, Cell will now include the system files to future-proof the package (do note that the packaged system files will be ignored unless the package is run with v5.1.2 or later).

These are somewhat large additions for a point release (and technically violate semantic versioning rules), but they are low-risk changes and I wanted to get these out sooner rather than later, particularly the async exception handling.

Note: In line with the post above, the Windows release of miniSphere 5.1.2 is 64-bit only.
Engine Development / Re: miniSphere 5.1.1
Last post by Fat Cerberus -
Heads up: The next Windows release will be 64-bit only.  I've considered doing this a few times before, but kept backpedaling since I still wanted to support XP/Vista.  There are few factors that make going full 64-bit make more sense now:

  • ChakraCore minimum requirement is Windows 7 SP1.  Except for circa 2009 Atom-based netbooks with crappy integrated graphics (on which the OpenGL experience was awful), the vast majority of consumer PCs made around this time came with a 64-bit version of Windows 7 preinstalled.  At least this was my experience.
  • Hardware makers are slowly dropping driver support.  nVidia recently did so for their graphics drivers, for example:
  • 32-bit Linux and macOS are already unsupported, as the ChakraCore build script only supports x64 builds.  This fact alone makes continuing to support 32-bit Windows feel like an anachronism.

So yes, long story short: miniSphere 5.2 5.1.2 and later will require a 64-bit operating system on all platforms.

edit: This change came earlier than expected and has been implemented starting with miniSphere 5.1.2.
Game Development / Re: The Screenshot Thread
Last post by DaVince -
This is turning out to be excellent and aesthetically pleasing - yet also retro in a way. I'm a fan of the shading.
Spherical News / Re: Forum updates thread
Last post by DaVince -
Thanks - fixed. :)
Engine Development / Re: miniSphere 5.1.1
Last post by Fat Cerberus -
@Rhuan and I have been working on a great new debugging aid which is coming in miniSphere 5.2.  Historically, rejecting a promise in miniSphere would crash the specific promise chain it occurs in, but otherwise go unnoticed.  This can cause some very strange and difficult-to-understand behavior in heavily asynch code, especially in codebases where async functions are used heavily (like my own Spectacles project).  To illustrate the problem, take this code:

Code: (JavaScript) [Select]
async function pig()
    SSj.log("Oh no, I think I'm going to get eaten by the pig...");
    throw new Error("PIG!!!");
    SSj.log("The pig totally ate me, you guys!");

SSj.log("The pig is coming to eat EVERYTHING.");

This will hit all the SSj.log() calls except for the second one in pig(), and terminate normally.  That happens because pig(), being an unawaited async call, crashes at the throw without affecting the primary (i.e. synch) code path; the promise representing its return value is simply rejected sight unseen.

Broken promises are annoying and difficult to debug, but thanks to @Rhuan's hard work getting promise rejection tracking into ChakraCore, in miniSphere 5.2, the code above will be detected as a runtime error (by the event loop) and generate an error screen with a stack trace the same way an exception in synch code does.  This will make debugging async code much more pleasant.
Game Development / Re: The Screenshot Thread
Last post by Beaker -

Currently at chapter 4 in the graphical and story rewrite.  Still lots to do...
Spherical News / Re: Forum updates thread
Last post by Radnen -
We apparently lost our favicon, too. I was looking at my bookmarks and couldn't immediately see the Spherical icon.
Site Comments / Re: Discord server
Last post by Eggbertx -
Hmm, maybe I'm just projecting in this case then. I mean, I'd want whatever's best for a community, Discord server or forum, and if a Discord server turned out to be better for us in the long run, then so be it, but forums seem to be a better long-term "medium" for this kind of community because messages are more permanent, so that was my concern.