@MoviusC soooo unreal tournament definitely tried terrain maps with their twitch-fps weapons and they were god damned awful lol (Today)

@MoviusC well if it were like a quake map there'd probably be less giant open spaces, or if there were they'd be in… t.co/0LK7FJCbVs (Today)

if PUBG was just like the same concept but a giant quake map and played like quake then I would be dead from playing it for 999999 hours (Today)

@TeddyDief ancient me: "my bloodline will carry out this task for me sometime before the sun consumes our home plan… t.co/T27Mb6a93W (Today)

RT @fell_martins: 💰💎✨ Boys and girls, I'm open for business ✨💎💰 Resposting artwork because most of my stuff is under very secretive NDAs.… (Today)

@RYStorm actually now that I think about it when I get really excited "dude" is one of the first things out of my m… t.co/xjxRg7aZtf (Today)

@dkoontz the brite side (Today)

@MOOMANiBE I grew up in ultra rural upstate new york and somehow I still got it (Today)

when i spend hours on a bug caused by typing x twice instead of x and y t.co/nOkvbJ2XQg (Today)

@NoelFB @RobClemmonsJr coffee totally kills my appetite and I may lean into that more than I should *passes out fro… t.co/QEri4qx8On (Today)

@NoelFB this is a "bad" habit, you say? hmm... interesting... heh heh... *totally not sweating nervously*... (Today)

I've accepted the fact that I'm just going to say "like" 500 times per minute when I'm talking, and that's just, like, how it is. (Today)

@raiganburns yeah something really frustrating about watching a term's meaning totally erode, especially when a ter… t.co/LnabpYVyJQ (Today)

@floatvoid holy poop I havent heard this one yet!! (Today)

@raiganburns seems folks have been using rogue-whatever when they just mean procedural generation for awhile now. (… t.co/yYGOokKJUu (Today)

when are these so called major "esports" teams going to pick up players for link to the past randomizer races?? t.co/mxXI5JRG2X (Yesterday)

@AshBlueWD @ESAdevlog this is legit one of my favorite games of the past couple years. amazingly executed metroidva… t.co/WAQq7r3MQs (2 days ago)

@dannyBstyle Yeah it was an insane disaster and I'm amazed everyone signed on and was like yeah cool this sounds good let's do this (2 days ago)

RT @ESAdevlog: Btw, ESA is 60% off (and OST 30%) this weekend on Steam & Humble Store!! Completely forgot to announce that, whoops https://… (2 days ago)

@dannyBstyle Haha too late. It was... a thing. The original trailer for it was amazing though so I'll just keep watching that. (2 days ago)

follow
search
posts dated from: march 2014

2014 - 3 - 31 / 2:31 am / general

Dev Log: Coroutine Example

Image

Thanks to knowledge passed down from Chevy Ray I was able to get Coroutines working in Otter recently! Coroutines are magical chunks of code that are able to yield their execution and remember their state. It's bonkers what you can do with them using this power.

I added an example to Otter to hopefully help out any folks that are looking into using them:

using Otter;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CoroutineExample {
class CoroutineScene : Scene {

public Image ImageBox = Image.CreateRectangle(50);

public Color NextColor = Color.White;
public Color CurrentColor = Color.White;

public CoroutineScene() : base() {
// Center that box.
ImageBox.CenterOrigin();

// Gotta draw the box.
AddGraphic(ImageBox);

// Set the box position.
ImageBox.X = 100;
ImageBox.Y = 100;
}

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

// Start the coroutine, yo.
Game.Coroutine.Start(MainRoutine());
}

/// <summary>
/// The main coroutine to execute. This will move the box around and change its color.
/// </summary>
/// <returns>Whatever a coroutine thing returns. Sometimes 0 I guess.</returns>
IEnumerator MainRoutine() {
// Wait for 30 frames.
yield return Coroutine.Instance.WaitForFrames(30);
// Set the next color.
NextColor = Color.Red;
// Move the box to the top right.
yield return MoveBoxTo(540, 100);

// Wait for 30 frames.
yield return Coroutine.Instance.WaitForFrames(30);
// Set the next color.
NextColor = Color.Yellow;
// Move the box to the bottom right.
yield return MoveBoxTo(540, 380);

// Wait for 30 frames.
yield return Coroutine.Instance.WaitForFrames(30);
// Set the next color.
NextColor = Color.Green;
// Move the box to the bottom left.
yield return MoveBoxTo(100, 380);

// Wait for 30 frames.
yield return Coroutine.Instance.WaitForFrames(30);
// Set the next color.
NextColor = Color.Cyan;
// Move the box to the top left.
yield return MoveBoxTo(100, 100);

// Start a new coroutine.
Game.Coroutine.Start(MainRoutine());
}

IEnumerator MoveBoxTo(float x, float y) {
// Used to determine the completion.
var initialDistance = Util.Distance(ImageBox.X, ImageBox.Y, x, y);

float currentDistance = float.MaxValue;
while (currentDistance > 1) {
currentDistance = Util.Distance(ImageBox.X, ImageBox.Y, x, y);

// Determine the completion of the movement from 0 to 1.
var completion = Util.ScaleClamp(currentDistance, 0, initialDistance, 1, 0);

// Lerp the color of the box.
ImageBox.Color = Util.LerpColor(CurrentColor, NextColor, completion);

// Spin the box along with its movement.
ImageBox.Angle = Util.ScaleClamp(completion, 0, 1, 0, 360);

// Actually move the box.
ImageBox.X = Util.Approach(ImageBox.X, x, 5);
ImageBox.Y = Util.Approach(ImageBox.Y, y, 5);

// Wait until next frame.
yield return 0;
}

// Done moving. Update the color.
CurrentColor = NextColor;
}
}
}

I'm actually totally not sure if I'm doing it correctly in the example, but it seems to be working out well so far. Going to try using them for various things now in my current projects!

2 Comments

2014 - 3 - 31 / 1:27 am / doodle

Doodle Post

Image

Colored this with 20% monitor brightness so hopefully it came out okay.

No Comments

2014 - 3 - 30 / 4:16 pm / general

Otter Updates

Otter Updates

Over the past week I've finally pushed some updates to Otter after managing to rip out the Spine animation stuff. It turns out that in order to use the Spine runtime you need a purchased copy of Spine, meaning that if I include the Spine code in Otter everyone that uses Otter would need a copy of Spine... not ideal. (I wish Spine wouldn't license their code like this.)

So now the Spine runtime for Otter lives in a separate repository. It can be used along with Otter if you import it into your solution also using Otter. After you import it you need to give it a reference to Otter (also in your solution) and then give your game project a reference to OtterSpine. Then you should be ready to roll with SpineAnimation.cs.

Other updates to otter include:

* Renamed GetClass to GetEntities on Scene
* Add Vertices graphics type
* Added Color.Mix()
* Corrected issue between game angle and graphics angles
* Fixed issue with BoxCollider constructor
* Fixed some collision bugs
* Added shortcut of Left-Alt in Debugger to hide debugger (useful for screenshots)
* Minor updates to Particle
* Added LerpColor to Util
* Slight changes to Vector2

If there's any bugs or horrific things broken then let me know in the Otter forums!

No Comments

2014 - 3 - 29 / 3:55 pm / doodle

Doodle Post

Image

Image

No Comments

2014 - 3 - 28 / 3:29 pm / general

TowerFall Tournament Finals



Check out me playing TowerFall at the Humble Bundle 2014 World Invitational Tournament vs. my good friend and training buddy Will Courtney. It was a best of 5 set and each of us had to play through amazing opponents to get to the finals. Good times!

2 Comments

2014 - 3 - 27 / 12:35 pm / offspringfling

Humble Weekly Sale!

Humble Weekly Sale!

Just a quick heads up, Offspring Fling is currently in the Humble Weekly Sale along with seven other amazing games.

This particular bundle is in support of the software and tools that we use to create our games, including FlashDevelop which was used for Offspring Fling.

It works the same way as a regular bundle, and you get more amazing games if you pay enough moneys. You also get Steam activations for all of the games.

3 Comments

about

About

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

categories

tags

archives

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