@ChevyRay I think you're really dang good at it to achieve that pace. It takes me like forever and a million years for editor features ;_; (Today)

@infinite_ammo cancel all my meetings that i didn't have. looks like i have other plans for today. (Today)

@infinite_ammo hahahh fuck I dont remember that and I should be all caught up. I must have missed that... (Today)

RT @Draknek: The Stugan deadline is coming up soon and @bnhw and I want to work on a new project there, looking for a 3D artist: t.… (Today)

@infinite_ammo oh god he's slamming the baby in the toilet. it's only a matter of time before he turns his toilet seat into a subwoofer too. (Today)

@infinite_ammo my fav is my upstairs neighbor who slams his toilet seat down also now apparently has a screaming baby in his apartment?? (Today)

@ChevyRay ugggghhhhh I LOVE MAP VIEWS OF THINGS AHHH (Today)

@jwaaaap I don't think you need to be SUPER HARDCORE but you def need platforming skills and the map system can seem kinda brutal at first (Yesterday)

@ChevyRay hi here is my tutorial on regular expressions this is how to verify an email address s/g+.a-Z0-9[]{/gi-?@/f-[a-Z]0-9??/gmail.com (3 days ago)

@TommyRefenes the lengths you'll go to become a metal gear solid boss amaze me (3 days ago)

@shaneneville t.co/9H8F5KlgFA (4 days ago)

@shaneneville well that sounds rad as fuck jfc (4 days ago)

@shaneneville tell me more (tabletop / pen and paper rpg systems are super duper fascinating to me) (4 days ago)

@Fruckert depends on my pace. if I'm working super fast I'll just have a text file in my csproj folder. if I'm slower I'll use trello. (4 days ago)

@ADAMATOMIC I'm not far into this talk yet but do they discuss how most of the costumes make characters look entirely different and incompre (4 days ago)

I'm excited to make games today! *checks task list* Oh right I'm stuck on like 50 bugs I don't know how to solve. (4 days ago)

@ADAMATOMIC just now realizing that I need a giant motivational poster of nasir over my desk at all times (5 days ago)

@obskyr YEAH I was bummed that the Hollow Knight soundtrack turned a bunch of the loops into short songs or arrangements :I (5 days ago)

I humbly request for video game soundtracks to feature more than one loop on the tracks that normally loop in the game~ (ESPECIALLY BOSS TRA (5 days ago)

RT @bitmOO: Hi, I make playful art! :) If you like my work please consider supporting me: 🐮 t.co/dFSRVxbXzf ☕️ t.co/F2hPwao… (5 days ago)

follow
search
posts filed under: otter

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 / 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

2015 - 12 - 22 / 4:40 pm / otter

Otter Updates

Otter Updates

Okay apparently it's been like three months since I've posted about Otter updates, and there's been a lot since then. I guess since my life was in chaos for the past few months I slipped up. Oh well! Here's a quick breakdown on changes and fixes to my C# game making framework thing.

* Fixed a bug with rendering a BoxCollider with a width or height of 1 or 0.

* Fixed a rendering bug caused by changing the font size of a RichText object at runtime.

* Added flags for Sound and Music to check if they're currently playing audio. Sound.IsPlaying and Music.IsPlaying will be true if they're playing back audio.

* Added Color.Shade(float) which will return a color from black to white with the specified float. For example Color.Shade(0.5f) will return a gray color where 0.5f is set for red green and blue.

* Fixed a bug in Input.CharToKey() (a key was missing...)

* Fixed a bug in CollideEntities where an Entity could collide with itself.

* Added Collider.Overlap(x, y, px, py) which will do an Overlap test with a specified point (px, py) Very useful for doing UI stuff and checking for a point overlapping a collider.

* Fixed a bug with LastPressed and LastReleased timers on Button.

* Added Util.ListCombine<T>() to take a bunch of lists and combine them into one list. I don't know if this is already a C# thing so whatever.

* Added Color.FromBytes()

* Added Axis.Reset() to totally clear an Axis's input state.

* Added Button.Reset() to totally clear a Button's input state.

* Fixed a bug where Gradient wasn't blending with its Color.

* Added DataSaver.FileExists().

* Added Particle.ActiveCount but I'm not totally sure if this works as intended.

* Fixed a bug where creating a Text object would not accept an SFML.Graphics.Font.

* Added MouseDeltaX and MouseDeltaY to get the mouse movement since the last update. Mostly used for locking the mouse inside the game window.

* Util.GetFieldValue works for static fields now.

* Added Scene.CameraFocus which if set to an Entity the Scene will then follow that Entity.

* Added Rand.IntXY which returns a vector2 of ints.

* Reworked EventQueue component into EventStack and EventQueue.

* Added GraphicList which is a Graphic type that is a list of graphics.

* Added Anim.OnNewFrame() which is invoked whenever the current frame of an Anim changes. Useful for tying code to specific frames of an animation.

* Huge debugger api changes which uses attributes now instead of RegisterCommand with CommandTypes. Check out the example here to see the new style.

* Added a bunch of stuff to the Debugger like tab auto complete and parameter help when typing in a command.

* Entity.UpdatedOnce is now public (private set.)

* Scene.RemoveNextFrame(Entity) will remove an entity with a one frame delay.

Wow that's a lot of stuff! I'm really happy with the new debugger API that uses all kinds of crazy reflection stuff now instead of a bunch of RegisterCommand method calls.

If you've been using Otter then you should drop by the official slack sometime and hang out with your fellow otter lovers!

No Comments

2015 - 11 - 27 / 9:19 am / otter

Otter Example: Tweening

Otter Example: Tweening

Did you know that Otter supports tweening? Now you do! Tweening is one of the coolest things in the world in my opinion and it's one of the easiest ways to create sweet effects and animations in games.

Image
(I don't know what's up with the end of this gif so whatever.)

Otter makes use of the Glide tweening library by Jacob Albano. It has a similar syntax to TweenLite from the AS3 days of using FlashPunk, and since Otter is based off of FlashPunk having a syntax similar to a flash tweening library makes a lot of sense to me.

Check out the full source code of this example on the Otter example page!

No Comments

2015 - 10 - 2 / 12:13 pm / otter

Otter Example: Surfaces

Otter Example: Surfaces

Another Otter example has washed ashore. This one deals with understanding how to use Surfaces. Check out the full example right here to see how to make pretty pictures using Surfaces.

Image

Image

Surfaces are essentially just wrappers for a render texture. I like to think of them as canvases that can be drawn to. Otter by default uses one big Surface the size of the game window to render the game. Surfaces can be a great way to add something like a minimap or HUD to your game, or make use of shaders. I often use multiple surfaces when making my games so that I can zoom in and out on the main Surface and keep things on the HUD unaffected by the zooming.

No Comments

2015 - 9 - 17 / 12:20 pm / otter

Otter Updates!

Otter Updates!

I've been pretty productive on coding stuff lately so with that comes some updates for Otter! Here's some of the things that have changed or been added lately in the dev branch:

* OgmoProject has a lot more utility methods now like GetValue() and GetLayerData(). If you need to check out level data before actually loading a level into a Scene this can be pretty useful.

* Added OgmoProject.RemapAsset() for when you need to assign a different path for an asset being referenced in your Ogmo projects. For example if you need to take the path of a tilemap from the ogmo project and reassign it to something else when being loaded into the game.

* Fixed a thing that I broke in SetHibox on Entities.

* Util.Clamp now supports Vector2 input and output.

* Added shortcuts to Scene methods like GetEntity<> on Entity just to make code a little bit less verbose at times.

* Added Button.LastPressed and Button.LastReleased. These are both timers that will count up since the last button press and release respectively. Pretty useful for doing input buffering type stuff, or waiting until an input has been released for some amount of time before changing state, and all that kind of stuff.

* Added GetFillRect() to NineSlice.

* Made Debugger.RegisterInstantCommand() public and added Util methods to go along with it. You can now add debug commands that can be used immediately instead of executing them at the next update. Also fixed some bugs in the debugger related to this.

* Fixed the rendering of GridCollider (it was too large by 1 pixel for each cell.)

* Added GetTileIndex() to Tilemap and GetIndex() to TileInfo.

* Texture.CopyPixels now actually works (warning: blittng operations are very slow.)

* More Collider parameter options in all of the Collide, Overlap, etc methods.

* Added Scene.GetEntitiesWith<> which is a weird way to grab a list of Entities that have a specific set of Components. This is probably very slow and should be used sparlingly, but it might be useful to some folk.

* Various small fixes and tweaks that don't really effect end users.

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