Screenshot Saturday 167
I'm happy to announce that regardless of the Kickstarter outcome, production of Lemma will continue.
To be honest, I originally planned to cancel everything if the campaign failed. I figured a failed Kickstarter would be a sign that people aren't interested, and that I should cut my losses (nearly 4 years of work) and move on. But in the past month I realized a few things:
I was kind of shocked at first to find out that people love the game. I'm continually surprised and delighted that people can look past all the flaws and garner an enjoyable experience out of something I've created.
I overestimated the amount of work ahead of me. I thought people would blow through the demo in no time and complain about how short it was. The reality is, not a single Let's Player has finished the demo in one video without a lot of editing. Some of that is due to frustrations with level design and controls, but a lot of it is just that people like to explore the world and figure things out for themselves, which is amazing. Armed with that knowledge, I'm much more confident that I can create the experience I want in a reasonable amount of time.
Running a successful Kickstarter takes a lot more than just a great vision with a solid prototype. I failed big-time in the PR department, partly due to lack of experience, and partly because I'm just bad at it. I make games, I don't sell them.
With that in mind, I realize now that if a Kickstarter fails, it doesn't necessarily mean the idea is not worth pursuing. Many failed campaigns later re-launch and go on to exceed their goals. (I won't be doing that because I don't want to take any more time away from development.)
Knowing all that, I'm confident that I can find the necessary resources to make this game happen even if we don't reach our Kickstarter goal. It may take more time and money on my part, but it will happen!
In fact, it's happening right now. I better get back to coding!
So, with the Kickstarter finished, it’s back to our regularly scheduled programming.
I am in the middle of a major graphics engine upgrade. This whole time I’ve been using fake HDR. Basically I divide every color by 2 when storing it in a texture, then multiply it by 2 whenever I read it from the texture. It works but you end up with lower color fidelity.
Now everything is done in full 64-bit floating point textures. Here’s an exaggerated before/after shot so you can see the difference. Notice the color banding on the left.
I was also skipping a few major steps of the usual recipe for bloom, namely downsampling and later resampling with a linear filter. The new bloom effect is much prettier. Here it is in action, along with some crazy geometry bugs I encountered while optimizing the vertex buffer code:
Lastly, I’m experimenting with a new effect for the slow-motion predictive block system:
That’s it for this week. Thanks for reading!
Mirrored on my blog