Release Plan

Update (14th of June, 2017)

Sorry for my lack of updates over the last few weeks (and for saying to some people I'd reply with an update that never came). The project isn't entirely abandoned, but as many of you suspected, I've been unable to secure a way of funding a "proper" release (it's basically a chicken-and-egg problem, nobody wants to fund an alpha release until the beta is fully-polished). Unfortunately even the local government is smart enough not to fund software projects until they're already profitable.

Nonetheless, I remain 100% committed to my current stategy of "code ransoming", whereby I don't release it until it's funded for the short term (or otherwise profitable for myself) - but I will make some concessions to get a bit of early feedback, of course. I might also have a bit of a publicity stunt up my sleeve, you'll just have to wait and see. (I might also abandon the project and move on to something more profitable, you'll just have to wait and see.)

I have added some new features. There's almost a complete manual for the VM and compiler (but not yet for the whole class library), and I've started work on porting the extension mechanism to JavaScript/Emscripten (the core VM is quite portable, so it already worked here, and the A4 program itself works now but with some extensions disabled at build-time).

So, at the moment I'm investigating a compiled JavaScript release, at least for demonstration purposes. I'm not sure how long it will take or if it will all work out. Web Workers will be used as the backend for MPCell objects (threads) - so this means no shared memory in this version, and also HTML5 Canvas may used as the backend for the GUI - but this could change (using plain HTML/CSS might make more sense, mostly depending on whether copy/paste/drag/drop APIs are sufficiently exposed in browsers - this will take further research to decide).

I'm not sure what will happen to the GUI toolkit. I've been scaling back my work there in case I need to dump it for a more web-friendly API. However, the 2D graphics API will hopefully stay (it will just need different implementations - such as Cairo and HTML5 Canvas, or to be disabled, depending on the target platform).

It will take a bit more engineering to release the Windows version. I'm still having some linking problems - I can juuuust make a Windows build from Linux, and for the most part it all works, but building the latest versions of various libraries and integrating with the Windows API from a foreign environment is another story. At the moment I'm using a static build of Cairo (rather than a separate DLL), so I can't distribute the resulting build without open-sourcing the whole thing or disabling the 2D graphics API (unless I'm wrong about Cairo's license - but the static version of the library is a decade old anyway, so it needs to be fixed). I'll probably have to use a Windows machine to build, so this could take a while.

Previous Information

If current (temporary) funding plan goes ahead, releases should be made available in an order and timeframe not too far off of what's described here.

However, this all remains subject to change for the time being.

Current Status

In other words, the platform is mostly complete but alpha-quality. It could already be used to create real-world applications, but there would be some rough edges and pitfalls.

Current focus is on better GUI styles and a full code editor & tutorial interface. This will make for much nicer demonstrations, and will look a lot more like the "app store" version of the product.

Private Alpha (RelC, July/August target)

This will involve around a dozen selected participants testing between two target platforms, and will mostly help to discover any major UI, portability or performance issues.

This build should ship by mid August and this alpha trial will last between two and six weeks (including some time to fix some bugs and test some patches).

Public Alpha (RelA, September/October target)

This release will include more documentation, and will be available in some public form. It will probably be distributed through download tokens posted in forums.

The purpose of this release will be to collect more information about consumer interest and viability among existing as well as new-found target groups (educators, indie game developers and any other interested parties).

This build should ship by mid October and this alpha trial will last roughly one month (assuming there are no major issues).

Public Beta (pre-Holidays)

The product will be spun off into separate "newbie" and "expert" bundles for the final release packaging, and the public Beta will be the final test of build integrity and market response prior to full launch.

The "newbie" bundle will be sold as a low-cost, beginner-friendly development kit (integrated development environment) in popular "app stores" (mostly looking at Windows Store and Google Play - iOS will probably be out of the picture). The focus will be on education and indie/arcade gaming markets (think something between Swift Playground and PICO-8).

The "expert" bundle will also be sold as a commercial product, but it will be clearly and deliberately targeted at the Open Source Community. This will be a Linux/BSD-only product initially. Stable releases later down the track will come with full source code and no licensing restrictions (disclaimers aside).

The main advantages of the "expert" bundle will be better performance on 64-bit processors, portability to Raspberry Pi and integration with the Open Source Ecosystem. A smaller "embedded" bundle will be provided as well for the sake of portability and for use in C/C++ applications (but this might not ship with the first betas, because there is a higher documentation/maintenance cost to this bundle).

(Yes, I charge for betas, and no, you don't get the source code yet.)