Wednesday, June 24th, 2009
Imagine you’re writing an AIR-based game that uses fullscreen at a rather high resolution and a full-frame rendering engine like, say, PV3D and you find out that AIR can’t really handle this.
After a lot of research it turns out that there seems to be no way in an AIR app to use the GPU mode that is otherwise supported by Flash embedded in HTML via wmodes parameter. In fact the docs state it’s not even supported by AIR …
… Flash Player 10 introduces two window modes, direct and GPU compositing, which you can enable through the publish settings in the Flash authoring tool. These modes are not supported in AIR …
While this is a definitive must for a hopefully soon appearing update there’s another issue with fullscreen modes … AIR doesn’t really feature any decent solution for fullscreen! You can have your app to be either in fullscreen OR in windowed mode but trying to be able to switch between both looks very ugly because the system chrome isn’t being disabled automatically when switching to fullscreen which results in that the window size will simply get maximized. So creating applications where you could let the user switch between fullscreen and windowed mode seems to be impossible at the moment with AIR 1.5.
I can understand that the Flash player on the web needs it’s security restrictions in this regard but AIR should definitely not be touched by this! I hope Adobe will improve this for a future update, AIR is a great platform for (complex) game development but these two issues are serious limitations to that!
Filed under Dev | 1 Comment »
Wednesday, May 6th, 2009
Probably old news but I’ve just found some time to read about the recently released pushbutton engine, a modular ActionScript 3 engine tailored especially for game development. It seems that Jeff Tunnel & Co (of Garage Games fame) were sitting down and wrote some serious ActionScript library overnight.
“…and a component system which lets you easily package game functionality into reusable modules. The component system draws on nearly a decade of game development history…”
This looks very promising indeed and the component structure makes a lot of sense.
I’ve been working on the hexagonLib on and off but time is sparse currently and so it seems I would never get it into a decent release state. I Might as well see how the pb engine works out for me. Let’s see how this engine fits for my current role-playing game project!
Filed under Dev | 16 Comments »
Sunday, April 12th, 2009
I’ve been using Eclipse and FDT for several years now to develop Flash (and Flex) applications but I never really managed to set up Eclipse to exactly fit my needs. Either some desired tools were missing or I installed plug-ins that slowed down Eclipse with a truck load of stuff that I never need.
So today I finally figured out how to install the plug-ins that I really need and nothing else (well … almost nothing else). The following guide describes how you can set up your own custom Eclipse tailored for Flash/Flex development which features FDT plus Subclipse, a HTML, CSS, JavaScript and XML Editor and then some. The CSS Editor becomes especially useful for Flex Stylesheets.
(more…)
Filed under Dev, Random Picks | 32 Comments »
Sunday, April 5th, 2009
Although Alcon version 4 is currently under development I’ve decided to release a small update for Alcon 3, version 3.1 since I’ve received a code signing certificate from Adobe and wanted to keep up with re-releasing the now-signed application on the AIR Market Place.
Besides that Alcon is now code-signed there is exactly one new feature in v3.1 which I called Key Tracer. You can toggle Key Tracing Mode from the Log menu. If you enable it you are able to press any keys and their key code (and if available character code) will be listed in Alcon’s output window which is a useful feature if you want to know the codes for some specific keys quickly.
More features where planned (and already started) like a Search function, Log Level Filtering and even a Calculator but these haven’t made it finished yet into v3 so most of them will come with version 4, which is – yet again – a complete re-write (I do loathe my source code that is over one year old
).
The newest version can as always be found here.
Filed under Dev | No Comments »
Friday, December 5th, 2008
I often browse through code libraries written by others and can’t deny noticing that so many developers are making exaggerated use of the ‘this’ keyword in their code. Today I came across CASAlib an otherwise very neat and certainly helpful library and after roaming through some of the code base it turns out that in most classes they’ve put ‘this’ in front of every single class property.
It seems that many newcomers to ActionScript still don’t understand the use of ‘this’ and that it’s only really necessary in rare cases, for example if a method parameter has the same name like it’s relative class property or in a few scope-related situations. It’s also good to have ‘this’ at hand if a dynamic property of a class needs to be accessed (this["foo"]) but other than that please do all a favor and throw out those unnecessary ‘this’! Ban it, lock it in your basement and don’t let it out unless there’s really a need for it!
Filed under Dev | 21 Comments »
Monday, September 8th, 2008
When writing classes for a framework I usually put a custom toString method into important classes so that debugging becomes easier. Normally they would go like something along the lines of:
override public function toString():String {
return "[ClassName]";
}
… Sometimes adding properties to the returned String that give back information about the class, e.g.
override public function toString():String {
return "[ImageClass, size=" + _size + "]";
}
But writing them rigid like that is a disadvantage when you decide later to refactor class names. Admittedly it’s also not a very elegant way so I got the idea to take the class name that is returned by getQualifiedClassName(). The only problem is that getQualifiedClassName not only provides the type name but also the whole package String of the class. Regular Expressions to the rescue! After twiddling around with them for a while (I’m by no means a RegExp expert) I got my toString method into the shape that I desired:
override public function toString():String {
return "[" + getQualifiedClassName(this).match("[^:]*$")[0] + ", size=" + _size + "]";
}
This way it matches the String returned by getQualifiedClassName with the Regular Expression [^:]*$ which checks from the right end for an arbitrary text up to the first occurring colon, but without including the colon. Taking the first element of the Array returned by match() and you got what you need!
A nice way of using this is when writing abstract classes that contain the toString method and any subclass can use that toString method without the need to override it … that is of course unless you want ot add other output information.
Filed under Dev, Random Picks | 9 Comments »
Monday, August 25th, 2008
It took longer than expected thanks to obstacles like a crashed harddisk and other minorities in between but it’s finally done and I now can announce the immediate availability of Alcon 3! It runs currently on Windows and Mac and hopefully soon on Linux too. When I tested it on Ubuntu it installed and started fine but the LocalConnection seems not to cut it in the current alpha release of the Linux AIR Runtime. Anyone know more details about this?
I recommend to check out the Alcon Page for more details and of course the download link. Enjoy your debugging!
Filed under Dev | 5 Comments »
Thursday, August 21st, 2008
Since so many of you (well, at least four people) are feverishly waiting for the release of Alcon 3 here’s a preview screenshot to comfort your waiting time. The shot shows Alcon’s trace output panel with some bogus Array being traced iteratively and as a hex dump. the top of the window displays Alcon’s new App Monitor which can be used to monitor framerate, frame render time and memory consumption. It also shows the version of the runtime that the monitored application is run in (clicking on the version text will list all System.capabilities properties in the Trace panel).

Then there’s the Options dialog with Trace options opened where you will be able to set font, colors etc. On the File Loggers Options you will be able to optionally enable up to two File Loggers that can be used for example to log the flashlog.txt to see output made by ActionScript’s own trace method.
There’s of course the new Object Inspector and a new Help panel for Quickstart Help and API Docs. Alcon 3 is being written 99% in ActionScript 3 using FDT (the 1% left being the Main.mxml that is necessary to compile a Flex application). It’s only a matter of a few days now until release, some bug fixing, finishing touches and a few more documentation to write and it will be out so please endure!
Filed under Dev | 10 Comments »
Tuesday, December 4th, 2007

In game development randomness is often necessary for certain tasks, be it the random distribution of graphic tiles, a random factor in NPC AI or random stats in a roleplaying game. Especially for the latter purpose the static Dice class provides a set of methods to roll dice as it is common in a Role-playing game, to be exact four-, six-, eight-, ten-, twelve-, twenty-sided and percentile dice.
(more…)
Filed under Dev, Featured, Random Picks | 4 Comments »
Monday, October 15th, 2007
The guys at Powerflasher done a great job! Check out their new FDT 3 at fdt.powerflasher.com. Personally this has become once again my favorite coding tool (after an over one year break with FlexBuilder’s editor). FDT has many features that one would otherwise only find in superior tools like Eclipse’s own Java Development Tool … and these are top notch! FDT is now shipped in three different versions, Basic, Professional and soon an Enterprise version which will add a Debugger, MXML Parser and advanced Refactoring.
I’m especially looking forward to the MXML Parser since in it’s current state FDT only allows for pure ActionScript projects. The MXML Parser would make it possible to add Flex and Adobe AIR projects to the roll.
Filed under Dev | 1 Comment »