@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: may 2016

2016 - 5 - 24 / 1:41 pm / otter

Otter Updates

Otter Updates

A lot of Otter updates have gone through the pipe over the past few weeks and I should mention what they are!

* RichText bugs related to calculating the longest line of text have been fixed. Basically for one frame the RichText would miscalculate the length of its lines resulting in a slight offset for that frame.

* Fixed a bug with CollideEntities where the same entity could be registered to the list more than once.

* Entities now have a Position property vector.

* Added Scene.GetEntitiesAll()

* Added the ability to load in assets with a packed byte array. (See the Files class for more details.)

* Animating characters after text is written with RichText is now handled in a way that wont reset all the animations when appending to the string. If you don't know what this means don't worry about it.

* Added Coroutine.WaitForTween() to make it simpler to pause a coroutine until a tween has finished.

* Debugger.Summon() is now public and can be called from code. This isn't tested very thoroughly and could result in some undesired behavior in rare cases.

* Added Component.GetEntity<T>() to make it easier to get the correct Entity type. (Basically just hiding the casting in that method instead of having to cast Component.Entity)

* Input has static methods for getting joystick information (GetJoystickName, VendorId, and ProductId)

* Slight optimization in some collision methods (not very noticeable probably.)

* Added Graphic.TextureChanged() virtual method. Called when a graphic's texture has been changed.

* Added a Countdown Component for simple timers that just count down to zero from a specific time.

* Scene and Entity have indexers now for integers. Entities and Components are given unique integer ids when they are added to Scenes and Entities respectively. Not sure if this is useful, but adding it seemed like a good idea.

Okay I think that covers most of it.

Also for other types of Otter updates you should follow this instragram.

No Comments

2016 - 5 - 24 / 1:22 pm / doodle

Doodle Post

Image

1 Comment

2016 - 5 - 24 / 10:47 am / otter

Otter on Nuget

Otter on Nuget

Thanks to the help of some friendly internet folks I finally got a process to get Otter up and running on Nuget! You can check out the latest main build of Otter all wrapped up as a Nuget package right here.

Image

I know that it was in demand for awhile now but for the longest time I just couldn't figure out the process needed to get Otter up there. Now you can enjoy all the luxuries of the Otter game making framework without having to go download files and move them around and all that junk. Just install the package from Nuget and you're good to go!

Also somehow the name Otter wasn't taken already?

No Comments

2016 - 5 - 20 / 2:40 pm / doodle

Doodle Post

Image

Image

Image

In another one of those phases where I feel like I've completely forgotten how to draw anything.

No Comments

2016 - 5 - 20 / 2:22 pm / general

To Shader Hell and Back

To Shader Hell and Back

As I'm starting to send out builds of Super Sky Sisters for people to test I'm slowly churning through bugs and crashes that I was completely unaware of until the game runs on different hardware. One of those crashes is caused by creating way too many shaders so I've been investigating on how to address that for now.

One big idea I had was to change how Otter uses shaders internally, but I think after some experiments this idea probably isn't going to work. The idea was to have Otter's Shader class keep a cache of compiled shaders instead of creating and compiling a new shader every time. Basically when making a shader it would check to see if an exact copy of that shader has already been created and compiled, and if so it would just use that one.

However that means that every sprite using the same shader would then also be sharing that shader's parameters. So if I wanted to change the color on an enemy, it would change the color on everything else as well. In order to get around that Otter's shader class would then have to manage and apply the shader's parameters before each render. So EntityA could set its parameters before rendering, and then EntityB could do the same.

I went down the rabbit hole a little bit with this technique but quickly found it performs like crap mostly. Iterating through every parameter per shader per entity per render becomes pretty chuggy pretty quickly. At first I thought this would be a pretty good idea since it would reduce hundreds of shaders to just 1, but the process of applying parameters before each render seems to be not the fastest thing in the world.

So now I'm back to the regular old way that Otter does shaders which is creates and compiles one for every shader instance. This has some downsides but I'm pretty sure it still ends up being faster than my experiment with a compiled shader cache.

I have some work ahead of me still to stop some of the crashes for Super Sky Sisters, but I'm pretty sure I know how to fix it it's just figuring out the right arrangement of code to implement the fix!

No Comments

2016 - 5 - 18 / 10:21 pm / doodle

Doodle Post

Image

No 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