It’s been a while since we did a release. To be precise the last release was in October ’12. The reason for this delay is we were implementing so many other things that weren’t planned in this release and the most users were using the nightlies (which is very stable) via the setup tool. Anyway 0.6 is now released and you might think, “What?! 0.6, I thought it was 2.56” and “Shouldn’t it at least be 1.0 or higher?!”. Uhmm yeah…we never mentioned what the current version of flixel-gdx is. In the class FlxG and window title you see flixel-gdx v2.56. This number is based on the version of Flixel Community. Since we got the nightly build and we didn’t do any stable release users might be confused what version they actually were using. About 0.6, the previous release was flixel-android 0.5 hosted at Google Code. We simply bumped a digit up and we never thought about making it 1.0. But let’s have a look at the noticeable changes we made.
This has been on our list for some time. This wasn’t an easy one to get it done. After we got the libgdx’s Reflection API implemented there were still a lot of bugs that needs to be iron out. Finally the most demos working fine and it can be seen on this page. This platform uses GWT which can be a frustration to get things working and the performance is not better than the standard JS implementation.
Libgdx uses RoboVM as the official iOS solution. Previously they used Xamarin, but it got bugged by each new release of Xamarin and the performance wasn’t great either. Many developers have already released their games via RoboVM. For flixel, we only created the project files and tested it on a borrowed Mac Mini. It has been tested on a real device and it runs superb. Currently it’s not added in the build.xml, so there will be no jars generated. You can find more info about this over here.
If you’ve been using the nightlies you’ve seen there is a flash package. This contains replicas of Flash’s classes. We have moved the most libgdx references from the core and it looks much cleaner.
OpenGL ES 2.0 support
GLES20 could be turned on in the config, but it was never utilized in the engine unless you want do textures with the size that is not power by 2. After implementing GLES20 a new door opens. You can do a lot more now which couldn’t be done with the fixed pipeline of GLES10. We now support shaders, a lot of new blend modes and distance field font.
Other noticeable changes
- Flixel Community fixes
- Controller support
- Gesture support
- FlxUI Components
- FlxBox2D stable
Bug fixes and improvements
Of course we also fixed a lot bugs, improved existing API and added a lot of new features. Here’s the full change log, which you can also view it in our repository.
- based on Flixel Community v2.56.
- applied fixes from Flixel Community v2.56: https://github.com/FlixelCommunity/flixel/blob/master/CHANGELOG.md
- added iOS support via RoboVM.
- added HTML5 support via GWT.
- added build.xml, automatically build jars.
- added fetch.xml, pulls 3rd party libraries.
- added custom chars support for FreeType font generator.
- added pitch in FlxSound.
- fixed FlxTilemap.findPath() array size error.
- added Distance Field Font support.
- fixed EventDispatcher can now handle firings of an event inside other firings correctly.
- fixed music and sound restarts after losing focus and refocusing.
- fixed FlxText.getAlignment().
- added custom mouse cursor.
- added replica of Flash classes.
- added GdxStage, moved libgdx specific things out of FlxGame.
- added ShaderLoader that managed the context when it is lost.
- added BlendModeGL20, blends that can only be done in GLES20.
- added shader support.
- fixed jittery camera movement on tilemaps.
- added justPressedAny() and justReleasedAny().
- added support for bitmap fonts (.fnt) in FlxText.
- added rotated texture region support.
- added Controller plugin.
- fixed camera shake being applied at the wrong time
- fixed cameras not repositioning correctly after scaling.
- removed FlxObjectPool in favour of libgdx Pool.
- added gesture support.
- added FlxUI components: checkbox, dialogbox, input textfield, textarea, ninepatch, radiobutton, switch, and tab.
- fixed prevent crash when showing soundtray.
- replaced reflection by Reflection API of libgdx.
- added resolution filre resolver in FlxAssetManager.
- updated FlxTilemap, now uses the new API of libgdx.
- updated FlxG.playMusic with optional arguments. You can now set repeat.
- fixed prevent crash when FlxText is given a null alignment.
- updated textures now automatically converted to power of two.
- uses libgdx AssetManager.
- updated scale support in FlxText.
- updated alpha support for shadow in FlxText.
- fixed FlxText not being drawn when using alignment.
- updated FlxText for custom shadow position.
- added dragzone in FlxAnalog.
- added support for loading single images for quick testing.
- added tween plugin.
- added option for GLES20 support.
- removed FlxBox2D from core.
Remove OpenGL ES 1.0
Libgdx has decided to drop OpenGL ES 1.0. We will remove any references of GLES10 in flixel-gdx after this release. If you are using GLES10 in your project, you might want to try to upgrade or stay at this stable release. This will be our last stable release with GLES10 and there will be no further support for GLES10 from now on.
In this release there is a bug that hasn’t been fixed. It‘s about multiple camera. As far as we know it only happens on Android. The bug occurs when you resume your game (if you minimized your game and come back again). The glScissor (which does the clipping) stops working the graphics will go out of the bound. This has been fixed in some later nightlies of libgdx, but the GLES10 was already removed. If you are planning to use multiple cameras, you should update your project once we update to the latest libgdx nightly.
What will you benefit from GLES20 you may wonder, nothing big actually, unless you want to work with shaders. For us, the API will be simplified (the GL10 references will be removed). There will be a blog post once this is done.
Future plans for 0.7
I got some plans that I’d like to work on for the next release. You see this list, it’s from FlixelCommunity. I’m part of it and I’ve to work on that as well. It will have benefits for flixel-gdx and there are more developers working on the same thing. Anyway, here is a list of features I’d like to see in the next release:
- Moving classes to different folders.
- Plugin system improvement.
- Better collisions with slopes (this will be easier than Box2D).
- Blending coordinates support.
- Network (WiFi and BlueTooth).
- White space trims support (maybe).
- Add-ons repository.
- Spine support (maybe).
- and many more…
I’ve no date settled to start working on any of these. I got a new job which is 133 km from my home. I’ve decided to move to a friend for a couple of months. I will have to leave my PC behind. It means I can’t work on new features, but I’ll try to fix bugs when they are reported.
See you next time.