The Poor Man's Dialogue Tree

As some of you may know, Lemma has an interactive dialogue system that lets you exchange text messages with an AI character.

I implemented every conversation manually in code (well, scripts) until this week, when I got fed up and decided to automate the process!

Like the last article in this series, my system has all the hallmarks of a Poor Man's solution: developed in-house, tailor-made, simple, and based on free and open source software.

Screenshot Saturday 170

Hello and welcome to another week of Lemma development progress updates!

This time I did a lot more work on the player character. I spent a ton of time in GIMP working on the texture map. I didn't skimp on memory space, it's a full 4096x4096. The GIMP file is over 150MB.

I also split the model into three distinct materials: a shiny one for the chest, neck, and pants, a less shiny one for the hands, and a completely dull one for the hoodie. I stored the mappings for these materials in the texture's alpha channel.

Screenshot Saturday 169

This week I finally implemented SSAO! It's pretty basic, but it works.

Check out the effect source code here.

It's a big deal for me because I tried it once before and it came out like this:

I'm also still working on the player model. I think it's close to being in a usable state. What do you think? Is that a ponytail, or a brain slug?

Screenshot Saturday 168

This week was a ton of performance optimizations and graphics upgrades.

Cascading shadow maps! Basically that means all the shadows are much sharper. It was surprisingly easy to implement and barely impacts performance.

Here's a screenshot showing off the new shadows, plus a new character modeling experiment. Just testing things out for now. What do you think?

Turns out, Blender has something called Rigify that can automatically generate an absolutely kick butt IK rig for your character, complete with blend weights for skinning. It's not perfect, especially when there are separate disconnected pieces (eyeballs, for example), but the few problem areas are easy to correct manually. Here's the character animated with the default calculated weights. I haven't touched them at all yet:

Screenshot Saturday 167

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.

Final hours

Here we are folks, counting down the last remaining Kickstarter hours!

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:

FINAL WEEK!

We are now in the midst of the final week of Kickstarter funding! With the campaign nearing the end, I thought I would give you another development update.

First, I spent a few days completely rewriting every bit of text in the game to support multiple languages. You can now change the language from this nifty selector on the main menu, and the whole game instantly switches:

Now all we have to do is translate ALL the things!

GREENLIT!

From the Kickstarter:

It's not every day you see this email in your inbox.

It's not every day you see this email in your inbox.

WE ARE ON STEAM! Thanks everyone for your votes! We were part of a batch of 75 titles, even though we hadn't reached the top 100 yet. Go check out the other games that were greenlit today!

Here are the statistics for anyone interested:

Cheat your way through life

From the Kickstarter: Just an update on development progress for Lemma! Thank you so much everyone for your support. I'm still getting tons of useful feedback from people playing the demo. Levels have been tweaked, bugs have been fixed, writing has been edited, and graphics have been tightened. Expect a new build very soon! Here's some new features to look forward to:

First, a minor technical detail. Saved games do not carry over between builds. If you run a newer build, all your old saves will be lost. It's a major drag for beta testers, which is why I've added a new CHEAT menu to skip parts you've already mastered!

Player model and animations

An update from the Kickstarter:

One concern that pops up a lot on Greenlight is the low quality of the player model and animations in Lemma. The reason it's so bad is that I did all of it myself, and I'm not a character artist. People ask, "but couldn't you just try harder? What's so hard about modeling and animating a character anyway? Also, couldn't you just borrow an existing public domain model?"