October 21st, 2008 by torncanvas
The third Iowa Indie Game Jam was a great success! It was held this weekend October 17-19 in Cedar Falls at the apartment of Andres Reinot, an 8monkey Labs co-founder. He hosted an artist from Phantom EFX, several hobbyists and ISU students from Ames, four members of our company Intuition Games, and some friends and co-workers who stopped by just to wish us well or participate for a brief period here and there. Unfortunately, there was no internet access at the apartment, so this is a recap (it could probably be seen as a blessing in disguise :P).

This time there was a specific theme, which was “2d vs 3d.” The goal was to decide on a concept and make interpretations of the concept in both 2d and 3d. Most of us showed up on Friday night, socialized for a bit, got a sneak peek of the graphically-impressive Darkest of Days, and started brainstorming. The concept we came up with was exploring what it’s like to fly and be sensitive to wind patterns through the mechanics of grasshopper flight. You’re a grasshopper, and you can jump, fly/glide for a brief period, free fall, or dive bomb. You travel throughout a world and must deal with changing wind patterns in different areas of the sky. Joe made a really fun joke about how the player could be searching for a female grasshopper, and when he found her, he’d say “nice legs.” It went over well enough that everyone agreed the project would be named Nice Legs. That’s our Joe!

Brainstorming on an HDTV was nice.
The 3d team - composed of Andres from 8monkey Labs, Paul from Phantom EFX, and Ken from ISU - were going to use 8monkey’s Marmoset Engine and its tools as a foundation from which to build the game. The 2d team - composed of Joe, Mike, Greg and myself (Josh) from Intuition - were going to use Box2D, Joe’s partially-developed tile engine, and Flash as a foundation. Kira from ISU was going to illustrate a grasshopper, which could be used by both teams if need be.

The 3d team presided in the living room to the right. The 2d team was in the kitchen at left. Pictured at center holding the laptop is Mike Holtan. He joined us for a large part of the game jam working on his own version of the concept, which was a one-on-one grasshopper jousting game using physics based on actual grasshopper anatomy (think Toribash with grasshoppers and jousting). He was using the game to teach himself Box2D and Flash.
We split up into our teams and got to work. It was fascinating to see how each team went in their own direction. The 3d team, headed by Andres, went in a more flight simulator route by focusing on realistic flight physics and tuning the controls to an Xbox 360 gamepad. The 2d team went in a more platformer route by getting the tile engine up and running, and focusing on creating sections of the sky that acted as wind patterns.

Here’s Mike, who’s birthday was Oct. 6, enjoying some belated birthday cake. Thanks to my wife for making me enough cake that I’d have leftovers to share with Mike.
The end result of our game jam was two sandboxes in which we could explore the mechanics of our game, and both seemed to provide some good promise that a fun game could be made out of them. Neither team was able to complete a finished game, but everyone seemed pretty inspired to keep working on the projects after the weekend was over. Thanks to Andres for hosting us!
In the next post, I’ll upload some screenshots of the 2d and 3d version of Nice Legs and go into more detail about each one. In the meantime, feel free to head to the iowa indie game jam photo page to see the other photos.
August 15th, 2007 by fucrate

Bit o’the old update fer you fine folken. I been workin’ on PP:AFAA and, by extension, Melba Toast pretty good the past couple days, and boy oh boy is she startin to come ’round. I s’pose it’s been a long while since muh last post, so I reckon I start at the beginnin.
Separating your timestep from your framerate!
I found a good post on gaffers blog about physics and fixing the timestep to ensure stable and consistant physics. Previously I had thought that using a delta time variable would ensure correct integration of physical movement in my physics simulation, but not only is that not enough but I was using the most horrible integration algorithm possible as well as allowing for wild fluctuations in the delta time variable. Gaffer has a two parter, here’s the second part, on physics simulation.
The first part is all about using RK4 integration to figure out f=ma, I didn’t take the time to really understand the algorithm because apparently I’m a bloody idiot and think Euler is fine enough for PP:AFAA. Also integration scares me. The second part details a simple method to ensure the delta time variable used in your physics simulation is the same regardless of the actual framerate. Put simply, you wait until a minimum amount of time has passed, for me its 10ms, until ticking the simulation. If more than 10ms passes during one frame, then tick the physics simulation as many times as you have to in order to “catch up”. Its bloody simple and increased the consistency of the prof’s movements considerably. And no need for scary integration. I’m still using Euler mostly because its faster than RK4, and when I have more time I’ll implement both and see if the increased accuracy is really worth the performance hit.
Vector Art All Around!
Yeah, there was some discussion about using raster or vector art for the assets in Flash, I was thinking that bitmaps would be faster than vector arts and after doing some simple tests trying to display about 3000 PP:AFAA boats in vector or bitmap of multiple sizes and small bitmaps did prove to render faster than vector stuff. It was a difference of about 10 fps, and in return we got boats and a professor which look like dogshit when rotated. In short I’ve decided to go vector for everything which is gonna work out great for scaling, rotating all all that fun stuff. I was even thinking today about dynamic zooming and got all excited. Not sure how that’ll fit in with the tile management system, but damn it would be cool.
Sweet Console Command Stuff
Spent a bit of time today with my console, trying to figure out how to do console variables for in game tweaking. The end result? Now I not only have the “fps” command, but you can set the prof’s accleration variable with the command “porpAccl=X”. Also I fit in a command history thing so you can cycle through all the commands you did throughout the current game.
I was trying to find a good way to register console variables and the best I could come up with was to create a new child class of Console, PorpConsole specifically for PP:AFAA which has a reference to the prof object and then I hardcoded the parsing for the “porpAccl” command and the variable it changes on the prof. This isn’t so cool, what I originally wanted was to give the base Console object a dynamic list of handles and function calls which could be registered at run time, this way each object which needed a console variable or some other kind of console functionality could just register it remotely and this could be turned on or off from each object individually. The way I have it now, all the commands and their functions are controlled set right in the parse function of the PorpConsole class, its all centralized and crappy.
Also Splashing
He splashes when he gets in the water. Neat.
And I drew some clouds. they are pretty.
-mike out