Thanks everyone :3 (Today)

Successfully defended my title at the humble #towerfall invitational now I can stop feeling like I'm gonna barf (Today)

@BitteWenden99 I can take a look soon. At gdc this week so kinda busy (Today)

@GreyAlien miss you ;_; (Today)

RT @MattThorson: "It's actually really hot playing in this dinosaur costume." -@theBanov #RIP (Yesterday)

@maxticket nah in a house with a bunch of peoples (Yesterday)

@rabbit_nabokov not really. I'm at gdc this week so I won't be online much (2 days ago)

@maxticket last year's flight we took off and had to go back to the airport because the windshield blew open in the cockpit. (2 days ago)

@kaylasara yeah last year after we took off whoops (2 days ago)

I made it to San Francisco without the airplanes windshield blowing open this time #blessed #unbreakable (2 days ago)

@kinifi just landed at sfo :) (2 days ago)

@celsiusgs I got delayed in Chicago once because it was so cold the planes plumbing froze solid. :I (2 days ago)

@UllCon @AmericanAir noooooooooo (2 days ago)

@UllCon environment string issues? (3 days ago)

so wait were the llamas controlled by twitch chat or (4 days ago)

@kertgartner @ADAMATOMIC hdjdidudhsbsjeirhruwhwbe83h28wgsbsnskowowhsneje872gwbk (4 days ago)

@MattThorson "Tournaments make me too nervous" (5 days ago)

@Data01 yeah saw this awhile ago, captures the genesis game vibe pretty well but I never got around to trying it (5 days ago)

RT @infinite_ammo: Gonna be possibly looking to pick up some more contract work after GDC. Music and/or Code. <3 (5 days ago)

@kertgartner how is your computer even running (5 days ago)

follow
search
posts tagged with: gamedev

2015 - 2 - 3 / 10:34 am / general

Dev Log: Super Sky Sisters Remake

Dev Log: Super Sky Sisters Remake

I'm back on Super Sky Sisters for the time being to try and make a finished game out of it as soon as possible. I'm supposed to be showing it at Indie Amigos on Thursday so hopefully I can get a new build ready! I'm also trying to get it ready for Game Developers Conference.

I'm working on some new assets:

Image

And getting some of the new HUD working:

Image

And of course spending a lot of time making sure the wings look exactly right:

Image

Going to try to jam on it as much as possible today and tomorrow to see if I can have the new version playable for Thursday!

4 Comments

2015 - 1 - 23 / 1:21 am / general

Dev Log: Event Queues Everywhere

Dev Log: Event Queues Everywhere

I've been working on a little prototype involving turn based combat. I'm not quite 100% ready to dive back into Stratoforce yet, and I had this idea gnawing at me and I just have to get it out of my system. What exactly is the idea? Well I can't say what it is yet, but if it works out then I'll talk more about it!

Since it is based around turn based combat I had to figure out how exactly that works. I'm so used to programming things that happen all in real time that suddenly going into a turn based game makes absolutely no sense to my brain. At first I had these huge state machines that were incredibly clunky, then I transformed it all into events that can be placed into a magical event queue.

Here's a simple class that can be dropped into Otter that is an event queue manager. It was whipped up very quickly so there might be some slight issues to debug. Check it out:

/// <summary>
/// A Component to manage and process queue of events
/// </summary>
class EventQueue : Component {

public List<EventQueueEvent> Events = new List<EventQueueEvent>();
public EventQueueEvent CurrentEvent { get; private set; }

bool isFreshEvent = true;

public EventQueue() {

}

public bool HasEvents {
get {
return Events.Count > 0;
}
}

public void Add(params EventQueueEvent[] evt) {
Events.AddRange(evt);
}

public void Push(params EventQueueEvent[] evt) {
Events.InsertRange(0, evt);
}


public override void Update() {
base.Update();

if (CurrentEvent == null) {
NextEvent();
}

while (CurrentEvent != null) {
if (isFreshEvent) {
isFreshEvent = false;
CurrentEvent.EventQueue = this;
CurrentEvent.Start();
CurrentEvent.Enter();
}

CurrentEvent.Update();
CurrentEvent.Timer++;

if (CurrentEvent.IsFinished) {
isFreshEvent = true;
CurrentEvent.Exit();
CurrentEvent.EventQueue = null;
Events.Remove(CurrentEvent);
NextEvent();
}
else {
break;
}
}

}

void NextEvent() {
if (Events.Count > 0) {
CurrentEvent = Events[0];
}
else {
CurrentEvent = null;
}
}
}

class EventQueueEvent {

public EventQueue EventQueue;
public int Timer = 0;
public bool IsFinished { get; private set; }

public void Start() {
IsFinished = false;
Timer = 0;
}

public virtual void Enter() {

}

public virtual void Update() {

}

public virtual void Exit() {

}

public void Finish() {
IsFinished = true;
}
}


This is sort of similar to just a very simple behavior tree (see Kodo for more advanced stuff!) Basically what happens is there's a list of events that all need to be run. The current event is run during the Update, and if it's finished then it's removed and now the next one starts up. You can both Add and Push events into the Queue. Push will insert an event at index zero so it will be the next thing to run. To make events just make classes that extend EventQueueEvent!

So I have events like "Damage" "ActorDefeated" "ChooseTarget" "TakeActions" and more. It becomes very easy to manage when things are broken up into separate classes like this! This is actually also giving me ideas on how to run cutscenes in more real time action type games as well. Maybe it will be of some use to you!

No Comments

2015 - 1 - 21 / 2:34 pm / general

Dev Log: Productivity Experiements

Dev Log: Productivity Experiements

When the new year came about I was determined to break my cycle of endless procrastination loops. I find that my productivity is tied to my mood, and my mood is tied to my productivity, so when things are going great in either one of those then it's awesome, but if one of those drops then it's kind of a self reinforcing downward spiral into the abyss. It's not impossible to break out of it, but it is really really difficult.

When I got back from my holiday season travels the very first thing I did on my main workstation computer was completely block reddit. I'm using a website blocking extension for Chrome that will just straight up block the site entirely. Reddit is a big problem for my procrastination. When facing a super hard problem I could either sit down spend a lot of time trying to solve it... or maybe open a browser and type "r" and suddenly an hour has gone by.

I've blocked reddit before, but not as hard. Usually my previous reddit blocks have just been totally mental. I would catch myself starting to type in reddit and then divert to something else, but this time I wanted to try a more all out approach. Also I can still browse it on my phone which I still do sometimes before bed, but having it blocked on my computer I should be doing work on feels different.

In similar fashion I've also limited my Twitter and Facebook time on my computer to one hour every 24 hours. Other sites are included in this time limit but it's mostly the big T and F. I actually don't think Twitter and Facebook are that much of a problem for me, but it is nice to have a hard limit on it per day, and even just having that limit does make me mindful of how much time I'm actually spending on those sites. For limiting time on sites I'm using the Chrome extension StayFocusd. I think I've only ever hit the hour limit once, but there are some times where working on various projects does involve Facebook and Twitter usage.

Blocking and restricting sites on my computer felt weird at first. I thought "well if I do this won't I just immediately find ways around my own restrictions?" As time goes on though the restrictions feel more like a part of my routine. Since I only have an hour of Twitter and Facebook I spend very little time on those sites now, and the time I do spend on there is very focused and brief. I haven't really felt a need to go to reddit lately, and I feel like I might just be better off without it. If I really really want to browse it I can use my phone which is a separate entity from my work computer.

The last thing for now is toggl which I've mentioned before. It's a simple time tracking application which can also be downloaded as a desktop program. I have a couple of different work categories such as game dev, drawing, blog, misc tasks, and I put exercise on there to track that as well. So far it's been working out pretty well and I am interested to see the results of it after a month or so. It is useful to see how much time was actually spent on certain things during the day.

I'm not holding myself to any sort of requirements through the day. Right now I just work on stuff as much as I feel like I can. Between drawing, game dev, and other stuff I'm logging about 4.5 to 5 hours of productivity a day which seems pretty decent.

As a continue to experiment with productivity I'll be sure to talk more about the results. Right now things are going pretty well with a weird prototype. It's getting me back into the groove of coding which I'm hoping will transfer back to my current projects like Super Sky Sisters and Stratoforce.

2 Comments

2015 - 1 - 3 / 3:00 pm / general

2014: A Pretty Weird Year Part V

2014: A Pretty Weird Year Part V

2014 is now totally done. As I mentioned in my posts before this it felt like a pretty weird year overall. Usually at the end of the year I feel like I have some sort of body of work to show for it, but this year felt like I didn't really accomplish much. I mean when I look back at it all I really released as a finished thing was Dan Adelman's site, and Starforger, which was a little game jam game from back in August.

Warning: This post is pretty dang long and has some rambly sections. Proceed at your own risk! (There aren't any pictures.) read more

2 Comments

2014 - 12 - 30 / 8:25 am / general

2014: A Pretty Weird Year Part IV

2014: A Pretty Weird Year Part IV

The year is coming to a close... it feels like it just started!

October
October started out as a huge month for Otter with the addition of the polygon collider!

Image

Polygon collisions were yet another thing that I never thought I'd be able to figure out, but finally after all these years the separated axis theorem finally made sense to me... or at least it made enough sense for me to code. I don't think I still fully understand the mathematics behind it other than it's kind of like casting a shadow of the polygons and seeing if the shadows overlap.

Another big thing that was alluding me was a basic skeleton system for entities in Otter.

Image

Something I want to do in Stratoforce is make enemies out of individual pieces that all can be interacted with. Sure there are tools like Spine and Spriter but I couldn't really figure out how to wrangle those tools into giving me a bunch of individual objects instead of just one sprite with some collider data.

Image

I continued on with making enemies that can form a snake, and then a snake made out of entity skeletons.

Image

I'm pretty excited about how I can use this to make huge stuff in my games, but I still have to clean up the API a little bit to have it make more sense. I tried to use it at a game jam, but it turned out a little more complicated than I thought so I need some more practice and refinement with it.

Meanwhile in shader town I was able to get a color grading shader implemented with Otter and that's yet another thing that has been alluding me for a long time.

Image

This is something I've wanted to get working ever since I started trying to use shaders with Otter, and finally I understood what the secret ingredient was: a 3d texture! I never understood how it worked until one day I sat down and everything clicked.

October was pretty awesome in terms of unlocking a lot of things in my brain that I never thought I'd understand or be able to do.

November
November is the beginning of the holiday season which also tends to be bad for productivity for me, but maybe it didn't turn out as bad as I thought it was going to.

First I released a more cleaned up version of my palette index shader for all of the GLSL people of the world to use.

Image

Then came along another Phoenix 48 hour game jam that was cosponsored by Xamarin. This was an awesome game jam and I made a cool (yet to be released) two player co-op game.

Image

I also recorded my screen for the whole thing and released a time lapse of the entire production of the game during the 48 hours:



I also spent some time this month on some productivity booster tools. I noticed some points of friction during the game jam, so I wanted to address those. One of my biggest slow downs is getting assets imported into the game, so I wrote a tool that will parse a directory of files and generate a .cs file with references to all of the files.

I wrote one of these before for Actionscript, so this one is a C# version of that. I also got it hooked into Visual Studio as a keyboard shortcut so whenever I change any files in my assets folder I just hit the keyboard shortcut and my class is immediately updated and now my auto complete knows all the paths to all of my assets.

Along with that I pushed some big updates to Otter and started on some cool stuff like bitmap font support and started to change some of the core logic with how entities are added to scenes and how components are added to entities.

Later that month I started on a clean version of my game jam game from earlier. I wanted to rewrite the game from scratch because the game jam code became really terrible and I also wanted to use this as an opportunity to try a very intense component based game architecture on a small project.

I also started working on a board game with some folks in Phoenix and that's been pretty fun so far.

December
I started December with a big breakthrough with Photoshop animations!

Image
It turns out using the video timeline with a video group of layers is the best thing ever because it actually makes sense and it lets you use onion skinning.

I spent a lot of time working on more board game stuff with my friends in Phoenix.

Image

We're trying to make a truly engaging co-op only game inspired by some co-op games that we've tried over the past year. So many games are all about co-op play until you get to a certain point where it's then one player vs. the rest of the players, or co-op play but there are individual scores leading to players making decisions that will screw other players over.

I'm sure I'll have more to say when the game has progressed further as right now it's still in the early prototype and play test stages.

The rest of December was pretty weird because I got kinda trapped in a pit of crazy anxiety. Currently I'm sitting in my mom's house in upstate New York which means I had to travel and fly to get here. For whatever reason this particular trip gave me terrible anxiety. For about two weeks leading up to the flight I was feeling pretty awful and riddled with depression and panic attacks. Yahoo.

I think I might be reaching the point where I'll actually have to do something about my mental issues, but first I'll see how the rest of my time in New York goes, and how my flight back to Phoenix ends up being. I really tend to bounce back and forth with being totally okay with flying to feeling overwhelmed with panic about it.

So now I'm wrapping up 2014 by writing these blog posts about 2014.

--

It seems like these three months were pretty productive! October and November especially which I'm surprised about November. October seemed to be an incredibly huge month for me as I tackled so many things that I thought I would never be able to figure out. Maybe I have been making progress after all! The final next part will be more of my thoughts on the year now that the recap is totally finished. Stay tuned!

4 Comments

2014 - 12 - 30 / 7:16 am / general

2014: A Pretty Weird Year Part III

2014: A Pretty Weird Year Part III

The recap train keeps movin'!

July
July was a pretty busy month for me outside of the world of game development. It started with the annual trip to EVO to watch the world championships of fighting games (although a lot of tournaments seem to be popping up lately calling themselves the world championship of fighting games.)

Spending some time in Las Vegas is usually a terrible idea, but EVO makes it somewhat tolerable, and seeing a bunch of cool indie game developer friends makes it very tolerable. I think I played a solid 5 hours of Street Fighter IV with my training partner Adam in our suite.

I did manage to get some work done as I tried to tackle an overworld map for Stratoforce.

Image

And I worked on getting an enemy HUD up and running.

Image

This is also the month when I broke my relatively brand new Xbox 360 controller with the fancy d-pad. I ended up using that as an excuse to take the controller and customize it with a bunch of cool parts from the internet.

Image

Toward the end of the month I took a trip back to my home town in upstate New York to visit my friends and family from the area. Traveling is always pretty exhausting for me and I don't really get a lot of work done when I'm spending every night in a different place and I don't really have a super solid work station, or even desk set up.

August
August I was back in the desert and able to work more on some various projects including Dan Adelman's website.

Image

I finished the site sometime in August and it launched at the same time Dan officially announced he was no longer with Nintendo. He made some pretty big waves in the press which was pretty cool. I ended up using tumblr as the content management system for the site and that turned out to be a great decision as it makes things like hosting and maintaining it really easy, but the workflow of actually getting the theme hooked into tumblr is pretty annoying.

This month I became really interested in behavior trees and their potential application in the games I was working on, so I spent a lot of time working on behavior tree stuff which was a lot of fun. I ended up making a couple of short demos, but so far I don't know if I'm super convinced that behavior trees are great in action games like mine.

Image

I also did a 48 hour game jam in Phoenix and made a cool game!

Image

I got to use my recently acquired shader knowledge to make a cool looking game boyish game.

At the very end of the month I ventured off into Seattle to start my adventures at PAX Prime.

September
This month started out in the pacific northwest. I went to PAX Prime sort of on a whim since I didn't really have anything to show. I was mainly going just to meet up with people and have fun as a regular ole PAX attendee. I ended up showing some of the stuff I was working on to people with some videos, but I kept quiet for most of the trip.

I also got to start this trip off with a brand new smart phone! If you didn't know, I've been using a dumb phone up until this point. I got a Galaxy S5 right before my trip, and I learned the true power of having the internet in the palm of my hand when traveling anywhere.

After PAX wrapped up I hopped on a bus up to Vancouver and stayed at Indie House for about a week. There I ate sushi and coffee crisps and played Smash every day and night and it was the best week of my life I'd say. I did get some minor work done on wrapping up my game jam game from last month, and managed to release it on the Dreamcast's birthday.

Image

When I returned home to the desert I got back to work on some features for Otter. I did a bunch of bug fixes and clean up and also updated the platformer movement component to allow one way platforms.

Image

This month I was also trying out working out of an office with my friends from Team Colorblind. It was pretty cool, but I fell off the wagon of working out of the office after our next trip which was back to Seattle for an amazing weekend wedding of my friends Tommy and Shannon.

After I got back to the desert my sleep schedule ended up getting flipped up turned upside down and there went my hopes of working out of an office for awhile. I spent the rest of the month trying to get back into the groove of working since my summer of travel was finally done.

--

Both August and July were filled with a lot of trips. Traveling is usually pretty fun when I'm in the moment of traveling, but a lot of times I feel like traveling really slows down my work which is really annoying. I also have a lot of anxiety when it comes to traveling and the build up of leaving and going somewhere can drive me pretty crazy. I guess a lot of it is that I don't like flying...

Overall I had a lot of fun over the summer, but I still feel like I didn't get enough done! Or I didn't get as much done as I could have... but maybe I'm being too hard on myself. Who knows! Next up is Part IV!

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