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)
Okay lets try to take this SharpFont library and uhh somehow... render text with XNA... and uh... *barf* (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)
2016 - 5 - 20 / 2:22 pm / general
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!
2016 - 5 - 18 / 10:19 pm / general
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.
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!
2016 - 5 - 16 / 3:30 pm / general
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.
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.)
2016 - 5 - 12 / 9:45 pm / general
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!
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.
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.
2016 - 4 - 28 / 6:22 pm / general
Been working away at prototyping some attacks for the big demon sisters fight in Sky Sisters. Check it out!
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.)
2016 - 4 - 27 / 10:57 am / general
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.
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!
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.
- alec holowka
- bill pullman
- dev log
- game dev
- game jam
- good times
- kings men
- ninja slash
- offspring fling
- screen sat
- sky sisters
- space sushi
- may 2016 (13)
- april 2016 (13)
- march 2016 (11)
- february 2016 (13)
- january 2016 (14)
- december 2015 (13)
- november 2015 (13)
- october 2015 (12)
- september 2015 (13)
- august 2015 (12)
- july 2015 (13)
- june 2015 (13)
- may 2015 (12)
- april 2015 (14)
- march 2015 (14)
- february 2015 (13)
- january 2015 (14)
- december 2014 (14)
- november 2014 (13)
- october 2014 (14)
- september 2014 (14)
- august 2014 (11)
- july 2014 (10)
- june 2014 (13)
- may 2014 (13)
- april 2014 (13)
- march 2014 (14)
- february 2014 (15)
- january 2014 (15)
- december 2013 (14)
- november 2013 (15)
- october 2013 (13)
- september 2013 (14)
- august 2013 (15)
- july 2013 (10)
- june 2013 (14)
- may 2013 (14)
- april 2013 (15)
- march 2013 (13)
- february 2013 (15)
- january 2013 (3)
- december 2012 (1)
- november 2012 (2)
- october 2012 (1)
- september 2012 (4)
- august 2012 (1)
- july 2012 (1)
- may 2012 (1)
- april 2012 (1)
- march 2012 (1)
- february 2012 (1)
- january 2012 (1)
- november 2011 (2)
- september 2011 (1)
- july 2011 (1)
- june 2011 (1)
- may 2011 (1)
- april 2011 (2)
- march 2011 (4)
- february 2011 (4)
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!