The Blog of Ryan Foss

It's a start!

Global Game Jam

I can’t believe I let this go without mention, but man I’ve been busy!  I have so much to say and reflect on it overwhelms me to think about it.

The Global Game Jam 2012 is one such event.  Way back in January I spent 48 hours making a game and it was awesome.  Of that 48 hours, I slept four!   The result was a game we called “Boogie Fling”.  It was developed in Unity, and you can play the web version here: Boogie Fling

Much credit has to go to Ty Burks for most of the art and Tori Kamal for the hilarious sounds and music.

The Game Jam was awesome and the local IGDA group had an outstanding attendance with over 27 participants on 11 teams!  It was awesome fun to jam with so many cool and interesting people.


Blocks that Fall in Unity

If you’ve been to the IGDA Twin Cities meetings, or have seen any of the videos (here and here) where I presented the idea of collaborative game developing, you know that the group is off and running.  We’re moving forward with a Mr. Driller inspired climbing game of block destruction.

We’ve done a lot of development over the two months we’ve been at it.  However, at the last meeting a number of bugs showed up during the live demo.  Due to certain circumstances (my laptop fell to ground and quit working) I ran the game demo on a netbook.  Although the game still played well, a number of bugs appeared more often than in my play testing, probably related to framerate and physics calculations.

As a game developer, something I’ve always wanted to do was program a Tetris clone.  Why?  Well, because although its simple, its also a good exercise in programming for a novice game programmer.  Alas, its also one of those things I’ve never done (but always think about).  Given the troubles we’re experiencing with the existing block falling code in the game, I decided it was time to take a crack at it.

Three Riker Picard

I made this last night for the IGDA Twin Cities Podcast Episode 9, titled Three Riker Picard.  Listen to it if you want to hear how this idea came to be.

Lady Killer T-Shirt Design

Check out “Three Wolf Moon” on Amazon if you don’t know what it is to see the inspiration for this work of art!

Arcade cabinet in action

I’m getting ready for the IGDA meeting. I’m presenting again, this time with props.

IGDA Twin Cities Podcast #8

We’ve published another IGDA Twin Cities podcast.  We had some recording problems, but its still full of interesting conversation.

I presented at IGDA Twin Cities

I presented at this month’s IGDA Twin Cities meeting.  I want to find others with similar interests in Arcade machines and video games and see if we can start something.  I would love to see a Winnitron in MN, and I’d love to make a game for it.

Anyway, check out my presentation.  I was awesome like usual.

Arcade Games and Independent Games on the Winnitron.

E3 2011

I love E3, its so much fun to see happen.  A combination of what they say and how they say it.

It was a great subject for the IGDA Twin cities podcast, though I only said half of what’s on my mind.  We talk E3 at great length, covering everything from Microsoft’s Kinect boner, to Sony’s apology and Nintendo’s new console.  Check it out.

Podcasting, Episode 5

Perhaps we were a little crude, but it was fun.  We had a guest on too.  Check to listen to the podcast, or check it out the on iTunes.

Another podcast published

Portal 2 consumes me… but I managed to find the time to record a IGDA Twin Cities Podcast and talk about Portal 2.

Check or on iTunes to listen to the podcast.

Rolling Average Smoothing

At the IGDA Twin Cities meeting in March, the lead developer for Just Jam, Matt Heinzen, mentioned using rolling averages to do animation. This caught my attention, since it was a perfect phrase for a trick I have used a number of times in my programming. I thought I’d take a shot at explaining it here since I did a horrible job on the IGDATC Podcast.

A rolling average is also known as a moving average along with a few other cute names. Wikipedia does a good job explaining it in that Wikipedia way. You know, the equation way with complicated, but accurate, descriptions. I say a rolling average is just a way to take the average of a select part of data set. For example, in the last 7 days, I’ve averaged 0.6 cans of Mt. Dew a day. If, tomorrow, I don’t consume any Mt. Dew, my 7 day average will go down.

So how does this help in programming? For me, its usually a matter of convenience. You may have binary data and you want to smooth it out some for instance. To really smooth it out you may want to be aware of your time step, acceleration/deceleration, velocity, motion time, time into motion. Maybe even more. With a rolling average all you need is a target value.

Lets say you’ve got an arrow and you want to have it point somewhere. You don’t want to have super control over the animation of the arrow like I mention above, you simply want to tell it to point up or point down. However, it would be nice if the arrow rotation had some motion.

Let’s set up this example. There is an arrow pointing up, lets call that 0 degrees. Now at some moment you want to say point down, rotating 180 degrees. If all you do is say at one moment your 0 degrees, and the next moment your 180, there is no animation. Let’s use rolling average to smooth it out. All we need to know is the target rotation angle, which in this example is either 0 or 180, and the current angle. We need to pick a period, which in the Mt. Dew example was 7 days. In a typical game, and in most cases I’ve designed, they end up depending on the frame rate, lets not concern ourselves with that at the moment and pick a period of 10.

rolling average rotation = ((current angle) * 9 + (target angle) * 1) / 10

With that example, the first frame after the target angle is changed from 0 to 180, the rolling average will calculate it to be as follows.

rolling average rotation = ((0 degrees) * 9 + (180 degrees) * 1) / 10
rolling average rotation = 18 degrees

That is to say instead of it immediately snapping to 180 degrees, the first frame after its told to go to 180 degrees it rotates to 18 degrees. The next frame would look like this:

rolling average rotation = ((18 degrees) * 9 + (180 degrees) * 1) / 10
rolling average rotation = 34.2

And continuing on.

To help illustrate this I’ve made a little XNA program.  You can either download it and give it a try (no guarantees), or watch this video.

IGDA Twin Cities Podcast #2, Velcro

The second episode of the IGDATC poscast is published.  We talked about video games, mobile gaming devices, IGDA’s impact on the Twin Cities, last month’s meeting recap (Dead Space 2, Technical Artist Sandra Voelker) and upcoming events.

Check IGDATC.ORG to listen to the podcast, or check it out the on iTunes.

IGDA Twin Cities Podast Live on iTunes

I’m the host of the IGDA Twin Cities podcast and you can find it on iTunes now.  That is all.

IGDA Twin Cities Podcast Link on iTunes

IGDA Twin Cities Dead Space 2 Presentation Video

I’m recording the IGDA Twin Cities meetings. You can see the presentations in HD video! Well, the link is HD, but I’m cheating. Take a look and you’ll see.

I’m spoiled with my YouTube account. I hadn’t realized how lucky I was to have signed up when I did. The QuantumPetshop Youtube channel is granfathered in from back when they had Director accounts. I can upload videos longer than 15 minutes, which takes a act of YouTube gods to change otherwise.

I Host a Podcast

I’ve started podasting for the IGDA Twin Cities.  It’s a blast!  We should be publishing once a month.

You can check the IGDATC.ORG website for the podcast, or check it out the Podcast Link on iTunes

Android Art

I’ve been really busy lately with work, school, family and side projects. Here’s one of those side projects I’m working on.

I’ve started working with Battery Powered Games, a local android developer I met through IGDA. We’re making a FPS sort of game. The images above is a WIP of level two, a castle level.

I’m limited to around 1000 triangles and two textures. One texture, a 1024×1024 image is the diffuse and the other is a light map, only 512×512 at maximum quality.

I’m having a lot of fun working on this stuff.

IGDA Treat, Big John Games

Last night the Twin Cities chapter of the IGDA (Indiependent Game Developers Association) had local game developer Big John Games present their story, experience and insight regarding game development, in general and as it relates to the Nintendo DS and other consoles, and even local development. It was an incredible meeting. This is the sort of thing that really makes IGDA worth it.

Big John Games is a pretty cool company, one I’m really excited to see located in Minnesota. Perhaps that changes my impression of their games, so take that with a grain of salt.

Ken, the founder of the company (named after his dad, Big John) and his brother Don worked on the IP Spitfire Heroes, a World War II air combat arcade type flight sim game. Interestingly, Don is a published author of young fiction, aimed at boys 5-9 old. When I first heard that the DS game was based off a book (or related to a book in some way), I thought it would be stale. Knowing the DS’s limitations (via the experience I’ve had playing the games on it), I had a hard time imagining how you could capture a book into a DS game. What I realized after meeting Ken and Don is that the books aren’t historical, they’re fun. I was lucky enough to get a signed copy of Dawson’s Down, which I’ve already started reading to my boys.

Big John Games also has another release, Plushees. Last time I checked I wasn’t a 9 year old girl, so it doesn’t appeal to my gaming tastes. But what does appeal to me about it is that its a local developer making games for kids. I’m going to pick it up for my niece as an alternative to Tigerz.

I learned that the Nintendo DS has three engines, one 3D and two 2D. In the 3D engine, you can have a max of about 2000 polygons, with very limited texture space. One of their artists said he had to convert his 8000 poly model down to 196 poly with a 128×128 texture. I call that a challenge, a fun challenge!

I got a chance to play Spitfire Heroes and my first thought was that the first level is too hard. Your first objective is to defeat 12 tanks and there are three enemy planes trying to stop you. I tried about 6 times and eventually completed the level, but really failed due to the grading system (took too long, inaccurate, etc.) I was slightly frustrated with it that way, but I agree with their designer when he said they didn’t want the game to be too easy either. He said he cringed when he saw someone playing and crashing into the tanks, which is exactly what I did about 10 times. In the end, I’m going to buy this game, regardless of the metacritic score. Both because I want to support them, and because I want to play it more.

IGDA meeting, March

After a couple days of sick in my house, I managed to drag myself to work on Thursday. Luckily the kids got medicine and showed drastic improvements. Amazing what a shot of Amoxicilon in the morning and before bed can do.

Anyway, feeling better, I went to another IGDA meeting and it was awesome. Ham in the Fridge, a local Flash production house that does work for Target Corp. and some online flash apps and games. They talked about Fairway to Hell, a game built for Adult Swim. Their presentation was inspiring and very eye opening to the process, and cost, of developing a game. A game that if I had seen it otherwise, I would think would be an easy effort. I was wrong of course, my naivety of the design process.

Up to…

Not much really. Back to work after the big break. With XMas and New Year’s I was able to pull off 11 day vacation with only 3 vacation days, so totally worth it.

I don’t think I mentioned it before, but I got my grade for my class, an A as I expected. My next class, a intro to programming in C++ starts on the 7th so that should be exciting.

Me and a co-worker went to the local IGDA meeting last night and it was really interesting and fun. Now if I can just get him interested in making a game with me…

Now playing: Mario Galaxy, Call of Duty 3, Puzzle Quest and Dual Strike with a little Brain Age too. Playing too much.