Screenshot Saturday 194

Just a quick update this week to confirm that I am in fact alive. The iOS contract game is just about done. I’m pretty happy with it.

Now it’s back to work on Lemma:

I’ll be running a booth, speaking, and participating in a panel at the Ohio Game Dev Expo next weekend! Come on out and hang with us!

Posted in Life

Shaders: How Do They Work?

Yesterday I gave a talk at Dev Workshop Conf introducing the basic concepts of vertex and fragment shaders. Unfortunately I don’t have a video, just this one potato picture:

It’s probably for the best, because Chrome locked up on me halfway through. The slide deck is pretty cool though. It includes over 20 interactive WebGL samples, complete with source code. Check it out and let me know what you think!

Posted in Life

Screenshot Saturday 190

Well friends, Lemma is still on pause while I do some 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

I’m taking 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
et1337


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

Archive