@ChevyRay I think you're really dang good at it to achieve that pace. It takes me like forever and a million years for editor features ;_; (Today)

@infinite_ammo cancel all my meetings that i didn't have. looks like i have other plans for today. (Today)

@infinite_ammo hahahh fuck I dont remember that and I should be all caught up. I must have missed that... (Today)

RT @Draknek: The Stugan deadline is coming up soon and @bnhw and I want to work on a new project there, looking for a 3D artist: t.… (Today)

@infinite_ammo oh god he's slamming the baby in the toilet. it's only a matter of time before he turns his toilet seat into a subwoofer too. (Today)

@infinite_ammo my fav is my upstairs neighbor who slams his toilet seat down also now apparently has a screaming baby in his apartment?? (Today)

@ChevyRay ugggghhhhh I LOVE MAP VIEWS OF THINGS AHHH (Today)

@jwaaaap I don't think you need to be SUPER HARDCORE but you def need platforming skills and the map system can seem kinda brutal at first (Yesterday)

@ChevyRay hi here is my tutorial on regular expressions this is how to verify an email address s/g+.a-Z0-9[]{/gi-?@/f-[a-Z]0-9??/gmail.com (3 days ago)

@TommyRefenes the lengths you'll go to become a metal gear solid boss amaze me (3 days ago)

@shaneneville t.co/9H8F5KlgFA (4 days ago)

@shaneneville well that sounds rad as fuck jfc (4 days ago)

@shaneneville tell me more (tabletop / pen and paper rpg systems are super duper fascinating to me) (4 days ago)

@Fruckert depends on my pace. if I'm working super fast I'll just have a text file in my csproj folder. if I'm slower I'll use trello. (4 days ago)

@ADAMATOMIC I'm not far into this talk yet but do they discuss how most of the costumes make characters look entirely different and incompre (4 days ago)

I'm excited to make games today! *checks task list* Oh right I'm stuck on like 50 bugs I don't know how to solve. (4 days ago)

@ADAMATOMIC just now realizing that I need a giant motivational poster of nasir over my desk at all times (5 days ago)

@obskyr YEAH I was bummed that the Hollow Knight soundtrack turned a bunch of the loops into short songs or arrangements :I (5 days ago)

I humbly request for video game soundtracks to feature more than one loop on the tracks that normally loop in the game~ (ESPECIALLY BOSS TRA (5 days ago)

RT @bitmOO: Hi, I make playful art! :) If you like my work please consider supporting me: 🐮 t.co/dFSRVxbXzf ☕️ t.co/F2hPwao… (5 days ago)

posts dated from: august 2014

2014 - 8 - 30 / 1:29 am / doodle

Doodle Post



Some stuff buried in my notebook!

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);


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

2014 - 8 - 25 / 7:50 pm / doodle

Doodle Post


2x Doodle Combo!

No Comments

2014 - 8 - 25 / 2:37 am / doodle

Doodle Post


No Comments

2014 - 8 - 19 / 5:30 pm / general

Dev Log: Game Jammin

Dev Log: Game Jammin

Over the weekend I went to a local game jam in Phoenix. I haven't jammed since November and this was another cool opportunity to put Otter to the test!

The game isn't quite ready for release, but here are a few screen shots of it for now:





And you can see some of it in motion right here.

This jam I decided that I wanted to really limit myself in terms of art so I could spend more time on more stuff in the game. I wanted to restrict myself to a game boy palette, so my first thought was to go for a shader. I ended up getting a shader up and running really quickly that emulates sort of a game boy look. Here's the shader code:

#version 130
uniform sampler2D texture;
uniform sampler2D palette;
uniform float shift;
uniform float offset;

float rand(vec2 co){
return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);

void main() {
vec2 pixpos = gl_TexCoord[0].xy;
vec4 pixcol = texture2D(texture, pixpos);

float gray = (pixcol.r + pixcol.g + pixcol.b) / 3;

gray = round(gray / 0.25) * 0.25;

gray += (rand(pixpos + offset) * 2 - 1) * 0.03;

pixcol = texture2D(palette, vec2(gray, shift));

gl_FragColor = pixcol * gl_Color;

The shader also does some extra stuff like randomly generates a very faint noise over the entire screen. I couldn't figure out how to make the noise scale with the screen though, so if you are playing with the screen scale at 2x or 4x or whatever the noise will still be every 1 pixel.

The shader also needs a palette to go with it that is passed in through the palette parameter. You can also shift the palette up and down on the texture. Here's the palette file I used:


When the game starts it's using the palette from left to right on the very top of the image. The shift parameter in the shader can be used to read colors from anywhere on the y axis on the image, so if I want to make the game use the blue palette on the bottom I can set the shift to 1. (Texture coordinates are 0 to 1 in shader land.) The shader also reduces the amount of colors with some division and rounding.

The last thing I did to help out with the shader is add a full screen dither texture to the game. This is actually being rendered in the game and not in the shader. It's a very very faint texture of black and white pixels overlaid on the screen at an alpha of 10%. This will add a dithering look between all of the main colors of the palette. This idea was inspired by Dan Fessler's HD Index Painting tutorial. (Actually most of this shader was inspired by that tutorial!)

I think that covers everything with the shader. Hopefully soon I can release the game itself. Just need to fix some bugs and fix some sound issues first. I ended up getting awards in the technical, art, and design categories, and overall I got 2nd place at the jam which is pretty cool!


2014 - 8 - 15 / 12:58 am / doodle

Doodle Post


No Comments



Hi! My name's Kyle, and I make video games most of the time in Denver, Colorado. 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.

blog stuff






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!


Your message has been sent! Thanks :)