(Source: xygni)

Most of my time these days goes to my full-time job over at the Raleigh startup, Zift Solutions. It’s a small marketing company with some pretty good funding behind it now, a solid business model, and a great team.
While I don’t wish to go into the tiniest of details, basically we make a software platform consisting of two main pieces which gives hub clients (companies like HP and RedHat) a great way to create syndicated content for a marketing campaign (mailings, micro-sites, ads, etc.) and distribute them to partners (any company that markets/sells HP products for example) in a way that gives the partner an easy way to distribute the content themselves (after some customization and rebranding). It’s a win-win for both sides, promoting both the client and the partner’s brand and increasing sales for everybody.
No I suppose it’s not terribly exciting if you live outside that little business world. Although on the development side I rather enjoy working on the platform. It’s entirely web-based and on one-side in almost entirely Java and on the other (where I spend most of my time these days) in the common mish-mash of PHP and Javascript (AJAX calls abound).
My most recent endeavor of optimizing the database and bringing things into an object-oriented model using PHP has been interesting to say the least, and I’m really excited to see it come together like it’s starting to. I had done very, very little with OO-PHP in the past and never really considered it a potential solution for anything. But especially as it’s been fleshed out in the past few major revisions, there is an incredible power in PHP classes I didn’t expect to find. It’s leading to simplified code and templates all over the application, and load times are decreasing as we move along.
While I’ve got an eye trained on a couple of other big web languages right now (Ruby and HTML5 come to mind), there’s a good chance I’ll be using PHP and OO-PHP a lot more in the future for doing web apps. The fact you can write a PHP app and easily hand the results over to any platform, whether web-based like Facebook or mobile like iOS and Android, is really appealing these days.
I found this old gem still lurking around the ‘nets today. This spaghetti is a glimpse at the Kismet code for Piradical Studio’s Spectral Assault. All of the above is my own personal handiwork.
Unreal Engine has a really great system built-in for handling ambient background music and crossfading into action sequences based on in-game events. Unfortunately as our game was built on Unreal Tournament 3 (this was prior to the release of the Unreal Development Kit), and UT3 is designed around short multiplayer sessions and not large multi-section missions, the background music system is pretty limited to its original inputs.
But that wasn’t quite good enough for me, as I wanted the background and combat music for the player’s ship to be different from the pirate’s ship, and similarly I felt the final boss battle deserves its own music set.
Initial attempts at working alongside the built-in system fell short, and so what came about was many long hours spent building and debugging the above, which is essentially a complete recreation of that system within Kismet. I was quite proud of it to say the least.
Here’s a basic explanation of what’s going on:
I use 6 different tracks, three ambients and three actions. The ambients and the final action are triggered by game events (game start, reaching a certain point in the level, and final cutscene). The final action track is also triggered.
The other two actions are triggered when the player takes damage, which one depending on which ambient is currently playing when hit. It resets to back to the current ambient track after 5 seconds. Taking more damage will reset the counter.
At it’s core all I’ve done is set up a remote event (FadeTracks) to reset CrossFadeMusicTracks whenever it’s triggered. The Music variable holds all the tracks (0-5 in my case), which have a TrackType attached to each (Ambient1, Action1, etc). So whenever FadeTracks is triggered, if the TrackType variable has changed to a different song it fades to the new one.
Looking back I think it’s really rather simple logic at it’s core, it just took a lot of wrestling with Unreal Editor and Kismet to get things working just right.
Good memories!

So a couple months ago I finally sat down and spent some real solid time with Xcode and Objective-C to get myself into developing iPhone apps. Above are the results of one week (and proof of my OCD as I feel compelled to set proper names, custom icons, and custom splash screens even in throw-away tutorial apps for myself).
The first two come straight from the Stanford course for iPhone development, and were a quick exercise in adjusting to Objective-C and Interface Builder. After that I dove right into Cocos2d, and all the apps following those first two were created using it. Starting with two HelloWorld-type tutorials, I followed with a couple more advanced ones from around the net.

Finally, most of that week was spent on MegaD. It’s based off of this game by Ray Wenderlich. I took it and added a MegaMan 2 theme to it, along with a number of new features. It made for a perfect exercise in tackling a lot of the issues you run into with sprite-based game development on the platform, and was a lot of fun as well. Anyway, here is the basic structure of the game:

Maybe I can get a video up of the gameplay sometime. For obvious reasons you won’t be seeing this in the App Store anytime soon. My next iPhone app/game, which will be up for download eventually, is currently in the design phase, and is being worked on with Fairlady Media. We’ll be taking one of their popular IPs and putting it to good use to revive a great old-school Arcade/NES game. More on that soon…
I’m going to expand on some of these at length soon, but first I wanted to give just a taste of some of the big projects that have been taking my time lately.
I’ve got a few other things in the works as well, hopefully I’ll have time to talk about them all soon. Busy busy!
Nope.