@fucrate @djcoreynolan many combolations, elizagerth. (Today)

@MattThorson y o u k n o w m y v o t e (つ•̀ᴥ•́)つ*:・゚✧ (Today)

@kamihkamih Haven't played Avalon, but to me it feels waaaaaaay better than Resistance. (Today)

Secret Hitler is probably the most fun lying bluffing secret game I've played and you should totes check it out t.co/ESF3nxUlyr (Today)

@kinifi There's a tilemap class and I use ogmo editor for most stuff (Yesterday)

RT @KingOfElks: A kill breakdown of my battle with @zecmo from @tripleboop's tourney last night: t.co/6e5qWjMJBc cc @kylepulver, @M… (Yesterday)

@kertgartner They're all in the area so I'd imagine so (2 days ago)

@floatvoid the hell is wrong with you (2 days ago)

The reason I believe TowerFall is the most amazing game ever made is demonstrated in all of these videos: t.co/kuLitv3OhS (2 days ago)

@benprunty historians will look back at the era of when touchscreens replaced physical keyboards as the biggest blunder of humanity (2 days ago)

RT @kagijouurushi: いい ふーふ の日♪ t.co/n16wnWl8sH (2 days ago)

@Thompson_Kaa @kagijouurushi @eugelng wooooowwwwww amazing * o * (2 days ago)

@KingOfElks @MattThorson I had to go to a social event and missed the end will watch the vods ;_; (2 days ago)

this is seriously the kind of #towerfall I've dreamed of watching since the beginning t.co/maWfYJhetn :o (2 days ago)

@Shin_Hogosha It's a 1v1 tournament! (2 days ago)

some high level #towerfall matches going down: t.co/maWfYJhetn (2 days ago)

@ChevyRay yeesssssssss (3 days ago)

@ChevyRay augh that is so coooool (3 days ago)

@ChevyRay wha da fuek is that some kinda cutscene editing magic whooaaa :O (3 days ago)

@paverson After King of Tokyo you should totes check out King of New York. :O (3 days ago)

posts tagged with: dev log

2015 - 11 - 21 / 9:12 am / general

Dev Log: RPG and YAML Stuff

Dev Log: RPG and YAML Stuff

With the move to Denver pretty much complete I've gotten back into some sort of groove of working on stuff, but I guess my brain must've been pretty scrambled with this sudden weather change because now I'm taking some time to work on a completely different project again!

This is actually a project I've worked on here and there over the past year, but I think I finally have narrowed down some ideas in my head on more of the finer details and that's inspired me to work on it some more.

Without spoiling too much about it: it is some sort of RPG, and it does have some sort of procedural generation element to it. I've been digging into using YAML for the data since I've been looking for something easy to parse and easy to write out. I think the failings of JSON and XML are that it is a giant pain to write out by hand, so YAML seems to be covering that gap quite well.

Here's an example of some of my YAML data:

name: "Bob"
health: 10
money: 5
drop: [null, null, basicattack]
color: ff0000
- Attack 1
- Attack 1
- [Attack 1, Attack 1, Charge]
- Attack 1
- [Flee, Defend]
- Restart

And to parse it in Otter I'm using a library called YamlDotNet. It makes parsing YAML pretty easy but unfortunately it is lacking in documentation and community.

The parsing code for the above data looks like this:

// An enemy class to match the structure of the YAML
public class Enemy : DataObject {
public static string DataPath = Assets.Data.Enemies;

public int Health { get; set; }
public int Money { get; set; }
public List<string> Drop { get; set; }
public List<object> Combat { get; set; }
public string Color { get; set; }
// A method to load the data from the YAML
enemies = Load<Parsed.Enemy>();
// The method to load the data from YAML
static Dictionary<string, T> Load<T>() where T : Parsed.DataObject {
string dataPath = "";
try {
dataPath = (string)Util.GetFieldValue(typeof(T), "DataPath");
catch {
throw new Exception(string.Format("No data path found on type {0}", typeof(T)));

var dict = DD.Yaml.Deserialize<Dictionary<string, T>>(File.ReadAllText(dataPath));
dict.Each((k, v) => {
v.Id = k;
return dict;

Normally I would be using my Google Spreadsheet tools for data, but unfortunately spreadsheets break down at a certain point. When my data starts to need more than just scalar values in each field spreadsheets become a pain to use. Basically if I want an enemy to have a list of attacks to perform on the player I have to enter that list into a single cell of a spreadsheet which just doesn't look or feel good.

More updates on this and hopefully Super Sky Sisters coming soon!

No Comments

2015 - 10 - 22 / 10:49 am / general

Dev Log: Online Ranking

Dev Log: Online Ranking

Whoops I dozed off on my blog for a few days there. I've been working away at Super Sky Sisters trying to add enough stuff to call it a finished, proper game. The next step with that is adding a simple online ranking system!


Right now the way it works is your computer will have a unique id associated with it and you will see how you match up against other high scores from all the other players. Right now in the screenshot above the online scores are all completely random so the graph looks a little nonsensical, but I imagine when the game is actually released and played over time what you'll end up seeing is more of a bell curve instead.

I opted to do this kind of ranking system to try to just tell players generally how they're doing. If you're not in the top 100 scores in the world you'll end up seeing a percentage value instead of a rank. That percentage value is the number of players you're currently ahead of. You also need to reach a certain minimum score (yet to be determined) to post to the ranking system at all.

The computer id thing does mean that if you switch what computer you're playing on you will not keep your ranking. If the game ends up on a system like Steam then I can probably use the steam id of the player, but honestly using a unique id related to the computer is the easiest solution for the player. The player doesn't have to do anything in order to start submitting their time, and everything just happens magically. I still might make a way to transfer your id to another computer though, maybe!

Things are going well even in the midst of life chaos! I had some more ideas to add to boss battles so I might tackle that next.

No Comments

2015 - 10 - 15 / 12:18 pm / general

Dev Log: Sky Sisters Progression

Dev Log: Sky Sisters Progression

Okay so I'm taking a moment to step out of crazy box physics land to go back to polish some things up on Super Sky Sisters. It's been awhile since I've posted about it but it's that weird two player co-op game that I made at a game jam a billion years ago and decided to finish it which took way longer than I thought it would because I'm dumb.

I'm adding some kind of progression system onto it (which I refuse to call a metagame because it's not a metagame stop calling it a metagame already.) I want to make it clear that I'm being a total sell out because I hate progression systems in most games, but it seems like a lot of people want it and a lot of feedback I've received suggests it might be a good idea to add. So here it is.


These are sort of like achievements in the game and represent different challenges. Some include clearing a certain game difficulty or defeating a boss enemy, or scoring a certain amount of points in a single session. These will be used to unlock the special abilities in the game, and the harder difficulty levels.


This is probably just another elaborate way to procrastinate on finishing the player animations which I should've finished like 6 months ago but hey what are you gonna do! I should probably release this game soon ha haaaa.

No Comments

2015 - 9 - 25 / 11:46 am / general

Dev Log: Pushing and Carrying

Dev Log: Pushing and Carrying

I've managed to make a little bit more progress on the platforming front yesterday for pushing and carrying things around.


I had a basic way to push objects pretty similar to how I used to have it set up in Verge, but now with all the fancy features of C# I'm able to do it in a more clean way. My old GML GameMaker code definitely had some if statements that went across the whole code window and more, so hopefully this version ends up being a little bit more organized than that.

So pushing one single block around seems to be working well enough now, but when it comes to big stacks of blocks there might be some problems.


My ideal scenario is that a stack of objects can be carried by another object, and I also want to make it work with pushing objects as well. Objects that can be pushed should always push each other, so a long stack of boxes should be able to be pushed by a moving object, and then after that I can take care of things of how much an object should slow down when pushing and all that good stuff.

On the real life front I am still in the middle of moving chaos, so things are a little weird for me still, but I'm somehow managing to make something work with my laptop at a coffee shop.

No Comments

2015 - 9 - 23 / 6:33 pm / general

Dev Log: Platforming Frustrations!

Dev Log: Platforming Frustrations!

Game development ain't all birthday cakes and flowers as some may have you believe. As I move forward with this platformer game I'm realizing how much I actually don't know about platforming! You might think I know a lot with so many platformers under my belt, but now my ideas are way outpacing my abilities as a programmer.

Right now I'm trying to code this system and I'm making little to no progress even though a lot of code is being written. For example I'm currently working on the structure of how objects will update. The simplest way at first is to have each object go through its platforming operations one at a time in their execution order, but this leads to weird issues down the road. An object higher up in the order will have priority over other objects, and this is not something I want!

My new approach is to have each object update in parallel with one another, one pixel at a time. Each object will calculate its speeds and then buffer them into their remainder. Then a PhysicsHandler object goes through and moves all of the objects one pixel at a time each in parallel. This might not make any sense at all, but it's a set up for objects being able to push one another. For example if two moving objects collide, I want them to collide in the right spot, and I think the only way to do this is to move them one pixel at a time in parallel.

So I'm also working on the ability for objects to push one another. I have a simple box that I want to be pushable, but also solid so that objects can stand on it, and also I want it to be carried by other objects as well... but so far that is presenting a lot of challenges for how I've already coded things. For example I have no idea when I should be registering collisions on the side of a moving object now that objects can be pushed.

My assumption was that when I went to move one pixel to the side I could simply check for a pushable object and push that object to the side... however with the current way I check for surrounding collisions the results are not quite what I want. If an object can both collide with, and push the same object, the push only happens for one or two pixels and then the pushing object believes it's in front of a wall so it no longer moves.

As you can see I've already rambled for a number of paragraphs and I feel I haven't even scratched the surface of what's going on! I've been looking at my old Game Maker games platforming code to see if I can learn anything from my past self, but unfortunately the code leaves a lot to be desired. In Verge I did have boxes working that could be pushed, carried, and stood on, but I didn't cover a lot of corner cases and designed levels around not having huge bugs appear. I'm totally sick of designing levels around bugs though and I want to do this right! Unfortunately that means I'm driving myself insane as I try to handle all the possibilities I can imagine with this platforming engine.

I'm not feeling super great and I feel like everything sucks right now, but I guess I'll keep working on stuff and hope I can figure out small bits of it at a time.

No Comments

2015 - 9 - 19 / 4:38 pm / general

Dev Log: Shoots and Ladders

Dev Log: Shoots and Ladders

I'm continuing on my journey of focusing on my little platformer prototype and ignoring all of my other projects for the time being. I'm still having fun with it, and it's what I've been working on when I set up in coffee shops around the Phoenix area. I'm still in the middle of moving so I've just been working on my laptop. I no longer have access to four monitors for the time being, but maybe that's a good thing?


I've been poking around with adding ladders to the potential game idea. I like the idea of ladders that can bring the player (or any platformer object) through solids. I don't think I see ladders in many platformers and I'm starting to see why as I try to code these things. I thought it would be pretty straight forward but it's a little bit more tricky than I thought.

Having ladders that can pass an object through solids can create a way to totally separate different spaces of a level which I like, the only problem is the weird edge cases that appear because of those rules. I have ladders mostly working now, but if a moving solid interacts with the player currently on a ladder then some pretty messed up stuff happens. I still have to figure out what's going to happen in that case.


Another thing to consider is moving ladders! Which might make things a little crazy. Right now all of my platforming objects operate independently, but I might move to an approach that involves a manager object that controls the order of execution of certain events. For example having all moving solids, moving ladders, etc, do their thing first might make things way easier. Also having objects check for neighboring objects all at the same time before and after movement would be more ideal than each object just moving and checking in its execution order.

That's it for now. Back to work! I have to catch up on some things I've been neglecting for this project, whoops.

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