Screenshot Saturday 190

Well friends, I am still mired in contract work. I also have only a few slides done for my shader presentation next week. This whole month is crazy. But I thought I’d hijack this dev blog to show you the game I’m working on, because it’s starting to look kinda cool!

It’s a top-down iOS survival shooter designed as a sort of franchise tie-in. The budget is pretty low so most of the assets are pulled from the Unity asset store. I’ve only done a few models myself, mostly just weapons.

Here it is in action:

Did you notice the Frost Giant completely smash through that turret? He can also smash through enemies, trees, walls, and weapon benches. It’s like my favorite feature.

The client has an artist working on the main character, which as you can see is not animated yet. The visuals do feel a little cobbled together due to the lack of a dedicated artist, but I’m trying to compensate for that with really solid and deep gameplay.

For example, you can swipe to do a quick dodge roll that also doubles as a melee attack. To enable the turret, you have to purchase a battery (or hope one of the enemies drops one) and carry it on your back over to the turret. If you do a dodge roll with the battery on your back, it goes flying ahead of you, and it might get close enough to power the turret, or it might explode upon impact with an enemy.

There are already four weapons, three enemy types, and over 20 missions (specific challenges that confer XP). I’ve worked pretty hard to stay disciplined on this project, avoiding scope creep and unnecessary features. It’s kind of shocking how quickly it’s coming together. Here’s how the game looked a couple weeks ago:

In case you’re wondering, the bar on the right side is for reloading your weapon. You swipe down to reload. I’m a big fan of levers like this in touch-based games. It’s just so much more satisfying than tapping a button, especially when it’s accompanied by great chunky reload sounds.

The game will definitely be out on iOS, and probably Android as well. We’re considering a Mac/PC/Linux release, but I kind of want to get back to Lemma as soon as possible, so we’ll see. I’ll definitely post here when it becomes available.

Now I’m off to build some more slides. Hopefully in a few days you’ll be back here clicking through an epic, interactive slideshow / WebGL adventure.

Thanks for reading!

Tagged with: , , ,
Posted in Game design, Life

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;

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!

 

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
et1337


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

  • It's great how John Carmack never plans presentations, he just exposes a glimpse of what's going on in his brain, and it's brilliant. 10 hours ago
  • If handled badly, that little interaction would have been huge news. But since he handled it so well, you'll never hear about it. 10 hours ago
  • John Carmack did a great job with this potentially incendiary question. youtube.com/watch?v=vzmbW4… 10 hours ago
  • Quote of the day from a 5-year-old rubbing my arm hair: "you need to shave all this off" 13 hours ago
  • Jumped over two dead raccoons on my run today. Suddenly I'm getting weird looks and I can double jump? What's going on 1 day ago
Archive