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;
output.lighting *= 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!
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!
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:
- 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.
- Realize that it probably sucks, but hold your nose and continue designing the rest of the game around that rotten core.
- 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.
- 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:
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!
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!
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.
Our animator Antonio has been hard at work on new animations. Check it out!
Guys, the level editor is really close to being done. Here’s some cool features:
You can link entities together. For example, you can have a door open when the player enters a trigger volume. Or have a light turn on. Or both.
The UI now displays buttons for all available commands at any given moment, and their keyboard shortcuts. Different commands are available depending on what mode you’re in, and what entities are selected.
There’s also Steam Workshop support! Since each player only gets 1 GB of Workshop space, and our map files were up in the 8-9 MB range, we had to make some pretty big changes to the map format. Geel did some bit twiddling to cut down the map size by 50% (more about that here), then we Gzipped everything for another 50% size decrease.
That’s all for this week. Thanks for reading!