RT @Livelyivy: Today is your last chance to preorder Gravity Ghost! t.co/0t1h9Nuylk (Saves $5, and you can say you liked it before i… (Today)

Well according to twitter there exists a secret society of people that actually do use the insert key quite often. The more you know! (Today)

Has anyone ever pressed the insert key, started typing, and then thought "yes, this is exactly what I wanted." (Today)

@Fruckert Haha wow, so it is. I did a ctrl+F on the whole thing and for some reason it didn't find it. Whoops ;D (Today)

@infinite_ammo @theBanov ohh I dunno. Maybe not til around pax time again for me ;( (Today)

@NoelFB Or maybe t.co/QjrHFNFbbU or do you mean REAL as in only classical stuff? Like not metalish + chiptune? (Today)

@NoelFB t.co/7dTg3mhOi5 (Today)

@Fruckert Is that in the code or in the documention? I can't find it, at least on the current dev branch. (Today)

@Fruckert I am really smart (Today)

@MattThorson @NoelFB @bombsfall I'll be there YESTERDAY (Yesterday)

@NoelFB @bombsfall @MattThorson yeah rock climbing wall whatever let me know when you build a conveyor belt of sushi into the house (Yesterday)

@rustym you got dis (Yesterday)

RT @ADAMATOMIC: blue revolver looks so cool O_O t.co/CTd7cSX0QO (2 days ago)

@kertgartner @ADAMATOMIC woofycakes palettes so godlike UGH (2 days ago)

RT @GreyAlien: How did we make Regency Solitaire? Here's a sneak peak behind the scenes. t.co/NfaRZWJV8h t.co/U5WVSIHTyr (2 days ago)

@MattThorson next project: t.co/UbQiZDLgMG? (2 days ago)

@Lumin0via 2spooky ;_; (2 days ago)

I hope the Global Game Jam theme is brawler platformers... (2 days ago)

@ChevyRay :O I send you all my <3s (2 days ago)

@MANvsGAME time distortions YEAH! (3 days ago)

follow
search

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!

1 Comment

2015 - 1 - 22 / 9:25 pm / doodle

Doodle Post

Image

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 - 16 / 5:02 pm / general

Doodle Post

Image

No Comments

2015 - 1 - 16 / 5:02 pm / general

Dev Log: Game Ideas and Toggl

Dev Log: Game Ideas and Toggl

I've been back in my programmers seat for the past couple days and the rust is pretty real. I'm getting back into Otter and pushed some minor updates to it that should fix some issues I've been having with it. I wasn't liking some of the finer details of how Entities were being added to Scenes, and how Components were being added to Entities, but I think I have that figured out now.

To get back into the programming saddle I've decided to just mess around with a prototype for now. I don't know much about it yet, but I'll say that I'm currently making a turn based battle system for it. Who knows what that could mean! If this idea turns out to be cool though I'll have more info the share about it.

One thing I'm trying now is using toggl to track how I spend my time through the day. I think one of my anxieties about being productive comes from not exactly knowing how much time I spend doing stuff. Right now I just have it set up to track exercise, game dev, writing, and drawing. Those are the broad strokes of what I care about, and I might end up breaking down those categories even futher depending on how this experiment goes.

I still have my co op game Super Sky Sisters to finish and release soon, and then there's Global Game Jam coming up and I don't know if I'm going to make a completely new game there, but I'm definitely going to be jamming regardless either on a current project or a new project.

No Comments

2015 - 1 - 14 / 7:18 pm / doodle

Doodle Post

Image

I'm having a lot of fun drawing lately I'm not ready to go back to programming.

3 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