RT @infinite_ammo: I'm doing the music for Moonlighter, a rad game that is coming to Kickstarter in a few days! t.co/CvA1JjnrZ3 htt… (Today)

@gertjanstolk that would be cool as heck. Can get me at hi@kpulv.com (Today)

@codeapparat Hmm okay, there's BufferData, but now how to convert any of that to color data o __ o (Yesterday)

@codeapparat Hmm right but how do I get such an array from SharpFont's bitmaps? (Yesterday)

So I'm using System.Drawing.Bitmap as part of the process to Texture2D here, but I'm thinking this might not be the best idea... (Yesterday)

Yeeehaw loadin' a whole font into FNA with SharpFont t.co/TJfjxY1MPs (Yesterday)

@AsherVo making video games is like 10% game stuff and 173% UI design and programming (Yesterday)

RT @tripleboop: 3v3 tourney for #towerfall at 3B: t.co/KevlbepVWw cc @kylepulver @MattThorson etc rt rt rt (Yesterday)

@ChevyRay @eigenbom I have a W showing up for now #blessed t.co/0RzVOwdYCn (Yesterday)

@ChevyRay @eigenbom Ohh I was looking at the font code you gave me for SDL2 as a reference... but maybe we shall chat again soooon <3 (Yesterday)

@eigenbom eh maybe if I was doing 3d, I've given it a few shots and I just don't like the feel of the workflow for 2d :I (Yesterday)

@eigenbom Sort of. A lot of my utility/helper stuff is instant portable. Rebuilding the rendering stuff though using old code as a guide. (Yesterday)

@eigenbom UHHhhh trying to figure out if FNA is gonna be usable for my next project. Right now I am in font/text rendering hell. ;D (Yesterday)

Okay lets try to take this SharpFont library and uhh somehow... render text with XNA... and uh... *barf* (2 days ago)

@jacobalbano I compiled my .fx file into a .fxb with that fxc.exe program from the direct x SDK. Can be just used on its own. (2 days ago)

this may just look like a pink silhouetted graphic but it represents a shader actually working with FNA yeehaaawww t.co/AbriJFfgA5 (2 days ago)

@flibitijibibo Probably best thing is on google chats pulverk@gmail.com (2 days ago)

@flibitijibibo @larsiusprime Nope I have no XNA projects at all, starting from scratch. Will check out this fxc.exe thingy (2 days ago)

Dear FNA people, what is the process of getting a shader compiled and loaded? (Trying to avoid content pipeline stuff, using just files.) (2 days ago)

@flibitijibibo YUP Going to give it a whirl today! :O (2 days ago)

follow
search
posts filed under: general

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:19 pm / general

To SFML or not to SFML

To SFML or not to SFML

That is the question on my mind these days...

I think things would be smoother if I were just running the main C++ version of SFML, but unfortunately I am just way more comfortable in C# which means only having access to SFML.Net.

Don't get me wrong, SFML.Net is pretty great, but I think more and more I'm feeling like I should jump off to something else. I like SFML's API, and I think it does a lot of things in ways that make sense to me, but the support from the game development community just isn't there.

I know I am probably experiencing the old grass is greener feeling, but right now it feels very tempting to start to build Otter to run with something else underneath it. If I were to switch to anything I think right now my best option would be XNA/Monogame.

Image

This is just a quick little test, but it is running in XNA with something much like Otter. Monogame seems to have the biggest support lately when it comes to portability which is pretty appealing. Right now I can barely get the latest version of SFML.Net to cooperate and that's after having someone else send me a compiled version of the library because for the life of me I just cannot get SFML.Net to build.

Just rambling a little bit here. I did manage to get SFML.Net 2.3 working with Otter... but with an unfortunate downside with texture smoothing that for some reason doesn't exist with 2.2. Texture smoothing for whatever reason now has a weird effect on the edges of textures, and when I try to use those textures in shaders I get weird results when sampling pixels around the edges.

Just feeling pretty frustrated I guess! I'm going to go down the XNA rabbit hole a little bit inbetween finishing up Sky Sisters... maybe it's possible to get an XNA build of the game rolling but who knows!

1 Comment

2016 - 5 - 16 / 3:30 pm / general

Dev Log: Health Pick Ups

Dev Log: Health Pick Ups

Whoops I have been totally neglecting my blog this month. I've got a lot of posts to catch up on! I think when I stream a few times a week that actually gives me the same feeling as making a blog post, so I end up just totally forgetting to make a post about what I've been up to.

One of the things I'm playing with to make the demon sisters boss fight a little bit more fair is having the demon sisters drop health whenever they're knocked out by the players. Basically the demon sisters obey the same rules that the players do so they can be temporarily disabled by damaging them enough. Eventually they will revive though and continue their assault.

Image

Sometimes the best course of action in this fight is to try to knock one of them out before they unleash one of their crazier attacks. Right now this boss fight is incredibly tough but most of their attacks are a lot easier to deal with if one of them can't join in. I think I'm actually approaching the end of this boss fight and that just leaves a few things left on the list (until I add more stuff but I actually don't see that happening again for real this time.)

No Comments

2016 - 5 - 12 / 9:45 pm / general

Dev Log: Damage Numbers

Dev Log: Damage Numbers

This week I did a quick experiment with Super Sky Sisters. I didn't really think it would work out, but it I was proven wrong, I think! I ended up adding damage numbers to the game. Check it out!

Image

One problem in the game (and in any game I think) is letting the player know how effective their attacks are. In a game as fast as this one it can be pretty tough. There are a lot of objects that don't actually take damage from your bullets, but they still react. Some players end up continuously attacking things that don't take any damage, so hopefully this will help with that.

Image

Not only is it useful for communication with players, but it also looks super cool. Why do numbers flying off of things make everything better? I'm pretty sure it's some sort of fundamental rule of game design.

No Comments

2016 - 4 - 28 / 6:22 pm / general

Dev Log: Boss Attacks

Dev Log: Boss Attacks

Been working away at prototyping some attacks for the big demon sisters fight in Sky Sisters. Check it out!

Image

This week I made some good progress on a lot of their attacks. Their main style of attacking is with these "void bullets." The bullets can shrink and grow and almost all of their attacks utilize this in some way. They also can shoot normal bullets just like the players, and even have access to one or two special attacks that the players also have.

I do believe this is the final part of the game before it is ... done! (Except music, whoops.)

1 Comment

2016 - 4 - 27 / 10:57 am / general

Dev Log: Star Pads

Dev Log: Star Pads

One of the issues I'm trying to solve in Super Sky Sisters right now is keeping both players engaged. After some playtesting and feedback some players end up in scenarios where one player becomes the "dominant" player and the other just follows that player's lead. This can be somewhat effective for playing the game, but the non-dominant player ends up just kinda tailing along and isn't really having that great of a time.

One of the things I'm playing around with is the idea of having these "star pad" type things that appear on the map every 30 seconds. When one angel is in the star pad, the other angel will get a big boost of power. This has two effects that I'm hoping will shine through.

Image

The first one is that in the situation where one player can't get a good shot on an enemy or a boss, that player can now try to position themselves on a star pad to give the other player a big boost in weapon power. I'm hoping this will give the non-shooting player an option to not feel like they're doing nothing.

The second is that it gives the players another reason to move and to end up in positions they wouldn't otherwise approach. I believe the game plays really well when the players are actually going for points, but a lot of players wont do that their first few times playing. Most players are just interested in survival for the first few times they play.

Probably more thoughts and changes regarding this soon!

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