Hello everyone. I’ve finally updated again, this time adding a contract game I worked on and that was sponsored back in February, as well as finally updating the Flashplok project page. Check them out via the sidebar or portfolio page!
I’ve also added a PayPal donations button, so if you feel as though you want to help me out (everything helps as I’m a poor freelancer these days!) you can drop me a dollar or two. Thanks!
In other news, I’m working on my third Flash game, due to be finished in the upcoming weeks so there’ll be more news about that as it begins to surface. Music is also going exceptionally well; I recently composed the score to the epic game Castaway 2 which is among the most followed and anticipated RPG Flash games around. I absolutely love composing for RPGs and I’m currently working on the soundtrack for another upcoming RPG in the form of Amiran developed by Zac Linton. Lots of projects are coming up and it’s looking to be a fun and busy month for music and programming alike!
I’ll later be adding some of my more recent music to my music portfolio as well as creating a page specifically outlining the terms of my music contract work so that more people can use my composition services.
ActionScript 3 behaves somewhat differently to C++ or C# in terms of optimisation strategies and performance of code. Little things that you’d naturally assume wouldn’t make a big difference in a language like C++ actually have astonishing performance demolition capabilities in AS3. While on my AS3 learning journey, I spent some time researching optimisation techniques specific to the AS3 language, and I was quite surprised at some of the suggestions I found – so surprised that I didn’t believe a lot of them at first. Things like using Number (similar to a C++ float or double) instead of uint giving clear performance bonuses, and typecasts being more efficient if you force them implicitly rather than explicitly typcasting with such code as int(numberVar).
It turns out some of these optimisation ideas are leftovers from AS2 where things were still very much in the process of becoming more than just a scripting language, but a lot of them actually hold weight and do indeed have a significant impact when they are in a tight loop or a piece of code that has to be highly performant. One of the greatest resources for optimisation strategies in AS3 that i have found is Grant Skinner’s “Optimisation Strategies for Flash” presentation, available here. The big difference between this and the wealth of tips available elsewhere is that this is actually an AS3 app that tests the optimisations suggested at runtime giving you the real results of how the code performs. It really is a little golden guide to keeping your AS3 code performing pretty nicely!
I’ve added the FlashPlok!! project page to the programming portfolio. The bidding is still in progress for FlashPlok!!, so it might be a while before I can put a playable version of the game on the page. At the moment I’ve got the trailer and some extra information on the page, along with a work-in-progress review page that until now was private. I’ll be adding screenshots later. Enjoy!
Over the last month and a half I’ve been working on a Flash (technically FlashDevelop + Flex 3) project to test the waters of FlashGameLicense, a site for selling licenses for your Flash games to sponsors and earn a bit of money from all that hard work (;P). Some may have guessed that I was working on something in AS3 since I started making posts about it a little while ago…
One of the most frustrating things I’ve had to contend with while working with Flex/ActionScript 3 is its somewhat dodgy implicit typecasting. It’d be fine if there were method to its madness, but a lot of code I’ve written that includes some implicit casts has been working fine one minute, then broken for no obvious reason and suddenly a compile later began to work perfectly again. A most annoying and frustrating issue indeed. It is entirely possible, probable even, that it’s simply a problem with the specific version of the Flex compiler I’m using – I’ll explain it anyway though. Here’s an example I’ve been working with over the last 30 minutes, involving my RandomNumber class.
While browsing I happened across this blog post, which I found incredibly interesting. The guy who made it, Simon Gladman, says that he wanted to try generating font characters using random triangles and genetic algorithms, and the result is pretty much awesome. Within a minute or two you can start to see the characters forming, and it doesn’t take long before you see genuine results. The actual application can be directly accessed here.
Recently I’ve been toying with FlashPunk, a lightweight and free open source AS3 game library created by Chevy Ray Johnston. It’s making a very promising start. Throughout using it I’ve been reminded heavily of HGE (which I used for my dissertation ‘Genetic Tower Defense’ project), which is an excellent thing to be able to say. FlashPunk seems to be getting the balance between ease-of-use (it took about 2 days to learn the basic stuff and get myself acquainted enough to make a basic test game, which is about the same as it took for HGE) and features right, and I really hope that it stays like this in future updates.
I’ve updated the programming portfolio with a small demo I made in my second year of University. It was a side project based on my “Sweets” game’s cel shading. I took the code from “Sweets” as a base and worked on improving the cel shading algorithm’s speed – the original idea being to showcase the cel shading from “Sweets” in its own small program. In the end I managed to significantly improve performance as well as adding an improved lighting system that allowed for different coloured lights, as well as multiple light sources and colour mixing. The end result is not really traditional cel shading but still looks pretty cool.
You can find it in the programming portfolio, or at the project page here.
I’ve been hugely busy with my BSc Honours Dissertation over the last 6 months, and have finally finished and added it to the programming portfolio page.
The game, evolution program and source can be downloaded from the Genetic Tower Defense project page. The game is fairly simple to pick up and play, and those interested in the ideas of genetic programming might want to have a play with the evolution program too.
These last few days have been surprisingly hectic. The results of my testing provided some very important last-minute changes that needed to be made to the code. The most important was that the resume support was broken if the application had some form of unexpected quit. We had a 6-hour power outage half way through my 24 hour test runs. Once the power was back, I attempted to resume the process only to find that the serialization data was corrupt and the process could not be resumed. This made perfect sense as I was overwriting the same files each time – I’m glad this happened when it did though, as I’ve been able to rectify the problem by making it alternate the main ‘resume.txt’ file with a backup ‘~resume.txt’ file and serializing classes to a separate file each time. I’ve also made it write the resume data every generation instead of every 50th, as hard drive space isn’t really a premium and the most this will run to is a few gigabytes.