@strotchy mostly fun but menu stuff is kinda frustrating to work on sometimes :| (Today)

RT @Livelyivy: Yay, my Gravity Ghost postmortem is now available to watch on the GDC vault! Learn how brought this thing to life: t.… (Today)

Welcome to game development where making menus and ui takes three times longer than making the actual game #livingthedream (Today)

@NoelFB @thegamedesigner @MattRix I play ddr every day and still don't go to sleep until 6am hahah (Today)

@NoelFB Whenever I flip my drawings and try to fix them I just end up making them warped in the opposite direction ;_; (Yesterday)

RT @theBanov: Everyone should probably retweet this tweet, because this game is gonna be baller: t.co/6jJ01UkEI4 (2 days ago)

@TristanParrish I'm 48 and corey is 24 ;D (2 days ago)

@TeddyDief nice p54 ! (2 days ago)

@MattThorson ya rite that probably has 40ms at least B) #Kappa (3 days ago)

oh my god the internet has been on point with otter gifs lately t.co/UIlHgaL0PQ (3 days ago)

RT @CapForeverRemix: Captain Forever Remix is out now! 15% off week-one sale! t.co/J8DOYJ3vN3 t.co/FfOKzrtPs7 (4 days ago)

@gritfish haha awesome! I'm glad it still works (4 days ago)

@TeddyDief he enjoys the finer things in life (4 days ago)

@TeddyDief adult Teddy is like "dude... I just brewed you some fresh coffee lets DO THIS!" and does a backflip (4 days ago)

@dannyBstyle maybe just go by "your majesty" from now on (4 days ago)

@MANvsGAME like a leaf in the wind (5 days ago)

@phubans @supershigi Phuuuuuubaaannns *studio audience laughter* (5 days ago)

@phubans especially after the patch that fixed a bunch of the funky cube collisions (5 days ago)

@phubans one of my favorite games EVER (5 days ago)

@kinifi t.co/XVuKoqYbFC (5 days ago)

follow
search
posts tagged with: game jam

2014 - 11 - 13 / 4:07 pm / general

Super Sky Sisters Timelapse

Super Sky Sisters Timelapse



Make sure to watch it in full 1080p at 60 frames per second, yeah!

The game isn't out yet, but you can watch me make it at hyper speed over the course of 48 hours. The game ended up getting a bunch of awards at the game jam, including second place overall which is pretty cool!

No Comments

2014 - 11 - 12 / 3:20 pm / general

Dev Log: Game Jammin

Dev Log: Game Jammin

Whoops I've totally neglected my blog for the past week or so. I spent last week working on some minor Otter things, as well as getting ready for a local game jam. Then I jammed for 48 hours last weekend!

Image

Image

Here's some shots of what I ended up making:

Image

Image

Image

Image

I also recorded a timelapse, and that'll be coming pretty soon!

3 Comments

2014 - 9 - 12 / 12:49 pm / general

Game Jam Procedural Generation Part III

Game Jam Procedural Generation Part III

In the last episode of Game Jam Procedural Generation I talked a lot about generating the base of the platforming level in Starforger II, and carving out rooms into the ground of the level.

Image

So now we have a basic level that with a bunch of empty rooms below the ground. The next step is going to be connecting those rooms together. To do this I built a quick class called a TunnelSnake (tunnel snakes rule) to dig tunnels from any point on the map to any other point. Here's the full source of that class:

class TunnelSnake {
public int X;
public int Y;
public int Width = 1;
public int Height = 2;

public int EndX;
public int EndY;

int verticalSteps;
int verticalStepMax = 4;
int forceHorizontal = 0;
int forceHDirection = 1;

public TunnelSnake(int x, int y, int endX, int endY) {
X = x;
Y = y;
EndX = endX;
EndY = endY;
}

public void Dig(GridCollider grid) {
while (X != EndX || Y != EndY) {
grid.SetRect(X, Y, Width, Height, false);

if (Rand.Chance(50) || forceHorizontal > 0) {

if (forceHorizontal > 0) {
X += forceHDirection;
Height = 2;
X = (int)Util.Clamp(X, 2, grid.TileColumns - 2);
}
else {
X += Math.Sign(EndX - X);
}

forceHorizontal--;
if (forceHorizontal == 0) {
verticalSteps = 0;
}
}
else {
verticalSteps++;

Y += Math.Sign(EndY - Y);

if (verticalSteps == verticalStepMax) {
forceHorizontal = Rand.Int(3, 15);
forceHDirection = Rand.Sign;
}
}

if (Rand.Chance(50)) {
if (Rand.Chance(50)) {
Width += Rand.Sign;
Width = (int)Util.Clamp(Width, 1, 5);
}
if (Rand.Chance(50)) {
Height += Rand.Sign;
Height = (int)Util.Clamp(Height, 2, 6);
}
}
}
}
}

read more

No Comments

2014 - 9 - 9 / 12:45 am / games

Starforger II

Starforger II

A few weeks ago I went to a local game jam in Phoenix! The them was discovery and I set out to make some kind of space exploration procedural thing. The final result was a game I named Starforger II. There is no Starforger I, but maybe I can make a prequel someday.

Download
Starforger II v1.0 - Windows (92mb)

Whoa what's with the file size? Well this game has a lot of weird sounds in it, and maybe I can figure out how to get them more compressed, but right now they take up a lot of space.

The game uses Enter, X, C, and the arrow keys, or a USB game controller (although the game is designed around the 360 controller, so using one of those would be ideal.)

Screenshots
Image

Image

Image

Image

6 Comments

2014 - 9 - 6 / 2:51 pm / general

Game Jam Procedural Generation Part II

Game Jam Procedural Generation Part II

In the last episode of Game Jam Procedural Generation I talked about the "outer layer" of my procedural generation code for my yet to be released game jam game. After the outer layer of stuff has been generated, that can be used to inform the "inner layer" of the procedural generation. So the outer layer in this case is the galaxy that the player can explore in their ship, and the inner layer is the actual side scrolling platformer level that they will explore.

Image

Where do we even begin? First keep in mind that I'm using Otter for all of this stuff, so if you see functions and code that looks totally unfamiliar, it's probably an Otter thing. Also keep in mind that all of this code was written during a 48 hour game jam, so it ain't pretty. I'm just going to be sharing big snippets of code and hopefully try to explain what is happening in each one.

In the last step I talked about how I create a config object to hold all of the possible fields that will be used to generate the level. Here's what that looks like:

class ScenePlatformingConfig {
public int Width;
public int Height;

public int ShipStartOffset;

public int TreasureDirection;
public int TreasureDistanceOffset;

public int GroundLevelOffset;

public bool Explored;
public bool Pillaged;

public int Jagginess;

public int Platforms;

public int DecaySpots;
public int DecayChance;

public int IslandSpots;
public int IslandSize;

public int Rooms;

public string Name;

public int BreakableChance;

public int CreatureChance;
}


Pretty straight forward. Just a simple class that will hold a bunch of values that can be then passed to the classes that generate the platforming level. read more

No Comments

2014 - 8 - 28 / 4:31 pm / general

Game Jam Procedural Generation Part I

Game Jam Procedural Generation Part I

My latest game jam game still isn't quite ready for release, and unfortunately at this point it will have to wait until after PAX, but I can still share some source code from it that will maybe help people out when it comes to procedurally generating things in their games.

The premise of my jam game is that you play as a space explorer type person who is flying a ship around the galaxy searching for planets with shiny ore on them. When the game starts the entire galaxy is procedurally generated. This is a fancy way in saying that a bunch of random things happen and hopefully it works out.

for (var i = 0; i < 99; i++) {
var size = Rand.Int(8, 64);
planetSupply -= size;
if (planetSupply <= 0) {
size = 8;
}
var x = Rand.Float(Width);
var y = Rand.Float(Height);
var d = new Destination(x, y, size);

Add(d);

while (d.CloseToOtherDestination()) {
d.X = Rand.Float(Width);
d.Y = Rand.Float(Height);
}
}


This is my CreatePlanets() function for the map scene in the game. What this does is just creates 99 planets and places them in the scene at random X and Y coordinates. The map scene has a Width and Height defined earlier in the game (in this case I believe its 5000 x 5000 pixels.)

The scene also has a planetSupply field that is defined earlier. Whenever a planet is generated, its size is subtracted from the planetSupply. If the planetSupply is less or equal to 0, all planets created from that point on will be the smallest possible size. This was to control how many huge planets were created in the scene. read more

No Comments

about

About

Hi there, my name is Kyle, and I'm a kid disguised as a grown up. I'm making video games and living the indie game developer life in Tempe, Arizona. Here you will find my thoughts, games, websites, doodles, and other stuff like that. I worked on Snapshot, Offspring Fling, and a whole bunch of other games. I also created and maintain Otter, a 2d game making framework. If you want to get a hold of me use the form on the bottom of the page, leave a comment, or just tweet at me. I try to post three times a week. Thanks for stoppin' by! You're the coolest.

facebook

videos

Do you want to make a Let's Play of one of my games, or a just a video featuring footage of my games? You have my full permission to do so! Even if you are monetizing your videos, you still have my full permission to use any footage from any of my games. Go for it!

contact

Your message has been sent! Thanks :)
SEND MESSAGE