Screenshot Saturday 196

This past weekend I exhibited Lemma at the Ohio Game Dev Expo. It was an awesome time. Extra Life raised over $9,000 for charity (yes, it is in fact over 9000).

The Oculus Rift was a huge hit!

I worked on various improvements right up to the expo. First, some new textures for moving platforms and doors:

This is the first texture I’ve created that has any kind of directional meaning. The reason is that until this week, I had no control over how the textures mapped to the voxels. It was all procedural. So if I put an arrow graphic in a texture, there was no guarantee which way it would face.

Now  I have editor controls to at least rotate and offset the textures, so I can have more meaningful texture design.

Next up, I wanted the menu to be more visually interesting to attract people to the booth, so I spruced it up a bit.

Both before and after the expo, I fixed a ton of issues with the existing levels. I especially reworked Forest quite a bit (once again… sigh…).

Every time I do it, it gets a thousand times better. At some point I have to draw a line.

I’m also still plugging away at some exciting new levels. Sneak preview:

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

Posted in Lemma

Mass Murders, Christianity, LGBTQ, and GamerGate

With a headline like that, what could possibly go wrong?

In this article I present an idea that may help both sides of GamerGate survive the ordeal. Simply this: negative movements are counter-productive. Positive movements affect change.

What is GamerGate if not a negative reaction? You could say it’s in favor of journalistic integrity, but it’s more accurate to say that it’s against journalistic deceit, despite the efforts of some GamerGate supporters to redefine the movement in positive terms. It can’t escape its reactionary negative roots.

The other side suffers from the same problem. Those journalists and organizations identified by GamerGate as “Social Justice Warriors” mounted the attack over the past few years in articles and other media which condemn gamer culture and promote an “us vs. them” mentality more frequently than they promote diversity.

By now, everyone has picked a side. Bi-partisan discussion is rare. How do we solve this? By reframing everything in positive terms.

I turn to an example from outside the industry. I think Christianity is on the tail end of a decades-long struggle with the issue of LGBTQ individuals. Many Christians changed their interpretation of the Bible to allow for alternate sexualities and genders. No problem there. However, some Christians simply cannot read that into the Bible no matter how hard they try, and they cannot abandon their faith. For them, there are two options:

  1. Openly condemn, alienate, and otherwise crusade against the LGBTQ community. Essentially, become a bigot.
  2. Respectfully show the LGBTQ community what Christian love is supposed to look like without interfering with their lives. Yes, you can do this while still maintaining a belief that their sexual/gender orientation is sinful.

Just for a second, put yourself in the shoes of a hardcore, born-and-bred, farm-raised conservative Christian. You are deathly afraid of the “gay agenda”, a scourge which will rampage across your home country and destroy everything you love. How hard would it be for you to choose option 2? Yet many Christians do this.

Of course you know the Christians who choose option 1. Westboro Baptist Church is the most horrific example. How effective were they? I haven’t heard from them in years. They generated an immense amount of vitriol, probably without changing a single person’s mind. More than anything, they damaged Christianity by driving LGBTQ individuals away from other, more welcoming churches.

The point is, negative movements don’t work. They’re actually counter-productive. Most Christians figured this out in the example I just gave. We in the gaming community have not figured this out yet.

The reason is, it’s much easier to be against something than to be for something. The tiniest injustice on either side of GamerGate instantly mobilizes a massive social media army, because it’s easy to get outraged and click “Retweet”. Both sides of GamerGate exhibit the lowest form of slacktivism.

So, “wat do?”

If you are pro-GamerGate: I don’t know if your movement can be salvaged, which is a shame. You’ve already tried to turn the focus toward positive things like integrity and respecting consumers, but GamerGate will always be a negative reaction against something at its core. Heck, #NotYourShield has a negative right there in the name. If you can, abandon ship and start a new campaign focused on the positive things you find important. Forget the half of the game industry that seems to hate you. Prove them wrong, not by posting a video showing how nice you are, but by forgetting the conflict and doing something positive that fulfills your goals, regardless of what people think. Maybe make a game!

If you are anti-GamerGate: Stop attacking; you’re only throwing fuel on the fire. What does that mean in practical terms? This will sound incredibly controversial (steady… let me explain before you crucify me), but don’t talk so much about harassment, prejudice, and the like. Instead focus on the great positive things women and other minorities are doing in this industry.

Charlie Brooker covers the topic of mass murders in a brilliant 2009 segment of Newswipe.

He quotes Dr. Park Dietz, the famous forensic psychiatrist:

We’ve had twenty years of mass murderers, throughout which I have repeatedly told CNN and our other media, “if you don’t want to propagate more mass murders, don’t start the story with sirens blaring.

Don’t have photographs of the killer.

Don’t make this 24/7 coverage.

Do everything you can not to make the body count the lead story, not to make the killer some kind of anti-hero.

Do localize this story to the affected community, and make it as boring as possible in every other market.

Because every time we have intense saturation coverage of a mass murder, we expect to see one or two more within a week.”

I think it’s not a huge stretch to extend this advice from mass murders to harassment. Of course we all need to be aware that it happens, but focusing on the harassment itself only invites further attacks. Instead, focus on how much these minorities have accomplished, and only mention harassment in passing. They should not be admired for being a minority who puts up with a lot of hatred. They want to be admired for what they do, period. And there’s plenty to admire, so let’s focus on that.

For further reading on the subject of antagonism, tribalism, and politics, I leave you with a wonderful in-depth article written by a libertarian-ish Jewish psychiatrist entitled I Can Tolerate Anything Except the Outgroup.

Posted in Game design

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; *= 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

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