Screenshot Saturday 188

Unfortunately I’ve had to take September off to work for some clients, so Lemma is temporarily on the back-burner.

HOWEVER. Wednesday night a certain something arrived in the mail.

I immediately tried it out with Half-Life 2 and was shocked at the massive improvement over DK1. I was so impressed that I’ve spent pretty much every waking minute since then trying to get it working in Lemma.

Current status? It’s very, very close. The VR itself is 100% functional now, I just need to make some UI tweaks. The Oculus SDK makes an incredibly difficult thing as simple as it possibly can be. For Unity users it’s almost plug and play, but because I’m still stuck in 2008 with XNA I had to rip out the Unity plugin and hook it up on my own (similar to what I did for Wwise). I discovered that it’s very easy to get a somewhat passable result that’s actually incorrect. You have to learn about crazy things like chromatic aberration and time warping to get the best result.

That’s it for this week. Thanks for reading!

Posted in Life

Screenshot Saturday 185

Hello friends. Yesterday I finished the 5th level! It took much longer than anticipated because it’s actually 10 separate maps connected together. It includes some simple but hopefully interesting puzzle mechanics.

It also advances the story through notes and several text conversations scattered throughout.

It’s hard to see in screenshots, but I added a subtle cloud shadow effect as well. It doesn’t respond to the actual clouds, so in a sense it’s slightly faked. Because of that I was able to do the projection easily with a ray-plane intersection rather than a full matrix multiplication. Here’s the shader code, edited for clarity:

float t = -worldPosition.y / SunLightDirection.y;

float p = worldPosition.xz + t * SunLightDirection.xz; *= tex2D(CloudSampler, p * CloudUVMultiplier + CloudOffset).a;

Here’s the effect in action. It’s pretty subtle and easy to miss.

I already started on the next level. My plan calls for a night scene with falling water, so Thursday I worked on the beginnings of a cute little waterfall effect. It’s just a Blender model with the UVs stretched so that the texture moves faster as it reaches the bottom.


That’s it for this week. Thanks for reading!


Posted in Lemma

Screenshot Saturday 184

This week was a lot of level design. I’m working on a group of “fractured” but interconnected worlds that the player has to progress through.

Here’s a screenshot:

Here’s the thread where I got that rock texture. It’s a gold mine with a bunch of totally free diffuse, specular, normal, and even displacement maps.

Unfortunately that’s all I have time to talk about today. Thanks for reading!

Posted in Lemma

Screenshot Saturday 183

I hit a milestone today.

Three of the four levels so far in Lemma (Rain, Dawn, and Forest) have undergone at least one massive redesign in their short lifetimes. This week I finally gave the same treatment to the fourth level, Monolith. It is aptly named. Let me try to convey just how monolithic this level is now.

This is a perfect example of my patent-pending Design by Trial and Error™ process.

When I first designed Monolith, I didn’t know what it was, where it would fit in the game, or what its purpose was. I just kind of made it. And it was shockingly bad.

Now I know the answers to all those questions, but only retroactively. There was never a plan, I just discovered a plan through Design By Trial and Error. You can do it too! Here’s how:

  1. Create something completely random! Make sure there’s no purpose or thought given to how it will contribute to the rest of the game. Just channel your stream of consciousness into the level editor.
  2. Realize that it probably sucks, but hold your nose and continue designing the rest of the game around that rotten core.
  3. Return to that level months later with the knowledge that it now plays a specific, natural role in the game, but it’s still garbage.
  4. Re-design it to fulfill that role without all the garbage.

Every level I’ve built so far, along with every game mechanic and every bit of writing, has gone through this process. It’s a battle-tested, tried and true method of building a game in maybe a single human lifetime.

What am I trying to say? That the first vertical slice, consisting of the same levels from the public demo back in March, is finally up to my standards for the final gold release. I don’t plan on redesigning the current four levels in any major way. The plan I’ve discovered calls for about 16 more levels. If I can crank them out at a rate of 1 per week like this, I might not even have to miss my deadline by much. Ha. Jokes.

What comes next? Here’s a hint:

Posted in Lemma

Screenshot Saturday 182

What’s that you say? You didn’t even notice the absence of Screenshot Saturday last week? How convenient. Let’s pretend it never happened. Or rather, pretend that it did. Whatever.

MGDS was a huge success! There was almost always a line to play the game, and I got a ton of useful feedback. Here are some pictures:

Most of the feedback was related to level design. I came home with a phone full of “todo” items. Here are some screenshots of overhauled or brand new sections that resulted:

I also did some writing. I got sick of exporting dialogue files from my web browser, so I converted Dialogger to a desktop app using App.js. It’s not maintained anymore, but it was way easier to set up than node-webkit, which apparently is the current standard.

One thing that really bothered me when watching people play Lemma was the fact that any time they touched a wall, their momentum was instantly killed by friction, even though the player character’s friction is set to zero.

I read an article from Mike Bithell about how he solved this problem in his new game Volume. My solution is very similar, but it jumps straight to the correct movement angle rather than incrementing by 5 degrees and re-testing. Here’s how it used to work:

And here’s the new, smoother version:

Another thing I forgot to show off earlier is that now, Joan’s feet move much more realistically when you’re turning in place. I also added an option to display a reticle at the center of the screen, for the purpose of lessening motion sickness in some players. It’s disabled by default because no one has complained so far, but it’s there if you need it. Here’s a GIF showing off both new features:

That’s it for this week. Thanks for reading!

Posted in Lemma

New trailer!

Gearing up for Midwest Game Developers Summit this weekend. Tune in next week for my first expo post-mortem.

In the mean time, the old trailer was looking woefully outdated, so here’s a brand new one!

Posted in Lemma

Screenshot Saturday 178

Small update. This week was bug fixes and more improvements to the level editor (more on that here).

In other news, we were grateful to get some coverage from Monday Night Indie! Unfortunately the stream highlighted some pretty major issues with the tutorial, so…

Brand new level design!

That’s it for this week. Thanks for reading.

Posted in Lemma

Evan Todd. Christ follower and indie game developer. Running, music, programming, games, art.

  • RT @westmaaan: with the invent of modern computers and the Erlang language, programs can now safely crash faster and repeatedly 6 hours ago
  • September 11 is the best day to fly according to my friend, because the airports are completely empty. 12 hours ago
  • Cold shower > foam roller 13 hours ago
  • @SP_Of_AND I was talking about Unity components. So, door #2. But door #1 is very interesting, especially for multi-threaded games. 1 day ago
  • It's that moment when you as a player go "oh crap, that can actually happen!" 1 day ago