The Blog of Ryan Foss

It's a start!

Fireman Run Dynamic Water Spraying Geometry


I built some custom editor extensions in Unity to help me make geometry for use in level creation.

The spraying object’s mesh is generated on the fly with a number of settings. It automatically generates the geometry, assigns UVs and adds additional colliders for game interactions.

Rocket Builder Prototype

This Rocket Builder Prototype is something I’ve been playing with. Inspired by Kerbal Space Program and my kids interest in Bad Piggies’s sandbox mode, I built a quick prototype for testing. When I showed my kids its was a hit, and I’ve never experienced better motivation.


This prototype was built in Unity 3.5 and works on Android, PC and web. I used Unity’s built in physics of rigid bodies and joints for the parts which I think works great.  I’m aware of a number of bugs or strange behavior, and the interface needs work, but it is a prototype after all.

There is still a lot I want to do with this, and my kids have more ideas too. Hopefully I can get back to it in the near future.

If you have any ideas or comments, or a cool design you want to share, send me a note!

Adventure Time Gamemaking Frenzy

Play The Game

Jake in the Land of Falling People is a simple game where you play as Jake the Dog and you have to save people who are falling, as well as keep from being bombed. To do this, you use Jake super strech ability to punch and grab things in the sky.

You can play the game in a browseror on your Android device (download the APK).

When I heard about the Game Making Frenzy with Adventure Time, I mentioned it to my kids, three boys ages 9, 7, and 5. They were very excited. When the jam started, we spent about an hour Saturday morning talking about game design and ideas. The design had a lot of crazy ideas, which I feared I couldn’t program, but the basic idea was pretty good. Having Jake punch things out of the sky was a great idea with lots of potential. Inbitially you were supposed to switch between modes, for punch and grab, but that was unwieldy and confusing. The idea of punching, instead of grabbing, falling people in the sky was funny, but also frustrating. Development took place mostly on Sunday. The boys would run up and scan in a picture of an airplane and bombs and ask me to put it in the game, so I would. And the loop went like that, with me developing other core stuff as we went along.

The game is unfinished, but functions in a complete game loop. There is a lot that I didn’t get to, but I didn’t get a good start until Sunday. The “boss” and “power up” items were not implemented. Sound is missing and very needed. It’s also sometimes confusing as to why you lose the game.

The Unity3D framework was used as the core engine. Code was written in C# using MonoDevelop. Art was drawn on paper, then scanned and edited in Photoshop. Playtesting was done on PC, Web, and with Android on Kindle Fire and a Nexus 7.

There are a few known bugs (mostly showing up in the Android version because of timing and touch inputs), but for the most part the game should function on most resolutions.

I worked with my three sons to make this game.  Instructions are lacking, but quickly its punch the bad stuff, catch the falling people, and don’t die.

Play in your Web Browser

Download the APK for Android

Fireman Run Menu Development

Over the last week I’ve started implementing the menu and interactive buttons into the Fireman Run game. Rather than describe some of those changes, I recorded a quick video to show how my development is going.

Fireman Run is a game I’m developing with a few friends. It’s made in Unity, using C# and primary testing is on Android devices at the moment.

Project: Fireman Run Reveal

This isn’t much of a post I admit, but I’m so overdue and I have to much to say about it that I’m boiling over. So for now, I just want to say that I’m working on a Android mobile game called Fireman Run. It’s a rooftop running game, but with fire, and you can spray to put out fires if necessary.

Automatic Road Geometry Generation in Unity

I’ve had an awesome project at work developing a simulation in Unity3D that builds a test track, a road essentially, right before your eyes.  Technically, we’re using some pretty hefty data, including OpenCRG and Power Spectral Density data as inputs, but I also added a lower weight random algorithm that can make for some roads more appropriate for game play.

In the image above you can see a long length of track that I generated with a few inputs.  Additionally, it creates road rails to help keep the vehicle on the road.  It also creates a simple ditch on each side of the road from a simple profile. Additional options include material selection, which changes the road appearance.

It’s not often that I get to share stuff from work, but this is only a taste of what it can do. The project will eventually be released to the public. Hopefully some day I can share a video of everything it does.

The vehicles are from the Car Tutorial project provided by Unity.

Unity Skyboxes Help

I’m building a simple weather system in a Unity simulation at work and I’m using the supplied Skybox shader along with some of the supplied skybox materials.  The supplied standard asset skyboxes do a good job for part of what I need, but I needed a few more variations.  I decided to use one of their texture sets and make a few quick atmospheric modifications.  As I expected, doing this in Photoshop can come with some problems.  Texture alignment at the edges and corners required special attention, along with the box distortion.

I made this helper image as I worked to remind me of how things should work.

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.


Bleep Menu Prototyping

Interactive Unity Menu System Prototype

This is a quick mockup to demonstrate and test out the level menu system for The Bleeps, a mobile game in development with Battery Powered Games. I added the other menu screens to give a complete experience of the UI flow.  I made it to explore the menu design concepts we’ve been discussing, as well as to communicate some of the ideas better than through explanation.

This level selection concept is different than what I would consider the standard model, where the levels are sequentially earned. The concept for The Bleeps connects levels in a more dynamic and selective way. But, this also comes with a potential problem, since a Next Level button doesn’t really make sense any more. How does it feel for a player to go back to the level select screen?

Hungry Monsters Prototype

While on my recent business trip, I spent my time at the airport and on the plane programming a game concept I’ve been thinking about a lot lately: Hungry Monsters (the first prototype). Fair warning, there is no game play yet, but merely a rapid prototype of the game play elements, specifically the resource management of employees, work stations, ammunition and the actual playing field.

Hungry Monsters is very similar to Plants vs. Zombies, but with my own engineering spin on it. What’s different, at least in my design, is that the player will have to decide how to spend their resources differently by running a bakery to provide the food (the ammunition), as well as place weapons to fend off (feed) the onslaught of hungry monsters. Players will have to decide if they place another muffin shooter, an oven, or another employee for instance.

The prototpye at this stage doesn’t allow the player to do anything yet, but was built to allow me to investigate the idea. Through the Unity Editor I’m able to try different combination of things. Considering this took me about 6 hours (built from scratch in airports and on the flight for a recent business trip) I’m pretty happy with the outcome and excited to move on. Please excuse the Microsoft Paint artwork and simple geometry, it is a first pass prototype!

In the next version I hope to have the basic interactive elements working to allow placement of work stations, workers and weapons. (I need a better word for weapons too!)

Minnetron 10,000 Arcade Viewer

I’ve made a Unity Web Player version of my Arcade Viewer for the Minnetron 10,000 Arcade Cabinet I’ve been building.  My intent was that this would both show how the cabinet goes together (since I built it digitally in Blender first, why not use it?) and to allow others to try out paint job concepts.

To see the “game” click on the image.  You may need to install the Unity Web Player, but it will be worth it!  Or just download the Windows executable.
FYI, the name “Minnetron 10,000″ is a play on the Minnesota nickname “Land of 10,000 Lakes”.

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.