Monday, September 3, 2012

Project Ginshu - Beige Demo

This week, there's no new build of Ginshu, because some heavy engine work is underway. Instead, if you have preordered Ginshu, you got access to an alpha demo of our new game engine, "Beige" (could be standing for "Blender External Interface Game Engine"), where you can fly around a bit and see if it runs well on your platform. The demo is available for Windows, OSX and Linux.

Of course, you can still download the last build of Ginshu. The next release of Ginshu will be available in two weeks, hopefully using the new engine by then. Until then we will release engine demos to pre-orderers so you can do some early testing and monitor our progress.

Beige is going to replace the Blender Game Engine, in order to shorten the time it takes us to fix issues, shorten the time to implement new features and fix a little licensing pickle early on. Here are the features and what they mean for the game:

- Beige supports the OpenGL 3.2/4.2 interface, so we're making use of the latest hardware features, such as geometry shaders for smooth surfaces, deferred rendering, particle lighting, and faster fullscreen effects.

- Beige runs on top of SDL 2.0, so we have access to all the latest input system features such as true relative mouse movement, proper event handling and multi-touch. Virtually all input lag and jitter problems of the BGE (especially on OSX) should be gone by then.

- Beige reimplements the BGE's logic and script interfaces, so all the game code that has been written for Ginshu and all the logic bricks that have been set up in blend files will continue to run. That way I can pick up work on Ginshu right where I left off, and no features that were previously available will be lost.

- Beige is entirely written in Python and designed to run on top of PyPy, a hot new just-in-time compiling Python interpreter. This shortens implementation and bug fixing time considerably (look at the demo: this is what I built in two weeks from scratch), and gives us even better game code performance than BGE (which uses the much slower Python 3 interpreter).

- A Beige add-on for Blender extends the editor with new game engine specific settings and object attributes. Because Beige is now external to Blender, we can therefore stop maintaining our Blender fork and upgrade to new official Blender releases when they are released.

- Beige interfaces with Blender directly over the network. We can edit content live as the game is running, allowing us to massively shorten the cycles between making an asset change and seeing the results, and tweaking shader parameters as we're walking through scenes.

- Beige can retrieve snapshots of the data server content and save them to disk in a compressed form to and use it as asset source for the deployed game, without us having to run any extra export steps.

- Because editing is networked, the game can be edited while running on the local computer, on remote computers, in virtual machines, on mobile devices and on game consoles, in multiple instances at the same time. Not all of these targets are interesting right now, but they will be.

- Unfortunately,the BGE is GPL licensed, which excludes future use on consoles and Apple tablets / mobile phones, and while those are not primary targets, it was a reason to worry. Therefore, the Beige source code is open and MIT licensed for personal and commercial use, meaning in the future, you will be able to use it to build your own games, free of charge, and in any way you wish. All our source repositories are hosted on Bitbucket.