Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/ianguth/ianguthridge.com/wp-settings.php on line 18

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/ianguth/ianguthridge.com/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/ianguth/ianguthridge.com/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /home/ianguth/ianguthridge.com/wp-includes/comment-template.php on line 0

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /home/ianguth/ianguthridge.com/wp-includes/comment-template.php on line 0

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GoogleSitemapGeneratorLoader::Enable() should not be called statically in /home/ianguth/ianguthridge.com/wp-includes/plugin.php on line 339
Cool Thing | Ian Guthridge.com
Ian Guthridge.com

Tag: cool thing

Celebrate Good Times

by Ian on Oct.09, 2010, under Projects, Sticky Situation

In honor of my gum simulation code breaking the 1500 line mark (and the project breaking the 30,000 line mark), I thought I should share some cool engine test videos I made.

Before you watch them though, I should probably explain a few basics of how the game works. You play a piece of gum that can stick to nearly any surface, harden into a gumball, and blow up into a bubble. In the default sticky mode it can squeeze through any gap and climb around on walls and ceilings. The hardened gumball moves quickly, can bounce, and can crash through obstacles. Lastly, the bubble can, well, float like a bubble!

It doesn’t look like much because textures, backgrounds, foregrounds, and sound effects weren’t in yet… The red boxes are essentially trampolines or springs and the grey boxes are non-stick. This demo basically just shows off a couple of the basic ways to get around.

In sticky mode, the gum is rendered using a 2D version of “meta-balls.” It is essentially a collection of Gaussian textures drawn to a render target then passed through an alpha-test, yielding an “iso-surface.” Creates a nice little skin to the skeleton of 74 springs that make up the gum (no more detail than that… trade secret :P). AND I can render each meta-balls in virtually any [24-bit RGB] color; I use this to give the gum a neat little color swirl.

In the next few examples the sticky gum gets a black outline. The rendering pipeline I designed had space for an additional shader pass for the iso-surfaces, so I wrote a little shader that does a bit of edge detection using a Sobel Operator. No real reason I chose that one, I liked the final look a bit better than say, a Laplacian.

Collisions from textures! Since it is supported by Farseer and I had already made it so that the gum could adhere to any arbitrary geometry, there wasn’t a lot of code needed on my end… for once.

Gum needs to be able to blow up into a bubble right?  This was actually a bit of a pain… I was going to just use a circular collision, like with the gumball, but I wanted it to inflate.  Switching over to SAT instead of Distance Grid for the narrow phase (details here) increased the time the physics step took by about 80-90%.  Sure Distance Grid used more memory, but it was only about 5%, so I’m not worried. ANYHOW!  I could have cached a few collisions and just stepped to the proper collision boundary based on how inflated the gum was.  This just didn’t seem elegant to me; it really seemed like a major cop-out.  So instead I used a similar system to the sticky gum, but instead of using Farseer’s linear springs, I wrote up a much more rigid system.  I wanted the bubble to maintain its “roundness.”  Couple that with the iso-surface rendering code and toss a bit of jitter on the edge points and we have a bubble that looks like it is actually being blown by a fan! Yay procedural animation!

That’s all for now! Check back in the future for more updates about how things are going! Back to work… So much time and so little to do!

Scratch that; Reverse it.

-Ian

  • Share/Bookmark
1 Comment :, , , , more...

Hark a Post!

by Ian on Feb.04, 2010, under Projects

Hey guys,
I participated in the 2010 Global Game Jam this weekend. It was an amazingly unique experience! We had to make a game in under 48 hours themed around deception and either rain, a plain, or Spain. Further we could implement up to 4 “optional” constraints to make things a bit more… interesting. I coded for almost 30 hours straight in Actionscript 3; I spent about half of that time trying to hack the Flixel framework enough to make it work.  I mean, Flixel is a pretty solid system, our game just had a few special needs.

Click to play:

It is a 100% authentic photoshop!

  • Share/Bookmark
Leave a Comment :, , , more...

Coffeebotics

by Ian on Jun.20, 2009, under Uncategorized

Back in my day, we didn’t have these fancy embeddable videos.  We had animated gifs and looping midis and WE HATED EVERY SECOND OF IT.

Yet, today isn’t my day, it’s yours so I’ll share you a glimpse of tomorrow with yesterday’s “Today’s Big Thing”. :

Well, back to work!
-Ian

  • Share/Bookmark
Leave a Comment :, , , , more...

Something to pass the time

by Ian on May.19, 2009, under Image Dump, Links

burning-head

Just in case you needed another little distraction in your life, I found this neat little warning label generator.  I have also been messing around with Flash the last couple of days, and I should have a game or two up on this site soon, so keep a lookout for that. I haven’t forgotten about my other projects, I just have a little more free-time than usual since I am not taking classes this summer. (I am working, but that is still less of a time commitment than classes. lol)  Maybe I’ll actually finish posting all of the other junk I have been meaning to get up here while I am at it!

One more thing. I just found the cable for connecting my camera to my laptop, so I thought I would share two images with you.  

I also got to go see Nightwish in concert last week, and I naively atempted to snap a picture of them performing... It almpost worked.

I also got to go see Nightwish in concert last week, and I naively attempted to snap a picture of them performing... It almost worked.

snc00074

A Maneki Neko (good luck cat) I got from the FIRST robotics team I mentored. I might be unable to help them next year because of other obligations, so they are wishing me luck.

Catch ya later!

-Ian

  • Share/Bookmark
Leave a Comment :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!