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.
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.
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.
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!
A lot of other Game Maker-related events have happened since I last blogged, as well.
New Admins
Another big development over the last few months is that I am now an admin at the Game Maker Community forum.
Following the sudden retirement of longtime community leader KC LC, the GMC needed admins. Chronic, who was pretty much the sole active admin after KC LC's retirement, needed help. Xot and I talked with YoYo Games' Kirsty Scott about this, and within a few days we were given promotions. We've both previously served as global moderators, and earlier, simply moderators. And I'd also like to think that we both bring something fresh to the community's leadership.
I guess it all sounds a bit silly when you write it out. But I am happy to be a part of the community, and glad that YoYo Games trusts many of us enough to help guide the forum into the future.
Game Maker on PSP & iOS
Speaking of the future, a lot more information has come to light recently (and over the period of time where I didn't update the blog) on the continued development of Game Maker's runner.
The PSP runner wasn't as impressive to me, simply because I knew that even if they did work out all the kinks, it would never truly be easy to release GM-made games on the platform. There are simply too many hoops to jump through. For that reason alone, the iOS runner seems much more promising to me. I hope that I might get a chance to help push out some games for it early on, depending on how YoYo Games plans on publishing user-created content.
I still hate saying "iOS" out loud though. Eye-oh-ess. Does not roll off the tongue.
Oh, and I've also been really happy with all the information Mike Dailly (YYG) has been posting on his blog about the development of upcoming Game Maker releases. It's been a good read, and I like that someone so experienced is heading up that project.
Discovery Competition Entry is Go. Er... No.
A much smaller blip on the radar was the Discovery Competition entry me and some buddies (Matt "Lethalanvas" Griffin and David Perritte) were working on. It took off at tremendous pace, and then we all got a little too busy and we stopped working on it.
Originally, we wanted to keep it a secret, so there wouldn't be much hype about it if we didn't finish (good thing, right?), but now I figure we might as well show off what we've done.
Basically, it's a game about a ninja assassin type guy who's lost his memory and who wants to stop the world from collapsing around him. It features a robust platform engine, coupled a ton of slick animations by yours truly, which lets you run, slide, grapple ledges, swing from ceilings, and eventually a lot more. The gist of it was to create a story-driven platforming experience that gave players a lot of difference challenges at once, so they could work on levels in whatever order they liked, to an extent, depending on their skill level.
If we can all find the time, I wouldn't mind working on it again sometime next year, actually. We all put a lot of work into it, and although there isn't much to do in the game right now, there is a lot of stuff that we have done, including a written story, an awesome platforming engine, some killer graphics and animation, and some cool tunes. I don't want to see it go to waste.
I'll try to get a demo or something up eventually. Like I said, we don't have much of the actual gameplay hammered out yet, but it's fun to play around with.
I went home this weekend to check on my dad, and to give my mom my tax papers (she lovingly does them for me). I had fun hanging out with them and my brother, and got to spend a good bit of time finishing up reading Lord of the Rings and exploring DC in Fallout 3. I got back to my apartment late in the afternoon on Sunday, helped my girlfriend clean up the place a bit, and got ready for the week.
When I was home, I noticed that my brother had gotten a piece of mail about attending GDC 2009 (he went with me last year). My mail has been delayed by a couple of days lately because of my change of address a few months ago, so not yet having received this piece of mail, I was curious. The flyer turned out to be a small poster with one side covered by a huge GDC 2009 image, and the other a collection of information on the upcoming conference, with promises of a discount for early registration.
The deadline for this reduction? February 12. Only 4 days away!
So now I find myself waiting for my mail to come in (so I can get my early registration discount code), and trying to decide if I want to attend this year. I had a good time checking out the expo floor last year, so I'd definitely like to do that again. It was fun seeing all the new technology different companies had to offer, as well as seeing all the creative indie games on display.
But do I really want to spend $175, especially since I can only attend one day (I have a job, after all)? Decisions, decisions.
Anyone else planning on going? Know of something (or someone) that'll be at the conference that'll make it totally worth going? Let me know while I decide!
October is drawing to a close, and I'm questioning the future of my newest project, as far as its status as a YYG Competition #4 entry is concerned.
I'll be the first to admit that this is not an entirely unexpected outcome - my project was a bit ambitious. I still want to complete it someday, as I think the game concept is a good one, and I really liked the way the game was turning out. Unfortunately, with my trips to Vegas and BlizzCon, and lots of my free time being spent with my girlfriend as we search for a place to live together, I've not been able to devote the necessary time to Game Maker, and I don't want to be stuck trying to rush the game out, since it is still going to require a lot of artwork and programming.
Not all is lost, however.
A few days ago I came up with a decent idea for a smaller game, and if I have the time, I'll throw it together for the competition.
Since only a handful of people got a chance to play the other game, I'll post a demo here later for anyone who's interested in trying it out. It's nothing more than a driving engine with some simple collisions currently, but as I mentioned, I would like to expand on it eventually.
The whole year of 2008 has been like this for me, actually. I've begun (and continued) many projects, including the site update for Reflect, a new version of the Reflect system itself, a few games, and some paintings; disappointingly, hardly any of it has gotten finished. I suspect that much of it has to do with my limited time for personal projects, an issue that's been troubling me for quite a while now.
I don't blame most of my day-to-day obligations, however - I enjoy spending time with my girlfriend very much, and I waste a lot of time playing games and surfing the web to wind down, which is absolutely necessary to my continued sanity.
Other things though, like my daily commute, are increasingly annoying to me - I lose almost two and a half hours per day just driving to and from work. It's quite frustrating that, as a creative person, I have such sparing time for actually being creative.
Ugh. I hate that feeling I get when I have a project I've worked very hard on, but which I won't be able to finish for now. It's all part of the process, I know, but that doesn't make it taste any less bitter.
Anyway, I'll be posting updates on my competition #4 work as (and if) it progresses. Thanks to everyone who has supported me in my work thus far, and thanks for reading the blog! I shall find the time to finish some of my projects - it just takes time!
This weekend was a much-needed break from all the stuff that's been going on lately. We got a nice bit of rain on Friday night, and my girlfriend and I spent that night and all of Saturday watching movies and lounging around. I would have liked for the cloudy weather to last a little longer, but the Friday rain left Saturday feeling cool and fresh, if not gray.
So now I've finally seen Baby Mama, which was hilarious, and Iron Man, which was also good. I also saw bits and pieces of 27 Dresses, a movie my girlfriend picked out, as I bounced back and forth between my computer and the TV. It had its moments.
The rest of my weekend was spent at an indoor soccer game, doing laundry, working on achievements for Grand Theft Auto 4, and throwing down some retro gaming on my newly acquired GameCube.
Amidst all that fun stuff, I also found some time to do some work on my YYG Competition #4 entry. The car you saw in the last post now has textured tires, I've made some preliminary tree textures, and I am working on a layout for the area you can drive around in for the activities in the game.
Graphically, I want to see the game look bright, clean and open. Since most of the gameplay will be driving the car around the yard (what I'm calling the open, drivable area) and a racetrack of sorts, I think it's important that the graphics are bright and clear, and fun to look at. Sound will also play a large role in bringing the world to life, but I won't be adding that until much later in the design process.
I believe I mentioned this in my last post about the comp, but as far as control goes, the car in the game is mostly finished. It's able to go forward, backward, brake, turn left and right (at greater degrees depending on speed), and use a simple e-brake for making tighter turns. I've got collisions in the game now as well, so the car can bump up against walls... It's basic, but I'm afraid I don't have time to program anything too advanced as far as collision physics go. I might refine what I have a little later on to make them a bit smoother, but for now what's in there works. The only thing I may tweak as far as the collisions go is upping the scale of the game by two, so that I can use more precise sprites for collisions. This shouldn't be noticeable on the graphics end, thanks to the nature of 3D.
Most of the work I am focusing on now is conceptual - I know where I want to take the game, but I need to envision what the world should look like, and how the interactive areas will play out. I have a look in mind for the area decor, but translating a painting of a scene in your mind to working, interesting 3D can take some time and thought. I'll probably be working on maps later on tonight - perhaps I'll post one when I'm finished.
Also on the table is a little bit of character design, as I'm going to have the few characters in the game be represented as simple cartoon-style characters, hopefully to strike a good balance between something a little realistic (the driving portion) and a little more inviting (in menus, interacting with NPC's, etc.).
So yeah - lots of work to do. Plenty of time to do it. I'll continue posting my progress as the game gets built. Thanks for reading!