Hey Everyone.
As requested here is a general development update for Boundless. The aim is to make sure people know what is going on and what to expect in the near term.
I’ll also make a separate post (as championed by @heurazio, @Saint_X and @Stretchious) in the next few days that attempts to start answering a range of questions submitted by the community. There is still time to include additional questions here.
Beacons:
We released update 115 mid December. The aim of this release was the see how everyone used and responded to a reworking of the Beacon system. We sent out a survey to all players who’ve played with the new beacon system and specifically placed beacons in the world. We’ll crunch the survey results and get them posted soon. As ever, the data is really helpful in understanding the communities response to features.
JavaScript to C++:
First a little history. We initially released Boundless (then Oort Online) as an online game playable via the browser. The majority of the game was implemented in JavaScript which is the native programming language of modern browsers. The game relied on modern just in time (JIT) compilation to generate playable performance. There was huge demand by the game’s early adopters for the game to be made available via Steam. We had to switch from using the browser as the game’s application platform to our own native platform. Whilst the majority of the game code remained in JavaScript, we took the opportunity to port some of the more demanding code (specifically the conversion of the voxel chunks into meshes for rendering) into C++. Since this release we’ve maintained the browser based version and the native builds as a single hybrid code base. This architecture, layering game code in JavaScript on top of a native platform in C++, has some advantages but also some significant and unavoidable weaknesses.
When the opportunity arrived to bring Boundless to the PS4 we hit a technical roadblock. The security model on modern consoles doesn’t allow standard applications to generate and execute code. This means that we couldn’t run the JavaScript JIT to get semi decent performance. Without a JIT scripting languages fall back to the more common form of interpreted execution. But this delivers no where near enough performance. So triggered by the strict security model on the PS4 we’ve spent the last few months porting the entire game to C++ for PS4 and PC. (This was announced by Double Agent @Tahru ).
Technically speaking we’re porting Boundless to C++11 which is a fairly modern specification of C++. Whilst the porting is a bit of a detour and has slowed the development and release of features it will turbo charge the entire game for everyone. A pure native version of Boundless will greatly improve the performance of the game on the CPU (it’ll also have a minor effect on the performance on the GPU.) The game should have a much more stable framerate as we’ll no longer be hostage to JavaScript’s idiosyncratic [garbage collector](https://en.wikipedia.org/wiki/Garbage_collection_(computer_science). Other advantages include: reduced memory allocation overhead, access to the most modern graphics APIs, universal access to SIMD instructions, and native access to multi core execution.
Think of this process as winter training for Boundless. We’re in a training montage with Rocky racing up a mountain knee deep in snow, piling up rocks, hitting tires with a hammer, and menacingly crumpling up pictures of other voxel games. No pain! No pain!
We’re also porting the Server across to C++, which in turn will gain all the benefits of the client. This’ll mean that we can have more concurrent players and active entities (mainly creatures) per world.
Release plan:
- Release an alpha and beta of the C++ version of Boundless as a beta via Steam. This will be a beta in the truest sense on Steam. It’ll likely crash and output annoying call stacks. But if you give this version a try you’ll help us track down all the mistakes we made during the porting process.
- Officially release the C++ version of Boundless replacing the current hybrid build. Once the C++ version is stable we’ll replace the current official version. Then we’ll have everyone playing on a single version.
- Major feature update + new worlds. Details below.
We’re still working on the porting so don’t expect the first Steam beta release soon. But as soon as we have we have a solid idea when it’ll be available we’ll let you know.
Next Feature update:
Whilst the engineers are busy it’s given the designers and artists a chance to prepare for the next significant feature update. Describing the features we have coming deserves it’s own dev update post but I want to give you a general feel for it here. Since we launched Boundless (née Oort Online) the game was largely a sophisticated engine where the main gameplay was building. We gave you the beginnings of combat, crafting and trading, but ultimately player engagement was defined by how satisfying everyone found creative building and exploring other player’s builds. The next major feature update is going to fix this - as it will include the main central core of the game. This includes the initial player progression and a new set of final quality wrapped worlds containing all the collectable resources and world regeneration. To support this core gameplay the artists have been focused on concepting and creating all the assets required for these new features. For example, we want to have a complete set of block textures, props, items, tools, and machines - as you can probably imaging from all the concept art we’ve been posting.
The feature update will also contains the beginnings of Boundless’ original sound track composed by the crazily talented Peter Gregson. Maybe we’ll share something more about this soon.
We realise that the majority of players are desperate for updates and new features - as are we. All the development we’re doing is to make sure that the final 1.0 release will be the absolute best game we’ve all been dreaming of.
As ever - thanks for your wonderful support.