Text

“Thank you!” in response to open sourcing the Turbulenz Engine

It’s been a really exciting week for us here at Turbulenz and we have been totally blown away by your response to our release of the Turbulenz HTML5 game engine under the MIT license.

It’s always nerve-wracking releasing something into the wild which is why we are so excited that our engine has been trending on GitHub with over 1200+ stars and 140+ forks. It’s great to see so many people trying out the engine, and we’ve even accepted our first pull request.

image

But it’s not just on GitHub that we have seen plenty of action. Articles on DevelopGamesindustry.biz, Gamasutra and Gamesbeat have got people talking, with discussions on Slashdot and Hacker News. And we have been really excited about the buzz on Twitter - there have been over 1000 tweets and retweets talking about the open sourcing of the Turbulenz engine.

image

And it’s not just our open source engine that has been getting your love. Our friends at Wonderstruck knew they would probably get some attention when we made our announcement so they pulled out all the stops to get a new version of Polycraft ready for all our new visitors, including huge new gameplay elements like outposts and a whole range of new enemies. And it looks like all the hard work has paid off as we have had over 7000 new players. If you haven’t had a chance to try Polycraft yet, play it here.

So we just wanted to say a big “Thank You” for all your support and encouragement. But this is only the start for us. We need you to help us to keep on building the best HTML5 engine in the world. Whether you’re asking and answering questions on the engine users forum, reporting bugs and requesting new features, or just saying hi on twitter, we’d love to hear from you!

Text

Turbulenz Engine Goes Open Source

We’re excited to announce that we have released the Turbulenz HTML5 game engine as open source under the standard MIT license. The open source project is available on GitHub at https://github.com/turbulenz/turbulenz_engine.

You may have seen Turbulenz mentioned somewhere and wondered what it was. Turbulenz provides a game engine that delivers all the building blocks developers need to rapidly create high quality and hardware accelerated 2D and 3D games playable across mobiles, tablets and the web.

image

Polycraft by Wonderstruck

We started developing the Turbulenz Engine a little over 4 years ago in early 2009, when HTML5 was still in its infancy and before WebGL even existed. We recognized that JavaScript and the web development platform offered a huge opportunity for creating high quality games and as a mechanism and market for dynamically distributing content.

We initially proved this to ourselves by creating the service and engine capable of streaming and rendering the majority of Quake 4. This continues today to be a great test of the engine as it has evolved. You can see it demonstrated by our CTO David Galeano.

Today, the Turbulenz Engine powers the highest quality 2D and 3D HTML5 games online. If you want to see some examples we recommend looking at:

image

Save the Day from BAFTA-winning Denki

We have seen a monotonically increasing interest in the engine and SDK since it was first made publicly available.

If you want to take a look, the best place to start is the README which you can find on the Github project page and included in the source. This details how to set up a development environment and includes a short getting started guide on how to use the Turbulenz Engine APIs. From here we recommend going through the Getting Started guide and reviewing all the documentation online.

The engine is also available bundled in an easy to install SDK for Windows, Mac OS X and GNU/Linux. This might be an easier option if you’re looking for a packaged-up and fully QA’d snapshot of the engine. All future SDK releases will contain the open source engine with the associated MIT license. (Earlier versions of the SDK were released with a partially open license which has now been deprecated.) The bundled SDK is available from the Turbulenz developer service.

What Features Does the Open Source Turbulenz Engine Provide?

The Turbulenz Engine contains an extensive range of features and services for creating games. The engine was designed to be a complete Internet generation game engine. By this, we mean a game engine that was conceived, designed and implemented specifically for building games that are played via the Internet using web technologies, rather than as a native application on a console or PC. This is a single suite of technology that spans the client game application and remote game services.

The libraries contain solutions for all sensibly reusable game services, including: 2D and 3D graphics, 2D and 3D physics, 2D and 3D effects, sound, networking, user input, scene graphs, hierarchical animation, movie playback, resource management, server requests, a range of renderers, leaderboards, badges, payments, save game userdata, user profiles, game profiles, multiplayer, metrics, maths and numerous utilities.

The graphics engine is completely shader driven and hardware accelerated using WebGL. It has been implemented to allow games to efficiently dispatch their scenes. The engine comes with multiple renderers which can be selected depending on the features and performance of a user’s device, this includes, a deferred renderer, a forward renderer and a default renderer. There is also a highly efficient 2D renderer for efficiently dispatching huge numbers of sprites and effects.

The 2D and 3D physics engines are particularly powerful in comparison to the procedurally generated ports of currently available.

All the technology has been handwritten as efficient TypeScript and JavaScript to maximise execution and memory performance.

There is a detailed list of all the engine’s features in the repository README and in the documentation.

Why Are We Open Sourcing the Engine?

We’ve had a lot of interest in the Turbulenz Engine via our SDK packages and many of the people who try it out have praised the features and performance. However, two issues that have often come up are any sort of restrictive licensing and the ease of getting things started.

By releasing the Turbulenz Engine as open source under a standard liberal MIT license we hope to ease the adoption costs and ensure that people don’t feel in any way restricted by using the Engine.

What Are the Design Goals of the Turbulenz Engine?

The main design goals of the Turbulenz Engine are performance, modularity and customizability. Users of the engine should be able to build any kind of game without limitations, in an efficient manner and with an end product that performs optimally when loading and during play.

To achieve this target the Turbulenz team followed these rules when writing code:

Modularity

  • Users should be able to pick what they want and replace what they don’t.
  • When possible new functionality should be orthogonal to existing one.

High performance

  • Strict coding standards to keep code efficient.
  • Keep memory allocations to minimum, reuse existing objects or arrays whenever possible, use scratch pads, combine multiple separate objects into a single one.
  • Use most efficient storage for each data, Typed Arrays when possible.
  • Reduce function calls when possible: write functions that handle arrays of objects instead of loops that make a function call per element, games rarely do a single thing to a single object.
  • Be aware of performance differences between browsers.
  • Profile often.

Asynchronous loading

  • No API should block waiting for a response from the server, avoid polling whenever possible, use callbacks or Promises, to notify of data availability.

Data driven

  • The target should be to make the game a simple dumb player of data, all functionality defined by simple data files.

Simple well documented file formats

  • Define simple, easy to create asset formats that can trivially be connected to any tool chain.

Scalability

  • Design interfaces that can be implemented with different level of detail or quality settings in order to scale from mobile to desktops.

Power without control is nothing

  • Make sure users can do exactly what they want, with a helper layer put on top if required, document performance implications at every level.

Fault tolerant

  • The engine should keep going even if any type of asset fails to load. The application is able to provide sensible defaults for all asset types making it easier to stay productive and diagnose issues.

Fast loading

  • Reduce amount of data to be downloaded, compress data efficiently.
  • Use the browser cache efficiently, use unique file names based on content and tell the browser to cache forever.

Maintainability

  • Strict coding standards to keep code readable, easy to maintain and debug.
  • Write unit tests, samples and documentation for every new code path.

Targeted

  • This is a game engine, for games.

What Have We Made Available?

We’ve made three Git repositories available on GitHub:

Turbulenz Engine - https://github.com/turbulenz/turbulenz_engine

  • TypeScript and JavaScript implementations of the game engine
  • Documentation of the libraries, APIs and tools
  • Code samples demonstrating the engine APIs
  • Application samples showing how a basic but complete game can be built
  • Protolib high level prototyping libraries

Turbulenz Tools - https://github.com/turbulenz/turbulenz_tools

Turbulenz Local - https://github.com/turbulenz/turbulenz_local

  • A locally hosted Python development web server implementing the Turbulenz services APIs
  • Tools for interacting with the Turbulenz Hub
  • Also available from PyPi as turbulenz_local.

Want to Contribute?

We know there is a large and growing community interested in HTML5 game development and we hope that people will find this project an empowering contribution to game and Internet technology domains. Now that the project is fully available as open source and easily accessible via GitHub all contributions are gladly welcomed. Please send the project a pull request or post a git diff patch on the Turbulenz Engine google group.

Please Help Us Spread the Word

Please help spread the word to your friends and followers by sharing this announcement online. We want to make sure that anyone thinking about making a game with HTML5 is aware of Turbulenz as a free and open source solution that comes packed with high performance features.

Learn More

Sign up for the free WebCast on 21st of May at 9am PST / 5pm BST. This will include an introduction to the technology, show you how to get started, and leave time for Q&A.

Any questions or ideas about the Turbulenz Engine, HTML5 games or anything else, please get in touch.

Happy Hacking!

- James Austin

Turbulenz CEO

Text

(Mostly) Painlessly migrating a 3D game engine to TypeScript

Introduction

At Turbulenz we are developing a platform for high quality online games.  Part of our technology offering includes a JavaScript library of about 100,000 lines of code, covering many areas of game functionality from rendering APIs that wrap WebGL, to an optimized 3D physics engine, and interfaces to online services.

A production-quality game using the engine can run to well over the same amount of code again (Our pre-alpha game PolyCraft already has about 85,000 lines of runtime JavaScript). The burden of maintaining JavaScript projects of this scale is already known to be significant, and this has been echoed in our experience over 3 years of developing our game engine, as well as several 3D and 2D game titles.

Catching coding errors early can make a huge difference to programmer productivity.  We regularly use static analysis tools such as jshint, as well as automated testing to try and identify problems as code changes are made. However, the lack of type information in JavaScript limits the class of problems that tools can identify, and automated testing can never feasibly cover all execution paths.

TypeScript is one of several projects that attempt to introduce static typing, allowing offline tools to identify a larger class of errors and to provide richer functionality in the IDE.  This article describes the method we used to migrate our JavaScript code base to TypeScript, while keeping development active.

Static Typing Solutions

TypeScript is not the only project that attempts to tackle the problems associated with weak typing in JavaScript. I cannot claim it is better than any of the other solutions out there, but there were a few factors that made us commit developer time to checking out TypeScript.

  • Ease of migration. As a small company with a reasonably large existing code base, it is difficult to justify and a full port to another language.  Even if development resources were not a problem, a full port would be a big commitment to make before being sure our code was compatible with static typing.  With TypeScript we were able to proceed in steps, gradually merging changes into the mainline as we went along.
  • Complexity. This is not so much the code as configurations.  A subsection of our engine has multiple implementations. In the default case everything runs directly in the browser using HTML5 and related standards. For older browsers with limited support for modern standards we provide a plugin that includes a native implementation of some of our lowest-level libraries. TypeScript provided a clear way to deal with multiple implementations of the same interface, where one of those implementations was hidden away as native code.
  • Timing. There happened to be a lot of news and activity around TypeScript just as we were discussing the shortcomings of JavaScript both internally and with external developers. This had some influence on our decision to try static typing at the time we did, and to do it with TypeScript.

Again, I’m not claiming that TypeScript is the only way to address these issues.  If conditions had been different we may have been tempted by one of the other available solutions. Particularly if we were just starting out with a new code base.

Migration Path

Initially, it was not clear whether TypeScript would be entirely suitable for our project.  Many questions needed answering:  Was it stable?  Was it compatible with how we define and instantiate JavaScript classes?  Was our API and code even amenable to static typing, or had we embraced dynamic typing to the point of no return?

It was important to be able to quickly try it out and catch any show-stopping problems early.  At the time there were relatively few public accounts of TypeScript being used in production, so we could not rule out the possibility of later finding either a bug or language feature that made it impossible for us to proceed.  In the worst case we would need to revert everything back to pure JavaScript.

We were also keen to eliminate any impact on developers in terms of interface and performance.  I was already reasonably sure that we had enough control over the generated JavaScript to avoid sacrificing performance, but it was not clear whether changes to the public API would also be necessary.

Finally, there was the issue of integration.  Development of the engine would have to continue while we simultaneously “ported” the code.  Handling development changes and keeping merge conflicts (and mistakes) to a minimum would be vital until we were confident enough to adopt TypeScript in the main code line.

As TypeScript is a super set of JavaScript, it seemed to offer as smooth a migration path as we could expect from any solution. After becoming reasonably familiar with the language and the compiler we ended up migrating in the following way, at each stage validating that we were doing the right thing.

Step 1 - A trivial build

The first step I took was to simply rename each of our .js files to .ts and create a trivial build step to convert the each of these new .ts files to JavaScript.  The code was left unchanged at this point (apart from a few small workarounds for bugs in the TypeScript compiler), the JavaScript library had the same layout as before and everything could be merged back into the main code line.

The advantage of this apparently trivial step was that regular development could continue while we gradually expanded the type definitions in the same files.  This approach is only really viable because TypeScript extends rather than replaces JavaScript, and it’s actually very important.  If we were porting to a whole new language we would have to hand pick changes to the original files into the ported version, and could only switch development over to the new files once a port was complete and fully tested.  No doubt some static typing solutions allow the port to be done in sections, merging individual modules back to the main line as they are ready, but having an almost effort free way of keeping all changes in the same files meant we could rely on the version control software to handle almost all of the merges automatically.

A secondary advantage of switching to .ts files and introducing a build step was to give developers a chance to iron out any problems with workflow and IDEs.  Previously, no build step was required, and for our developers working on the engine the code that appeared in the browser debugger was the original JavaScript source itself

In practice, for various reasons (including limited available time for the project) we ended up keeping much of the work in a branch for long periods of time.  In hindsight, we could have integrated earlier, but it felt like too big a leap into the unknown at that stage.  Thankfully, git was aware of the file renaming and handled the integrations from the main line extremely well. If the change management and integrations had not been as easy as they were I am quite sure our investigation into static typing would have ended here.

Step 2 - Type checking

As this stage, the build did not catch any errors apart from syntax errors.  The next step was to enable all the type checks. When this type checking build passed we could be more confident about the type-correctness of the code in our engine.

For the simple build I added an —ignoretypeerrors flag to the compiler to make it only output error messages and exit with non-zero values if there was a syntax error in the code.  For the type checking build I had to add —failonerror, which stops the compiler writing output files if there are type errors in the code.  Without this, build systems may not try re-run the compiler during a rebuild after errors have occured.  (The default compiler always outputs a .js file but exits with 1 unless there are no type errors.  Our custom version is available on Github)

In this stricter mode it was no longer possible to blindly build each .ts file into a corresponding .js file. Since some files relied on types declared in other files, the build had to be aware of dependencies between different parts of the code and build everything in the correct order.  As a simple (fictional) example, if the ‘engine’ module references classes in the ‘platform’ module, ‘platform’ must be built (and the ‘platform.d.ts’ file generated) before ‘engine’ can be compiled.

This may seem like an over complicated approach.  Indeed, for many projects it would be possible to just build all .js files in a single step. In our case we were forced to divide up the code in this way for a couple of reasons:

  • Some of the code represented the ‘canvas’ (HMTL5) implementation of the low-level engine that may or may not be replaced by our browser plugin.
  • Building all the .ts files at once would result in a single huge .js file. It is important that our engine remain modular so that game developers can include only the parts that they need and keep the download size of their final code as small as possible.

This stricter build mode is referred to as ‘modular’ in our system, since it allows developers to express the build as modules and dependencies between them. It then resolves the list of .ts and .d.ts files required for each module and handles building everything in the correct order.  As an example of a module specification, the following is an extract from the build files for our SDK:

utilities_src :=

platform_src := platform.ts
platform_deps := utilities

jsengine_src := $(wildcard jsengine/*.ts)
jsengine_deps := platform

From this, the system automatically determines that in order to build jsengine, say, it must generate the type declarations for utilities and platform, and use both of those declaration files in the build command for jsengine.

Step 3 - Adding static type information

After Step 2, we had two builds that could be run side-by-side. A “crude” build that generated the production version of our library (with exactly the same file layout and functionality as the original JavaScript), and a stricter build which would, when it passed, generate .js files and .d.ts declaration files for each module.

Note that the crude build could always be relied upon to produce working JavaScript, so throughout this process all samples and applications could be built, and the generated code could be tested in exactly the same way as before.

As one would expect, the modular build initially failed at a very early stage. I had already added a lot of type information while experimenting with the compiler and adding build steps, but a lot more was required to fix all the compiler errors.  So the next step was to get this stricter build to run without errors.

The plan was to make the modular build pass as soon as possible by adding only the minimal amount of type information.  We could then enable type checks on the build machine and ensure that at least any new code would be consistent with existing type declarations.  Later go back and add more and more type information as time allowed.

It turned out to be a lot of work just to make this build pass, and some of the changes were invasive enough that I decided to keep them out of the main line until the build succeeded.  Potentially this stage could have been achieved by just adding ‘interface’ declarations for each of our classes, and I initially start with this approach. However, I quickly switched to doing wholesale conversions to TypeScript classes.  This generated much better .d.ts files and avoided a few problems with symbols not being found by the compiler.

The compiler may be much more robust now, but at the time everything was more stable using classes in .ts files.  It was something that we would end up doing anyway, and in most cases it was possible to do this without reordering functions within a file, so integrations from the main line remained surprisingly smooth.

The details here may be informative for people who are new to TypeScript, but some may want to skip the remainder of this section.Our original classes took this form:

function MyClass() { };
MyClass.prototype.method = function ()
{
    return this.y;
};
MyClass.create = function()
{
    var myClass = new MyClass();
    myClass.x = 123;
    return myClass;
};

Note that there are two member variables x and y mentioned here. The following is the minimal declarations that will satisfy TypeScript when building the code above:

interface MyClass
{
    x: number;
};
declare var MyClass :
{
    create(): MyClass;
    new(): MyClass;
    prototype: any;
};

(We also needed to make the MyClass constructor function return this.)

The declare statement deals with the global constructor MyClass. Here the static create function and the constructor are declared, as is the existence of the prototype, which at this stage is given type ‘any’ for simplicity. The interface refers to instances of the class. We have had to declare the x member, referenced in the static create function, but not the y member referenced in the method. (This is presumably because the prototype is marked as any and therefore could have any members.)

The advantage of this form is that it can be dropped at the top of the file and does not usually require any changes to the existing body of code. In theory we could just flesh these declarations out as required and keep the TypeScript and old JavaScript separated for the time being. Integrations become trivial and if we decided to move back to JavaScript it would just be a matter of deleting a few lines.

However, the declaration of the global constructor did not make it into the generated .d.ts file, and in some cases TypeScript could not find certain methods or properties when compiling dependent code. This may have been fixed in the latest version of the compiler, but switching to classes was the simplest way to this these problems at the time and made everything much more reliable. The resulting code:

class MyClass
{
    x: number; y: number;
    method()
    {
        return this.y;
    };
    static create()
    {
        var myClass = new MyClass();
        myClass.x = 123;
        return myClass;
    };
};

was a bit more of a commitment in terms of code changes. The main code body has to change slightly, and we now have to declare all members.  However, we have not had to re-order any functions, so comparing with the original it’s clear that most upstream changes can be merged with relatively little hassle. 

So I made the leap to classes for almost all of our code and by the time the modular build finally passed I had made more changes than I had hoped, but a large amount of the final type information was in place and the whole process had revealed several bugs. The next step was to build our application code against the generated declarations to catch any remaining holes in the type information.

Step 3.5 - IDE support

As it became clearer that TypeScript was effective at catching problems and reducing the cost of code maintenance, we started to look more seriously at the logistics of developing our game engine entirely in TypeScript.  Inevitably, the issue of IDE support came up very quickly.

The TypeScript plugin for Visual Studio provides excellent tooling when configured correctly, however our developers work across Windows, Linux and Mac OS X, and use a variety of editors. Editors that provide good support for JavaScript do not always have the same level of support for TypeScript. In many cases TypeScript support is in development for these editors, so we can expect the situation to improve drastically in the future. The TypeScript site has links to integrations for Vim, Emacs and Sublime Text which gives developers a reasonable amount of choice. Our build system can be launched in a syntax checking mode (to builds just enough to validate a given file and output the errors only for that file) which can be used for on-the-fly syntax checking (as with emacs flymake) or for validate-on-save checks.

Debugging is also more difficult with TypeScript since the browser is reading and executing generated code rather than the original source. However the TypeScript compiler can already generate code maps for browsers that support them, so we can expect this situations to improve as well.

So for now there has been a slight decrease in functionality of the development environment for some of our engineers, depending on the editors used, but overall productivity should improve as we have stronger checks much earlier in the development workflow.

Step 4 - Building applications

This part of the process is still going on. We currently have a fairly complete set of .d.ts files that will be shipped with the next version of our SDK, and we are gradually transitioning all of our sample and application code to TypeScript.

It has caught several bugs in the application code, as well as a few missing pieces of the TypeScript declarations. One common problem was optional parameters. A method declared:

method(requiredParam: Type1, optionalParam: Type2): number
{
   ...
};

numberwill not be flagged unless client code tries to call it without the optional parameter. Therefore to actually find many of these issues we must build with as much application and test code as possible.

Now that the our TypeScript declarations are released in the SDK, we hope that developers will try building their games against them and give us feedback.  If everything continues to go well then we certainly plan to migrate more of our projects to TypeScript.

Take a look

If you’d like to take a look at the Turbulenz HTML5 game engine and SDK which contains both the TypeScript and JavaScript APIs you can download the latest version (>= 0.25.0) from the Turbulenz Hub.

Text

Denki Word Quest - now live and seeking literate adventurers

Denki Word Quest - an innovative adventure word game peppered with RPG elements - is now live and seeking literate adventures to play on Turbulenz!

Battle your way through a few levels as the courageous Biblio, taking on the minions of Wordor for free. True adventurers can unlock the full quest for only £3 / €4 / $5 using our super-slick new payment system (powered by Amazon).

Our pals at Eurogamer said it better than we ever could:

“the whole thing’s wonderfully warm-hearted and witty, from the seemingly random quest chatter that sends you on your way to the varieties of monsters - including evil kittens and obdurate boneheads - you’ll meet along the path to victory”

Play Denki Word Quest here!

Text

Turbulenz and Mozilla partner on HTML5 games hackathon

Mozilla and Turbulenz are combining their HTML5 JavaScript expertise to sponsor and run the HTML5 games category at the upcoming Hackathon at Pinewood Studios, gamehack. Rob Hawkes, Mozilla technical evangelist, commenting on the partnership, said “Developers are now looking to technologies like HTML5 and JavaScript for rich, immersive games and we’re making sure that Firefox is ready to support them”.  The prize fund for the category - first prize of £500 plus potential for an additional £2,500 as well as publishing the game online - was also confirmed.

Read More

Text

Turbulenz sponsoring 24-hour GameHack event at Pinewood Studios

Turbulenz, a new HTML5 game technology that brings high quality games to the browser without a plugin, is sponsoring a 24 hour GameHack event on 28th and 29th April in conjunction with TIGA and BlueVia. Turbulenz is specifically sponsoring the HTML5 category and will be awarding a £500 prize, along with a potential further £2,500, to the best retro game re-boot built using Turbulenz technology. 

GameHack provides participants with the opportunity to think creatively and develop an original game under pressure within just 24 hours. Not only is there the chance to win some amazing prizes, but also to network with some of the best developers in the UK games industry. The event is taking place at Pinewood Studios in Buckinghamshire from Saturday morning until Sunday. Free coaches are available to bring participants from Paddington station to Pinewood Studios and food, drink and refreshments are all included throughout the event. There will also be a chill out zone for catching up on some sleep!

Registration is open now and costs just £5, all of which goes to charity.

Follow @turbulenz to keep in touch with the hackathon, and follow @gamehackuk for all the latest information about getting involved.

Photo
Score Rush - Beta from Xona Games
Score Rush, a Gamasutra’s Top 5 indie game and winner of NeoGAF’s Gold award, from Xona Games is now live on Turbulenz. Score Rush revives the feeling of classic shoot em’ ups with mind melting fast-paced gameplay and so many bullets on screen to dodge you’ll wish you had an extra finger.
Matthew Doucette, co-founder of Xona Games said: “Turbulenz gives us the opportunity to quickly and easily bring this game to millions of gamers around the world and reach gamers we previously couldn’t. We’ve had a look under the hood to see what else is coming from Turbulenz, and really wanted to get a game on there.”
We’re excited to announce that Score Rush has been built from the ground up as a HTML5 Canvas application, meaning you can play it without the need for installing the Turbulenz Engine. Compatible browsers (such as Chrome) will run the game with almost no discernible difference. As a bonus, we spent some time optimising our engine so it squeezes every last pixel out of your machine, so you’ll usually get a faster, better experience with it installed.
This is the first release of Score Rush, with more features such as leaderboards, badges and multiplayer support to be added in the coming weeks.

Score Rush - Beta from Xona Games

Score Rush, a Gamasutra’s Top 5 indie game and winner of NeoGAF’s Gold award, from Xona Games is now live on Turbulenz. Score Rush revives the feeling of classic shoot em’ ups with mind melting fast-paced gameplay and so many bullets on screen to dodge you’ll wish you had an extra finger.

Matthew Doucette, co-founder of Xona Games said: “Turbulenz gives us the opportunity to quickly and easily bring this game to millions of gamers around the world and reach gamers we previously couldn’t. We’ve had a look under the hood to see what else is coming from Turbulenz, and really wanted to get a game on there.”

We’re excited to announce that Score Rush has been built from the ground up as a HTML5 Canvas application, meaning you can play it without the need for installing the Turbulenz Engine. Compatible browsers (such as Chrome) will run the game with almost no discernible difference. As a bonus, we spent some time optimising our engine so it squeezes every last pixel out of your machine, so you’ll usually get a faster, better experience with it installed.

This is the first release of Score Rush, with more features such as leaderboards, badges and multiplayer support to be added in the coming weeks.

Photo
Space Ark Updated - Now With More Animals
Do you love animals? Do you love cannons? Do you love biblical stories with a science fiction twist? Do you love web standards? Then you’ll love this month’s update to Space Ark that adds the ability to play as a variety of creatures and use new power-ups such as the cannon. Mission 3 is also now live, with 6 new stages.
We’re excited to announce that this version of Space Ark is a HTML5 Canvas application, meaning you can play it without the need for installing the Turbulenz Engine. Compatible browsers (such as Chrome) will run the game with almost no discernible difference. As a bonus, we spent some time optimising our engine so it squeezes every last pixel out of your machine, so you’ll usually get a faster, better experience with it installed.

Space Ark Updated - Now With More Animals

Do you love animals? Do you love cannons? Do you love biblical stories with a science fiction twist? Do you love web standards? Then you’ll love this month’s update to Space Ark that adds the ability to play as a variety of creatures and use new power-ups such as the cannon. Mission 3 is also now live, with 6 new stages.

We’re excited to announce that this version of Space Ark is a HTML5 Canvas application, meaning you can play it without the need for installing the Turbulenz Engine. Compatible browsers (such as Chrome) will run the game with almost no discernible difference. As a bonus, we spent some time optimising our engine so it squeezes every last pixel out of your machine, so you’ll usually get a faster, better experience with it installed.

Text

No longer a blank Canvas - native HTML5 Support

turbulenz.com now supports HTML5 Canvas, plug-in-less, gaming! We don’t just support it, in fact, we’ve embraced it with loving arms and given it a big hug. We’ve been waiting for web standards to catch up for a few years now, and they’re finally nearly where they need to be for next-generation web gaming. As a result all of our games can now be played natively in browsers that support WebGL such as Chrome, Firefox 10 and Safari (in developer mode). We recommend using Chrome for the best experience at the moment. The Turbulenz Engine has always been an HTML5 JavaScript engine and now the final link in the chain has been completed the game sites supports native HTML5 application deployment.

Read More

Text

UBS features Turbulenz in Internet Sector Update

Check out page 21 of UBS’s Internet Sector Update and you might recognise their tip for the technology sector one-to-watch - Turbulenz. We’re the first company featured by UBS in their new series of young and exciting European based Internet companies.

Guess they must have been impressed by our vision for the future of gaming across any Internet connected device. Because this is exactly what JavaScript and HTML5 are enabling. Powered by many of the advancements in the web application platform over the past few years, we’ve steadily been creating a completely new platform for the creation, distribution and playing of games across any suitable Internet connected device.

Read More

Text

Enter the Turbulenz-sponsored HTML5 App Dev Hackathon at SXSW and win up to $6,000!

Attention Hackers! Enter the Turbulenz-sponsored HTML5 App Dev Hackathon at SXSW and win up to $6,000!

We are really excited to announce our sponsorship of the App Dev Hackathon at SXSW Interactive overnight on March 9-10th. With an up-front prize of $1,000 and a potential further $5,000, Turbulenz is challenging developers to create game demos that combine a great first-pass of classic retro games with some of the powerful social features of the web today. More than 250 developers are expected to be taking part at the event in Austin, Texas, and all will have the opportunity to develop world-class HTML5 apps leveraging the latest Turbulenz technology. There is also the chance of having the game feature on the Turbulenz gaming platform, giving developers the chance to get the game in front of millions of people online.

Read More

Text

Multi-player, Multi-configuration, Multi-ple choices!

This release of the Turbulenz SDK is all about multiplying the possibilities. We’ve spent some time making it easier to develop for different target configurations simultaneously. Using the new makehtml and maketzjs tools you can write code once, create a canvas and a plugin compatible version of your game at the same time.

Now that you can target multiple configurations, why not add multiple players? We’ve introduced a new multi-player match making service. When integrated into your game it automatically pairs players with their friends ensuring that you’re not playing alone when you could be playing together.

There’s a new place for the full set of release notes.

Read More

Text

Turbulenz SDK 0.15.0 now available

A new version of the Turbulenz SDK is now available!

The Turbulenz Team has been busy in the lab cooking up some new features and we’re excited about what the Turbulenz SDK 0.15.0 brings for our developers! This release introduces new Turbulenz Services: ‘Leaderboards’, ‘Badges’ and ‘User Profiles’ to developers. With added support for Firefox 4/5 and Internet Explorer 9, speed improvements and WebGL support, there’s a lot crammed in there, so read on to find out more.

The full release notes are available on Github

Read More