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.
A very interesting little app, indeed!
FlashPunk Logo is ©2009 Paul Veer
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.
Rock Band is a game I’ve been playing for a long time – about a year. Actually, I’ve been playing Rock Band 2 mostly, but since I’ve moved I only brought Rock Band with me and have gotten back into it. For those of us who’ve been living under a rock or are otherwise uninformed, Rock Band is technically a casual party game involving the use of pretend instruments to form a pretend band and do a pretend tour around the world. The available instruments are guitars (standard and bass, both play the same), drums and vocals. Having been a fan of Guitar Hero for a while I’m pretty experienced with the guitar gameplay, so my primary interest for the last year has been the drums; an instrument I’ve had relatively little experience playing over the years but one I’m extremely interested in. The thing that makes Rock Band great is the escapism that comes with playing it; for the few minutes you’re mid-song you can actually believe you’re playing these instruments for real, and as silly as it seems, this makes you want to play it more and more as you improve.
The first thing I’ll admit is that I’m not normally a big fan of First-Person Shooters… Very rarely do they manage to keep me interested, especially when they have no unique or defining qualities. Most of the major FPS IPs are ones I have very little interest in including but not limited to Unreal, Call of Duty, Quake and Far Cry. However, if there’s one games company that anybody who’s anybody seems to love, it’s Valve. I’m no exception; although I haven’t found the time to play through all of Half Life and I don’t play Team Fortress 2 that much, there’s an undeniable quality about the games they make that is only seldom seen these days. Now that the obligatory introduction is over, I’ll say this – Valve + Zombies = Fun.

Having played and greatly enjoyed Persona 3, Persona 4 has been on my radar for some time. Reviews of the game have praised it as being significantly better than the 3rd game, particularly referencing the fact that some of the original problems I found with Persona 3 have been addressed; mainly the inability to control the party members other than the main character. This bodes well for the game as Persona 3 with these fixes would’ve made an absolutely stellar game. The thing that took me by surprise is that Persona 4 seems to be so much more than just a fixed Persona 3 – the characters are excellently developed, the dialogue captivating and the game mechanics polished to a mirror shine. Where Persona 3 was a great game but fell short on a few counts, Persona 4 is one of the strongest offerings of the RPG genre.
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.
