modelling


I’ve got back into making model after model in Blender– current count is 140.  When we last looked in on Ticai, the game looked like this.  Now it looks like this:

Ticai contemplates encroaching urbanization

Ticai contemplates encroaching urbanization

Now I know why, in a game, you’ll often be right next to interesting-looking spaces you can’t get to. Why can’t I go over and explore it?

A game level, conceptually speaking, works like this:

gamezones

There’s a very detailed area where the player can explore. Here you’ll get real doorknobs and window frames and pipes, 3-d trees, and all the hidden triggers that make the level work, like working doors and ladders.

Just outside it is areas you can see into, but can’t get to. Because they’re close, they have to be pretty well rendered, though of course nothing will be interactive.

Outside that is a land of increasing fakery. Here the architectural details are likely to be part of the texture, and for any object, only the sides facing the player need to exist. Even farther out, you get the skybox. In Hammer you can have objects there, coarsely modeled, so you can see far into the distance. At this point you model a tree by pasting a picture of a tree on a transparent quad, and far details like clouds may also be 2-d pictures.

You can’t get into those nice nearby areas because it’d get too close to the fakery zone, and the illusion would be spoiled. The level designer may need to put a lot of work into inaccessible areas, but they’ll only work enough to make it look good from the accessible one.

(This applies to Valve games, as well as games like Dishonored, Mirror’s Edge, Bioshock, Mass Effect, and Dragon Age. It doesn’t entirely apply to open worlds like Skyrim or Saints Row or Arkham City, which have to use different methods to manage the huge maps– though note that interiors still involve a level change. Unity allows huge maps, but I don’t have a development team to fill them!)

Here’s what the city looks like in the editor:

What you'd see with a rocket jump

What you’d see with a rocket jump

Ticai can wander just the four city blocks in the middle of the picture. You can see that the modeling gets simpler outside this region, and even within it there’s some fakery– e.g. there’s no need to create roofs for buildings if there’s nowhere she can get high enough to see them.

You can see the map of the Nezi neighborhood, which I’m using for reference. Just to make those four accessible blocks, I’ve had to model about a third of the neighborhood, and I’m not done yet.

Here’s the mansion of the local aristocrats:

And that's just one wing

And that’s just one wing

I just redid the mansion this week– before the façade was basically a box with nice windows. You can also see a tree– Unity has a tree creator, which is good, because foliage is awful to model.

See the big white cubes in the city map?  Those are placeholders… maybe I can go model something to replace them with right now…

One reason games take so long… you keep re-implementing stuff, as you learn how to do things and your standards improve. Case in point: hands.

hands-comparison

When I first modeled the hands (on the left), I knew the modeling wasn’t good, but I was happy just to have hands. But for some reason I decided to redo them, and I’m absurdly happy that they look much better. As so often, the key is to have a good reference. The first time I was following a drawing of the whole figure; this time I used a reference illustration of just hands.  I also drew a better texture.

Plus, a technical Blender thing: in both cases, I made the fingers by extruding a square from the palm.  But this time I extruded non-adjacent squares.  That left a gap between the fingers, which is, you’ll note, how hands actually work.

Of course, I’d used the same model for several other characters, and the work had to be propagated to each one.

The same sort of thing seems to happen in professional game development– witness this description of the making of Bioshock, which suggests a) a game is made and remade multiple times over the course of its development, and b) you should probably never work for Ken Levine.

Although it’s been out for 10 years, Half-Life 2 has always been in the “pretty good graphics” bin in my memory. Till now. Jeannot van Berlo has re-created the train station in Unreal Engine.

Here’s the original…

2014-04-04_00001

And here’s van Berlo’s version:

hl2-new-trains

Another shot from Valve:

2014-04-04_00004

And van Berlo:

hl2-new-side

I guess ten years has provided an advance or two.

I was just in the game to take the comparison screenshots, and I still think it’s fine, but the Unreal Engine version is certainly stunning.  More detailed, fancier lighting, and a grander scale.  From the screenshots, it looks a little busier– not quite as focused for the eyes– but it’s hard to tell what it’d be like in the game.

This post, though a bit breathless, is extremely interesting. It’s how an upcoming game, The Vanishing of Ethan Carter, makes stunning game imagery… essentially by taking a shitload of hi-res photos, then using software to turn them near-automatically into a 3-d model.

Let me guess, we dig up all the graves for coins and rusty weapons?

Let me guess, we dig up all the graves for coins and rusty weapons?

It’s certainly not a time-saver– you have to take pictures very carefully on location, and the whole idea is that assets aren’t very re-usable… you’re modeling an entire church, say, and not just making a tileable brick wall. The nice thing is that the textures aren’t tiled– they have contextually meaningful dirt and shade and mold and whatever. Photorealistic textures still look wrong and artificial if they’re too even, too widely used, or have no apparent flaws.

A quick way to test video game textures is to look at the edges of things. Take this very good work from Arkham City:

Wouldn't you take your gloves off for this?

Wouldn’t you take your gloves off for this?

It’s all photorealistic, but look at the way the combination dial just floats in the middle of the safe. Real things have transitions from one surface to another. There should also be shadows (and maybe distortions in the fabric) under the edge of Catwoman’s glove, and under that weird metallic knob on her shoulder.

Now, in a game, you normally don’t focus on that stuff… really, we want to be fooled. Especially in the middle of action, you can get away with pretty simple models.

If you’re trying to make a game on your own, on the other hand, learning about someone else’s new, better methods can be depressing. It’s hard enough making tileable textures! And god, don’t get me started on foliage. There’s a reason so many games are set in dungeons, sci-fi futurescapes, deserts, and sewers. They’re geometric! It’s still really hard to do good vegetation.

I’ve been working on my Unity game, on and off.  I finally more or less finished the street the heroine, Ticai, lives on:

ver-street-scene

There is something wrong with the lighting which I haven’t figured out… it seems to be very hard to get an even sunlight.  Some models just insist on being in the dark, even if they’re next to brightly lit models.  That yellow house to the right of Ticai’s head, for instance– I had to add a point light so it didn’t look like it’s midnight there.

This part takes forever because each building has to be modeled separately. I can re-use models, but I don’t want it to be too obvious when I’m doing so.

A still picture can’t show it, but I’ve tried to 3-d model rather than use textures where possible.  The windows and doors are 3-D, for instance.  It looks better as you walk around, and I read somewhere that polygons are cheap.

Here’s a view down in the sewers, complete with mystery corpse:

ver-sewerscape

Hmm, I should probably bevel those edges.

Sadly, Unity water isn’t as nice as Source water– it doesn’t reflect.

I keep plodding along at my (unnamed) Unity project, and it’s starting to kind of look like a game.  Here’s what it looks like right now:

shut up

Are you hungry? I hope not, because I haven’t modeled any food

There’s a few new things here, like the fire in the fireplace and the water in the pool, but mostly it’s modeling, modeling, modeling.  When I was using Hammer I could use Half-Life 2 assets, but here I have to do everything myself: the house, the furniture, the girls.  There’s even a little knife and spoon on the table.  All of these are modeled and animated in Blender, then textured.  (Yes, the furniture gets animated: doors, chests, and wardrobes open and close.)

I’ve learned some tricks to speed up the building and texturing– e.g., I built a single plank of that barrel, textured that, then replicated it to form the cylindrical shape.

Here’s what the whole house looks like so far.  Compare to this picture.  The only major furniture that’s missing is some shelving; I actually won’t model everything in the linked picture because it would get too full to move around in.  (Video game rooms are abnormally large and empty.)  However, there will be a lot more set dressing (pictures, candles, chamberpots, etc.).

talk

I should probably add a roof

I started to build walls and such in Unity, but the texturing got too complicated, and anyway there are too many fiddly details (like those closets).  So this is all models.  It’s easier to mock up buildings in Hammer… on the other hand, things like doors are far easier in Unity, since they can be duplicated at will.

More excitingly, there’s a dialog system now, and I have a story!

My main notion is to concentrate on depth rather than breadth.  The anti-model here are games like Far Cry 2, or Remember Me— gorgeous environments where the only things you can interact with are ammo and health packs.  Skyrim comes closer to the ideal, as you can pick up and drop objects, as well as use the forges and cooking pots.

For the dialog, I want to get past the thing where you have three dialog options, normally corresponding to aggressive, nice, or neutral, and half the time your choice doesn’t even matter.  Besides, if there’s just three choices, you can always just pick one and reload if it worked out badly.

In this game, you’ll take one of a dozen or so approaches– e.g. anger, naivete, flirting, curiosity, intimidation, probing.  The clever bit is that the more powerful approaches can only be used once per game.  So you can intimidate, or seduce, or kill, one NPC.  Hopefully this will make you think about which character to do what with.

Plus, there are actually three possible stories, and the same characters are involved in all three.  Ideally details of the story will randomly change between playthroughs, so a) you can play more than once, and b) there is no one right path through the game.  (So, think Skyrim meets The Stanley Parable.)

Will this work, or be fun?  I don’t know yet!  At this point there’s just a lot of modeling and dialog writing to do.  I was mostly trying to see how far I could get with Blender/Unity and wasn’t worrying about whether it would turn out to be a game or not.  So I’m happy to at least have a plan for the game.

I’m also really tempted to record the dialog in Verdurian (with on-screen translation), which is either an awesome or a terrible idea or maybe both.

Importing Blender characters and animations into Unity is supposed to be easy. Getting there is pretty horrific, though. As usual, nothing will work right away; you have to look at a million forum pages and tutorials, and swear a lot. One fun complication: both programs keep overhauling themselves, so half the time a method suggested in a tutorial won’t work in your version. And then there was the evening my Blender file got corrupted, giving me a distorted figure I couldn’t fix.

Still, I went back a save, refinagled, and now I have an imported figure that animates. (The image below is not animated, but hey, the pose is different from the original!)

That woman is bigger than my first car!

That woman is bigger than my first car!

I need to go look at more Blender tutorials now, because I’m sure I’m doing the animation wrong.  There’s got to be an easier way to repeat a pose, rather than copying bone positions one at a time.

She lost her hair, because my earlier save didn’t have it.  Unity wasn’t always getting her hair anyway– one more thing to check into soon.

For reference, the major stuff I learned:

  • I’m scared of the Actions tab in Blender now.  I was messing with that when my figure got corrupted.  So I’m just doing one long animation, and breaking it up in Unity.
  • Unity can read Blender files, so you can just put a copy of the file in your Assets folder, then import it.  Key bit: you can click on the asset again to change the import settings.
  • Unity has two animation systems… the tutorial for using one of them has about 50 steps.  Instead of doing that, I used the old system; the key bit is setting the Rig type in the import inspector to Legacy.

I spent about two evenings trying to get the animations to play, and it just wouldn’t do it. But using the simpler figure, long animations in Blender, legacy mode in Unity, it worked this time.  Now I even have two animations!

Next Page »