I moved to a new URL! Check it out!

posts dated from: march 2014

Doodle Post

Image

GDC Thoughts & Feels

GDC Thoughts & Feels
Another GDC has come and gone and each year it feels like it's going by faster and faster. I did get to see a lot of awesome people from around the world, but there were still many many more that I unfortunately missed. The indie community is getting so huge that there are hundreds of smaller communities within it, and I feel as if I'm only a small part of one of those fractured off communities.

GDC is a time of pretty intense emotions. The event is built up in my head as some sort of annual check up on how my game development life is doing. A lot of developers use this time as a huge deadline to show off their new work, or discuss how awesome their past work has done. It can get pretty stressful to think about.

Last month with GDC looming on the horizon I started to crunch on my latest game project. I wanted to get something playable and ready to display at GDC, but as the days went by I realized that although I was making pretty decent progress, a fully playable thing was not going to be possible by the time I would be in San Francisco. I decided to instead just take it easy and work at a normal rate, and instead look forward to playing TowerFall all week at GDC instead of stress out about showing a game.

I'm not really sure how that decision has effected me, but it feels like it was the right one... maybe? When I don't have anything super solid to just show people, the question of "So what are you working on these days?" is a little tough to answer, and is kind of scary to hear.

The last year of my game development life has been pretty weird for me. I was working on an extension of a game jam game in Flash at this time last year... but when I went to GDC I didn't really like my project anymore. I didn't like working in Flash anymore. So I scrapped it, and spent months searching for what to work on next.

Eventually I made it to C# with SFML.Net, and Otter was born. Along with that, I started working on a project based on my old game jam game Gaiadi. I feel like this is the right choice... but I'm never totally sure.

I actually started working on this new project in June, but also at that time I started working on Otter, so progress was pretty slow. Then in December after Otter was way better of an engine, I restarted the project, and I'm almost four months into the new version... which is a pretty long time now that I think about it.

So right now it's tough to fully explain what I'm working on. My game hasn't really taken a solid form yet, and I feel like it's going to be awhile before it actually does, and that is terrifying to me. It doesn't seem like that big of a deal to answer "what are you working on," but it is tough when the thing I'm working on is still very nebulous, and the fact that I spent half of last year between GDCs just screwing around with different engines, and I don't have a presentable thing to just display to someone, and say "this! this is what I'm working on and it's super cool!"

I feel like I should have more to show for one year since last GDC when I scrapped my old Flash game. When I see the awesome things that everyone else is cooking up I ask myself if I'm just totally lazy compared to all of the other people at the conference. I wonder how it seems like they have so many things figured out and I still feel like I have no idea what I'm doing or how to solve a lot of issues. Imposter syndrome becomes very severe this time of year!

Maybe I'm just in another rut of depression, as leaving GDC and all of my friends can be a pretty big bummer... but right now I totally feel like not doing anything. I spent most of today playing games. I've coded a little bit since I got back, but my motivation is near zero. I'm not really sure what the core issue is, but I'm going to try to get out of it as soon as possible.

Phew, this post is kind of a downer so far! GDC wasn't super depressing though. It was actually a lot of fun! But I have all these weird issues in my head popping up that I need to figure out.

The Assassin Prince

The Assassin Prince
It's no secret that TowerFall might be my favorite game made in the past decade. The local TowerFall community in Phoenix is quite strong, and we play almost every night. We've been playing the beta for the recent PC and PS4 release for a few months now, and over that time I've collected a whole lot of replays.

Since the game is finally out I'm going to start sharing all of my awesome replays on The Assassin Prince. I pretty much always play pink, so every replay is going to feature the pink archer somehow.

Also, next week is Game Developers Conference and I'm looking forward to playing so much TowerFall with everyone, YEAH!

Bidness Crads

Image


Get one of these rare KPULV collectors items at Game Developers Conference! :D

Dev Log: Some Shaders

Dev Log: Some Shaders
One of the things I miss about working in FlashPunk and working with a bunch of bitmaps and blitting to the screen is the super easy color overlay blending. FlashPunk had an Image blending mode called Tint and it could be used in place of Multiply and it is amazing for doing effects like fading an entire sprite to a specific color. The world of rendering quads and triangles I don't have such a luxury, but I do have shaders.

I've been working on the building islands animation, and here's a really fast version of it:

Image


At the end of it when the island pops out it's silhouetted with solid white. The white fades to cyan, and also fades back to the normal art at the same time. To get this effect I used a simple shader to handle a color overlay.
uniform sampler2D texture;
uniform vec4 overlayColor;

void main() {
vec4 pixcol = texture2D(texture, gl_TexCoord[0].xy);
vec4 outcol = mix(pixcol, overlayColor, overlayColor.a);
outcol.a = pixcol.a;
gl_FragColor = outcol;
}
I also use this code for enemies as well. When they get hit they turn red for a brief moment. I use code in the C# end to determine the color and intensity of the overlay and pass it along to the shader.
var overlay = Util.ScaleClamp(Combatant.Stun, 0, Combatant.StunMax, 0, 1);
var color = new Color(1, 0.2f, 0.1f, overlay);

ImageSpineAnim.Shader.SetParameter("overlayColor", color);
Soon I'll probably make some sort of system that allows me to easily add a bunch of color overlays to the shader and automatically figure out the final color for the shader to use. I'll probably also use the shader for a bunch of different effects down the road.

Dev Log: Slow and Steady

Dev Log: Slow and Steady
I've been tinkering with a lot of systems over the past couple of days. Mostly stuff involving enemies, and some other things involving building islands and structures on the islands.

At some point last week I sat down and tried to figure out path finding with moderate success. I have something working, but it's pretty dang laggy when it has to figure out a path. As far as I know I'm just doing straight up A* path finding and I copied the psuedocode from Wikipedia right into the game. I started looking into using different data structures for storing things to hopefully speed it up, but honestly I still have no idea what I'm doing and I don't know how to use some of these fancy things that people suggest (priority heaps, or something?)

I took a break from that to tinker with placing structures on islands, and trying to figure out how I want to animate the building process for building a structure on an island. This is also a tough one to solve, and I'm not sure if frame by frame stuff in Flash would be good, or if structures should be animated with skeletons similar to the enemies using Spine.

Image


Back in the world of enemies I've started experimenting with behavior trees for how they should interact with the world. It seems like a good way to do things, but part of me feels like it's over-engineering. Setting up a whole series of classes for the system to run the behaviors, and then every simple little task then has to be a behavior command... I kind of like systems like this, but I wonder if it will be worth it in the end working on a system that takes a lot of up-front work to get running.

It's definitely a very different way of doing things outside of the game jam environment. I've made a lot of cool stuff in game jams, but it's all been on top of really odd code that doesn't leave a lot of room for expansion. I'm trying not to design or code myself into a corner when it comes to working on this new game, so things are going a little slower than they did for Offspring Fling, but it's also probably due to the fact that I'm in pretty unfamiliar territory. Working on something that's not a platformer can be pretty tough!