Category Archives: Game Maker

Update to Blender addon for exporting 3D models to GameMaker

blender-addon-update-1_4_5-blender

I spent some time experimenting with my Blender addon and GameMaker’s 3D the other night, and I realized that the models it was creating were not entirely how they should be. It seemed that if you used the option to flip the object’s Y axis on export, which is often necessary because GameMaker and Blender’s world axes are different, then the model’s normals would be flipped.

This wasn’t immediately obvious to me, since the correct orientation of GameMaker’s built-in models has always been kind of ambiguous, in my opinion. After following the code in the manual to make some of the primitive shapes however, I compared the results to what my Blender addon was creating, and came to the conclusion that the output from my addon was not quite correct.

blender-addon-update-1_4_5-gms

So after a lot of tinkering (Python and Blender API are not my strong suits) I believe I’ve finally got the addon updated to export models that are oriented correctly and which should always have correct normals. Additionally, I added a feature which a friend of mine had built into his own version of the addon, which will let you output the model script in an alternative way, to more easily allow you to add it to an existing model in your game.

You can download the updated version of my Blender addon at the original page, which I’ve changed to include the newly updated addon. That will always be the place to go for the most recent version.

Blendering

Some of you might already know this, but back in September of this year, I ended my job at CytoSport, Inc. to pursue other interests. So far, things have been going well for me, and I have been doing a lot of interesting and challenging contract work. Much of that work has been in Blender, software which, at this point last year I’d barely touched. A lot can change in a year though, and as it happens, Blender is now one of my favorite pieces of software. It has completely replaced my ancient copy of trueSpace for 3D development.

Surfbot

I’m still in the process of learning more about Unity for game-making, but in the meantime, one piece of software which I still like to dabble with now and then is GameMaker. Though I never seem to have enough time for personal game-making as I’d like, I still get a kick out of firing up GameMaker: Studio and trying ideas out.

Recently, I’ve been bungling around with GameMaker’s 3D graphics again. I know the program isn’t suited for anything particularly grand when it comes to 3D projects, but I like it nonetheless. One issue I kept running into though was getting my 3D models out of Blender and into my game.

Traditionally (even as described in one of my tutorials) this is a somewhat convoluted process. One would have to make a 3D model, save it to a format one of the many 3D programs / scripts people have written over the years would read, and then use one of those to load the model directly into the game, or more often the case, convert the model to a format GameMaker would understand, and then load that into GameMaker in a separate step.

Along the way, all kinds of odd things had to be done, and the software one chose to use had to suit those needs. UV maps had to be flipped. Models needed to be rotated 90 degrees this way or that. Normals were often lost in translation or reversed. I often found that my models wouldn’t turn out exactly right – somewhere in the process, the numbers describing the locations of the vertices in my models would get rounded off! Worse still, one had to jump through each of these hoops each time a model needed to be updated or added to the game. Slight revisions to geometry or UV map would take a long time to implement. In short, it was not a lot of fun.

So with my recent work in Blender, and my lasting interest in GameMaker, I decided there had to be a better way to do all of this. I searched around for examples of export scripts for Blender, and after finding a suitable starting point and reading a little bit about Python, I cobbled together something that works much better than the convoluted mess I described above – I’ve crafted a nice little export script for exporting 3D objects directly from Blender to GML.

Hover Tank in Blender

It wasn’t a particularly hard project, and I’m sure the script lacks a lot of the finer points that someone who really knows what they are doing might have done, but it works, and I’m happy with it. And I’ll have a link up on the site soon.

Basically, this new script will let you select an object in Blender, triangulated or not, and with about two clicks of the mouse, export it as a text file which contains all the GML code needed to create the model in GameMaker. If one wanted the model to exist externally from GameMaker but still in GameMaker’s native model format (which is very quick to load), it would then be trivial to save the model and from then on, use the new external file.

Hover Tank in GameMaker Studio

A lot of credit for this script is owed to Jeff LaMarche for his work on a script he built for converting Blender models to a suitable format for Objective C / iOS development. I used his script as a template to write my own, and I could not have created this without his as a starting point.

Anyway, I’m going to have to write up a bit more about how to use the script, but I’ll have it online soon. I hope that it makes it easier for people to get quality 3D graphics into their games!

You Still Won’t Make It Screenshots

I just wanted to take a moment to share some screens of the game You Still Won’t Make It, which I am working on with Vetra Games (Uriel Griffin, Jake Almond, and Jesse Venbrux). Development has been slow at times and fast at others, but it’s coming together, and we will hopefully have the game out later this year.

In case you haven’t played the original game (You Probably Won’t Make It), YSWMI is more or less the same type of game: a skill-based platformer where the player simply needs to navigate the character from start to the finish, through a series of increasingly challenging rooms.

Naturally, I’m in charge of the graphics. And though the project is, graphically, a large departure from the original game, I’m happy to say that it’s also a vast improvement. That’s not to say the original graphics were bad – they got the job done – but there was a lot of room for some creativity on that front, and so far, I’m very pleased with how it’s looking.

This is essentially what the game looked like when I got my hands on it some months ago:

And here are a few screenshots from our sequel, which is a work in progress at this point:

Quite different, eh? But still the same (brutal, fun) game underneath all of that.

Though I’m continuing to develop and add new graphics to it, I just recently finished enough to actually have the game play without a bunch of ugly placeholders everywhere, and that’s a great milestone to achieve. We’re looking forward to getting this game out later this year, and hopefully many people out there are looking forward to playing it, too!

Example Added: Path & Textured Vertex

Per the request of one of my Steam buddies, I’ve added the Game Maker GMK file from an old visual demo I’d made to the Examples & Tutorials page.

This example uses paths, textured vertexes,  particles, and a noise overlay to create a slowly changing, relaxing visual based on the Outta Space desktop wallpapers of the same name created by by Philipp Antoni (and available at his website, Infinise Design).  You may find the flowing movement similar to the flowing home background on the PlayStation 3 / PSP as well.

I originally intended to make this into a screensaver, but never got around to finishing it for that purpose.  Still, I think it’s a good example of an abstract visual that can be achieved with Game Maker using a few different effects in tandem.