Lets face it, developing for lots of different configurations can be a pain. That’s why in this release of the Turbulenz SDK we’ve added functionality to make it easier to check the things you need and not be concerned with the things you don’t. Here are a couple of examples:
Which sound files do I need to load?
The Sound Device has built in checking for supported file formats. It can tell you what a browser supports, saving you from loading megabytes of the wrong file type.
How do I check what version of Turbulenz a user has?
In short, you don’t need to. The new Turbulenz loader takes away the hassle of checking which version a user is running. You request the version of the engine you need and if the user has it, the loader will run it. When on turbulenz.com the site is aware of what the user’s configuration supports and can direct them to the most compatible version of your game. You don’t need to do anything apart from provide the game builds. Cool, huh?
Here are the release notes, available online:
Here is a summary of what is available:
The Turbulenz Loader: Choose an engine, start it up
The Turbulenz Loader will in the future allow users to run games that require different versions of Turbulenz together without even realising. A simple change to how you load the Turbulenz Engine combined with the makehtml template system, means you can throw away your old version checking code in preference of generated code. We hope, this change will mean that upgrading engines will be a seamless process.
Destroy, destroy, destroy
Memory management in a garbage collected language is just as important as in one without it. Instead of waiting for the garbage collector to choose when it wants to release your memory, Turbulenz has added a destroy function to many of our low level interfaces so you can do it when you want. This can be the difference between having a silky smooth 60 frame-per-second game and not. It also means you can keep control of your memory footprint by freeing memory you are no longer using. Destruction can be constructive!
Equal opportunities for Mac developers
There are a few requirements, such as Xcode, needed to develop with the SDK on Mac. We’ve taken on-board your feedback and made the process of install on Macs simpler and more robust, warning you of missing dependencies. The Turbulenz Engine can now be installed by non-admin users in the majority of cases, great for testing on unsuspecting friends and family. Also, running the tools, such as makehtml, is now the same on both Windows and Mac. All you need is “one script to rule them all”.
hub.turbulenz.com is open for business
We’ve decided to open the Turbulenz developer site hub.turbulenz.com to a wider group of developers. You no longer need an invite token to create an account. To get access:
- Visit the registration page
- Fill in your details and “Create New Account”
- Activate your account via your email address
- Start developing
This means that SDKs, support and documentation are open to all. We look forward to seeing your awesome games on the Turbulenz platform. Tell your friends!
But wait there’s more…
There are plenty of other additions we’d like to tell you about, but that’s what the release notes are for. You may be interested in such classics as: a new indexBufferManager, font vertex generation, 2D canvas context support, UserProfile username support, improved fullscreen support and more…
If you have a reference for an issue we promised to resolve i.e. “T1000” have a look for it here:
- T972: Loading of archived sounds in canvas mode fixed for Firefox
- T966: Corrected the value returned by InputDevice.convertToUnicode() for some keys
- Fixes for m43Orthonormalize and v3Cross on MathDevice
- PDF documentation added back to the Windows SDK installer
- Clean up the __tmp_attach directory left by the SDK installer on Mac
- SceneNode.getDisabled always returns a bool
- Wireframe rendering now skips disabled SceneNodes
- Fixed MathDevice.quatTransformVector and VMath.quatTransformVector
- MathDevice.m43Orthonormalize and VMath.m43Orthonormalize correctly provides left-handed vectors instead of right-handed ones.
- InputDevice.isFocused is now a function in both canvas and plugin modes. Games should now call this function to determine if it has focus and hence is able to process input.
- T938: Python can now be installed to a non-default path
You should upgrade if…
- You want to use the new Turbulenz Loader features, such as version checking
- You want to improve your memory management and footprint
- You want to develop canvas 2D games on Turbulenz
- You were having problems with certain maths functions
- You want to install the Turbulenz engine without admin rights on Mac
- You want compatibility fixes for canvas implementations
Make sure you…
Covert your existing loading code over using the Turbulenz Loader. The majority of the work is done for you if you are currently using the default Turbulenz template pages. If you have a custom template you may need to update it. Take a look at the samples and apps to see how you should lay out your start-up code.
Remove previous engine installers on Mac. If you have an older engine installer on Mac, you may require an account with administrator rights to remove it. The installer will detect an older installation and will attempt to remove it for you.
Update your code to make use of the destroy() methods. This will save you memory and encourage smoother performance. Refer to the documentation for details.
Use ‘username’ not ‘displayname’ when loading User Profile information. Usernames are the unique identifiers of users of turbulenz.com. They contain a restricted character set making it easier to add custom fonts to your game and won’t change if the user changes their name in the settings. These should be used to address the user in the future.
Change your scripts to use the new calling convention. The new calling convention for Turbulenz tools is simply “TOOL <ARGS>” instead of “TOOL.py <ARGS>” or “python -m TOOL <ARGS>”.