Serializing Assets: XML vs Binary

I had planned to put up more of a tutorial post on rendering adaptive 2D grids for things like editors and such, since it was something I recently implemented. I got it working in my editor but then when I tried to conjure up a more “simplified” version in Blitzmax without any of the abstractions of a scenegraph, camera, and other numerous things I found I was tripping up over Blitzmax’s own graphics commands O_o....

August 30, 2009 · Alex

Where Does This Piece Go? A Framework To Engine Dilemma

I’m currently working on an editor for the next iteration of Gunstyle on the weekends. I find it’s a nice break from iPhone development and lets me start the week with renewed energy to work on Tilt To Live again. I’m using wxMax to develop the UI for the actual editor. It’s not much at the moment but it’s coming together slowly. The editor code architecture is taking a page from the Unreal engine mentality of having your engine and editor be pretty much one in the same....

August 16, 2009 · Alex

Interpolating 2D Rotations

I’ve had this issue in past 2D games all the time. The ability to interpolate 2D rotations for basic animations for anyone that doesn’t understand quaternions becomes a rather laborious task. I’ve done messy if-then statements to try to catch all the cases where rotation hits the ‘360 to 0’ boundary and it’s always ugly and seemed like there had to be a more mathematically correct way to interpolate a circular value....

July 26, 2009 · Alex

wxMax > MaxGUI

The title of this article says it all. I’m currently working on the next ‘iteration' of Gunstyle with a fellow developer and over the past weekend we were in need of a GUI library to help develop our map editor. In the past maxGUI ‘worked' more or _less…._emphasis on the _less_. The design of maxGUI left me with a bad taste in my mouth. It’s a procedural library that is cobbled together with some weak OO on top that didn’t provide much flexibility (not to mention it wasn’t exactly ‘native' UI on different platforms)....

July 14, 2009 · Alex

Physics, iPhone, and non-sense

It has been a while since my last blog post :(. If you’ve been following my twitter account though you’d know it’s still been a busy last couple of months. I’ve been developing things on several fronts lately. For one, I’ve been busy developing some supporting code to hook Opensteer into C4 in a more seamless matter and work with C4’s constructs in mind. It’s a project related to some school work, which has proven to be challenging and fun....

March 19, 2009 · Alex

Year In Review

I’m finding it hard to believe its almost 2009 already! I guess it’s that time of the year where I start reflecting on my accomplishments and shortcomings. Back in January I had set the goal of completing a commercial game. Well, that never came to fruition for various reasons. It was mainly a conflict in balancing school responsibilities with game development (which at this point in time couldn’t be considered anything but ‘hobby')....

December 15, 2008 · Alex

Farseer.BMX Update (v 1.1)

I was made aware of a serious issue with detecting collisions between TGeom’s recently. While it did not affect anyone who was using the engine and letting the TPhysicsSimulator run and manage collisions and dynamics, anyone who wished to use Farseer.BMX’s collision routines separately by calling TGeom.CollideWithGeometry() ran into issues. The code has since been fixed and updated. Please update your Farseer.BMX module so you can continue using it without this annoying bug....

October 14, 2008 · Alex

September Update

Just wanted to post a quick update on some game development stuff I’ve been working on the past couple of months. Farseer Physics is just one of the few projects I’m working on. By the way, I’m still slowly working on Farseer physics, but don’t expect an update on it for a while. I’ve mainly been giving support to those who are using it through e-mail. So if you’re having issues with it or can’t figure something out let me know and I can help you there. I also figured it was finally time to do some aesthetic work on the site. I like the way it turned out :). All in all, things are doing great but I’m ever so busy! Over the last few months I’ve been neck deep in either Blitzmax, C#, C++, php, or mySQL. ...

September 6, 2008 · Alex

Yummy Digests

I’ve been working on a few projects that require blitzmax and a web-server (php/mysql) to communicate. Along came the need to hash files. This code archive entry was very useful :). I decided to wrap it into an object and add a new method to it. Even though it’s a series of functions I still tend to make types with functions in them to help me organize them (it’s like a cheap way of namespacing). I needed the ability to hash a file using Sha-1 hashing. Seeing that php has a function called sha1_file($pathToFile) I figured I’d implement the equivalent on blitzmax. With this THasher type, I’ve added a SHA1_File(path) function also. Why hash files? There are many reasons to use hashes, but recently I used it to check for file changes. If you’ve ever wanted to find out if some arbitrary file has ‘changed' since the last time you’ve opened it this can prove to be useful. If you save the hash beforehand then recompute the hash now and if they are different, then something’s changed! Some applications of this are: Write a file-updater to quickly find out which new files need to be downloaded. Just comparing hashes would be sufficient in most cases, instead of having to go individually byte-by-byte or traversing the file structure to find a difference. help stop cheating. If you don’t want users changing texture files to gain an advantage or don’t want them ‘mucking' with any other data file. If you check the current hash against a previously approved one and it doesn’t check out then the file has more than likely been tampered with. How Do I Use THasher? If you want to hash a string using SHA-1 then: Local hashedFoo:String = THasher.sha1("Foo") Want to hash a whole file? Then: Local filehash:String = THasher.SHA1*File("someFile.txt") Keep in mind you can hash _any* file, not just text files like in the above example. Anyway, read on for the whole file. With the exception of SHA1_File() I did not write these hashing functions for Blitzmax. They were simply taken from Yan’s very helpful code archives post :). ...

July 19, 2008 · Alex

How to create concave polygons

Yes, yes I know the documentation is lacking at the moment for Farseer.BMX. I’m still working on it on a few fronts. First, I’m trying to do api documentation (bbdoc mostly). Secondly, I’m trying to write tutorials/guides that help show how to use some of farseer’s features. I had hoped that releasing the demo application source code would’ve covered this aspect as the demos cover pretty much each feature, but I guess since the demo source is a bit more complex in design (handling a lot of graphics related mumbo jumbo), the actual ‘needed content' wasn’t particularly easy to find....

June 29, 2008 · Alex