Brian Crick

One Eighty

So I’ve been toying with the idea of including combat sequences in Tinselfly, a project that was once defined in my head as being absolutely bereft of violence. And I’ll get to that heel turn in a moment, but first I wanted to talk about cameras.

If there’s going to be action, I want it to be first-person action, and if it’s going to be first-person, there was this one niggling problem I wanted to solve, that pops up in every first-person game I’ve played: tunnel vision.

Humans have a nearly 180 degree field of vision horizontally. In contrast, a video game with a wide camera might give you 100 or 110 degrees, if I’m remembering things correctly.

I’d like to give you a wider field of vision than your typical game. If there’s a threat coming at you from the side, I want there to be a good chance that you’ll see it onscreen.

I’m shooting for 150 degrees here. So here’s a swiveling camera with a 150 degree field of view, and you can see why games generally don’t go this high.

Camera-Flat-17-September-2013

There’s this really awkward pinching effect when you make standard video game cameras wide angle. Things on  the edges look really distorted, and everything in the center looks farther away than it ought. This is what I’m trying to avoid.

The animation above uses what’s called a planar projection. A projection is the process of taking your 3d game world and figuring out how to translate that to a 2d medium, your screen.

Plane-Projection

In this illustration, you’ve got a camera, a point in the 3d game world, and a 2d rectangle sitting a fixed distance from the camera, onto which the point is drawn. You draw a line from the point to the camera lens, and wherever that points intersects the rectangle, that’s where it will be on screen.

But this is just one kind of projection. You know how there are different map projections? Like the one where Greenland is way bigger than it should be, and the one that looks kinda like a banana peel? They all express the same thing, but try to reduce distortion in different ways. You can totally do the same thing with video games, though I’ve rarely, if ever, seen it done.

My first idea was to go with a cylindrical projection.

Cylinder-Projection

This time, the camera is in the center of a cylinder. You figure out where your point-lens line intersects the cylinder, and then unwrap part of the cylinder so it’s flat like your computer screen.

So that looks like this. Same camera position, same 150 degree horizontal field of view, same 180 degree swivel:

Camera-Cylindrical-17-September-2013

This removes the edge distortion. Completely. So completely, in fact, that it doesn’t even look like you’re turning anymore. It looks like there’s this flat image scrolling sideways across your flat screen. Which, basically, is what’s happening. You’re just unwrapping and flattening a different part of your cylinder.

This isn’t quite what I want either — a little bit of distortion can be an important visual cue that you’re turning around in a 3d world, and I want to preserve that.

So I went for a hybrid solution — something between a planar projection and a cylindrical one. There’s still a cylinder, but the camera isn’t in the center of it. It’s sort of like a flattened cylinder.

And that looks like this:

Camera-Hybrid-17-September-2013

I’m really, really happy with this. I think I’ve struck a good balance here between reducing distortion and preserving the visual cues you get when you’re turning around.

That having been said, there are a couple possible issues here:

  • This might cause some people to get motion sickness. Personally, I just don’t ever get motion sick, so I really don’t know.
  • It’s a burden on the computer, to produce this effect. I’ve got seven cameras in my scene, all writing to a different part of the screen. That doesn’t make the frame rate a seventh of what it used to be — it’s more like, I dunno, two thirds — but it’s still noticeable.
  • Also, since your field of view is wider, there’s more stuff to draw, further reducing the framerate.

I should probably just allow the user to set the field of view/ cylinderiness if they so wish.

* * *

So about that whole violence thing.

I’m not completely against violence in games. I’m ok with it if the violence is leveled against stylized spaceships or inanimate objects. And with the right approach, I’m willing to include violence in a more naturalistic setting:

  • Your targets must not be living things, or sentient things like thinking humanoid robots.
  • Winning a fight against a target must not have any intrinsic value, like showers of coins or experience points. The player must never be encouraged to pick a fight with a random bad guy because they’re behind on character advancement.
  • Winning a fight against a target must not destroy the target. (It may, however, temporarily disable the target.) The player must never be encouraged to see eradication of all targets as the long-term solution to the threats the targets represent.
  • To defeat a target permanently, the player must solve puzzles or do other non-violent things that cause the targets to do productive things instead of harmful things, or move them to a safe place.
  • Each target must present a specific threat to your community, or the game world. Being a mortal threat to the player is not enough. Said threat must express itself in terms of real mechanics, like targets blocking a path, disabling a piece of equipment belonging to the good guys, or enabling the use of equipment belonging to the bad guys.
  • Targets may never respawn unless it is made clear that respawning would naturally happen in a believable way in this universe.

Shooters are fun. Jumping on funny monsters and watching them fall off the screen in Super Mario Brothers is fun. Swinging your sword in Zelda is fun.

Point and click adventures are many things, but I’m not sure fun is one of them, generally speaking. And Tinselfly has mostly been defined as a high tech point and click adventure. I’ve been worrying about the fun factor.

I’ve been asking myself, can I have fun, action-based — dare I say it, violence-based — gameplay in Tinselfly that follows these rules above? And I think I found my solution within the TV show Supernatural.

* * *

Supernatural has this character Dean who’s a badass, shotgun-toting, Impala-driving, bacon cheeseburger devouring action hero who goes around ridding the world of nasty ghosts, among other things.

Here’s the deal:

Dean looks badass.
He carries guns.
He shoots ghosts.
He eventually defeats the ghosts, sending them to the afterlife where they belong.

And… Shooting the ghosts can never defeat them.

Now, Dean is not above outright murdering evil people if he thinks it’s for the greater good. But I just want to focus on the ghosts. Dean looks like a violent action hero, but the manner in which ghosts are defeated in his universe is (arguably) non-violent. To defeat a ghost, you have to find the bones of the dead person the ghost came from, and burn the bones. This usually involves lots of research trying to figure out who the ghost is, where they’re buried, who might have stolen the bones if the bones aren’t where they’re supposed to be, etc.

Research.

But, ya know, badass research.

The shotgun Dean carries around is loaded with salt. In this universe, throwing salt at a ghost causes it to disappear temporarily and stop bugging you — but the ghost will come back after being salted. A shotgun just delivers salt in an amusingly badass way.

And it works. I’m seven seasons into this show and just now realized that Dean is a shotgun-toting, ghost-destroying badass who doesn’t dispatch a single ghost with his shotgun. The shotgun is an affectation.

* * *

So I can give Robin a sword. She can temporarily disable mechanical baddies by destroying their shields, as described here. She can solve puzzles trying to figure out what’s controlling the baddies, and re-purpose them or send them to safe places where they will do no harm. Her mental state can affect her fighting, so this can mesh with the character-driven puzzles I want to include as well. And her fighting can affect her mental state, which could lead to more interesting character development.

Robin can look and feel like a sword-swinging badass, without ever running anyone through. And I think this can work, and I’m comfortable with this approach.

Gotta go design and model a mechanical baddie now.

Fully Realized

Continuing to work on that Tinselfly scene. In fact, I’ve done little else in my free time lately.

Right before bed on Sunday, I was working on this light-up sign. And for just a fraction of a second, I thought it was real, spinning silently above me on that late summer night as the crickets chirped and leaves rustled around me.

The weekend was ending. Shops were closing and the city was strangely quiet. It was time to go home.

It was kind of unsettling.

* * *

Given how long all this has been in development, you’d think that I’d be overjoyed to be able to see this stuff on screen at long last; to be able to walk through these sets that previously existed only in my head. Like how you might want to see a well-realized version of your favorite book, with all the sets and costumes and everything just the way you imagined them.

And… that’s completely not how I’ve been reacting to it. Which is kinda surprising me.

I guess you could say that getting this stuff out of my head makes it more malleable; an idea is hard to react to. Once something’s up there on screen, I’m more willing to change its purpose, appearance, or cut it and related objects entirely. Initially, my city here was supposed to be half a kilometer in diameter; now, it’s down to half that, reducing the area over which the player can travel to a quarter of what it originally was supposed to be. And the scope of the project in general has gotten significantly smaller.

Now that I can see this, I am so much more willing to produce work that I find merely adequate and make cuts to all areas of the project.

It’s kind of liberating.

For the most part, this place does not feel any more real to me than it did before I started modeling it. It is, however, significantly easier to work with. And that’s what’s important right now. Feeling real can happen later.

Almost Human

Been working a lot on my Sam model for Tinselfly lately. I think it’s starting to look pretty nice.

character-3-june-2013

 

Here are some disconnected thoughts about the whole thing:

  • If you told me a few months ago that that best way to do this would be to manually create and move every single point on the model (instead of using higher level tools of some sort) I totally wouldn’t have believed you. But that’s exactly what I’m doing here.
  • Right now, I’m just concentrating on making something that looks like human — not this human. Sam will be dark-skinned, with a wider, flatter nose than this and fuller lips.
  • Sam is probably dark-skinned because I have pretty in his character description. It wasn’t a conscious decision; I just think of dark skin when I think ‘pretty’. I don’t know what, if anything, that says about me.
  • I added some tear ducts. It may seem like a stupidly tiny detail, given that this character will be like two inches tall on screen, but that really helped me understand the shape of the eyes.
  • I am not using any specific reference. I am not tracing a photographed model or a hand-drawn character design. That would probably make things easier, but I am finding that using references of all ages, races and genders is helping me better understand facial structure in general.
  • I’m not sure what’s up with the shading on the chin, lower lip, and above the ear. As far as I can tell, everything’s pretty smooth there. Gotta look into that.
  • It’s nearly impossible to work on the ears without frequent renderings with shadows turned on.
    ear-3-june-2013 Without shadows, the ear is just a strange blob; so much of what we think of when we think of ears isn’t shape, but color.
  • My model (including the body) has something like 15,000 triangles right now. I don’t know if that’s acceptable or not.
  • I can’t wait to move on to Sam’s costume. 😛

Yay, I Get to Fill Out Forms!

Over the weekend, I tried to do some level planning for Tinselfly, which mostly revolved around creating a form I can fill out for every scene in the game (I hesitate to use the word level, as locations will be re-used from scene to scene). Currently the form looks like this:

form-empty

The bulk of this form is a grid showing all the locations the player can ever visit in the game. The idea here is that, for each scene, I’ll write down what areas the player needs to go to, what areas they cannot go to, and any special redressing I need for my sets (like, I might say in this scene, Old Spaceport has been reduced to a pile of rubble).

Even though there’s no maps really, having this abstract list of places I can draw on has already helped me sort out my thoughts about where the characters need to go and how they relate to their environment.

I’ve decided the number of locations I’ll have will be exceptionally limited. I’m hoping that, by re-using these locations, I can save time modeling stuff, and I’ll have a more coherent narrative because you’ll see how these familiar locations change in response to the story.

The rest of the form is a bunch of questions I want to make sure I’m answering for each level. They all take pretty much the same form, pairs of things like ‘what do I want to express here?’ and ‘how am I expressing that through my game mechanics?’.

So here’s an example of a partially filled out form.

form-filled

That the form looks like something I’ve printed out and filled out by hand is important: I have to believe anything I write here is mutable, and that if I have a random idea I can just jot it down and worry about vetting it later. I have to believe these look like rough notes, and there’s a point at which I have to trick myself into seeing this form that way.

(Though I do like the idea that these are 8.5×11 and I could print them out for reference later on, if I wanted to.)

Anything having to do with a specific playable character is color coded. Robin is blue, Sam is green, Rachel is red. So I can quickly glance at my questions and see what I don’t have filled in, if one color is missing.

Unused locations are scribbled out, and I’ve got some vague arrows showing where the characters will be going on the locations that are used.

I’m sure I’ll be adding locations as I go, and that’s a good thing; hopefully, I’ll be able to just fill out these forms before doing too much modeling or coding, and then I’ll have this nice list of every location I need to model, and a vague sense of how the parts of each location should relate to each other.

And I’m sure I’ll be changing the layout of the form as I go; I might want more questions to answer, or just more space in which to answer them.

Self-Documenting Mesh

Over the last couple of weeks, I’ve been working on a character model for Tinselfly, and I’ve learned that it’s not enough to make a mesh that looks right. Just like classes in a computer program or layers in an Illustrator file, getting something to work is one thing; getting it to be sensible and maintainable is quite another.

So here are a few things I’ve learned lately.

torso-old

The torso above is functional, the way a hastily constructed computer program is functional. It has the right shape. There’s a neck and body and arms and some definition to the collarbones.

But from an organizational standpoint, it’s a complete mess. Compare that to this torso:

torso-new

Here, I’ve created a pretty strict grid. The overall shape is basically the same, but it’s easier to tell what’s going on. My mesh doesn’t just need to have a certain shape: it must also communicate to me, the modeler, what that shape is. Like well-named variables and functions, this mesh is self-documenting. I can look at these long, smooth curves on the grid and get a good sense of what those curves represent in three dimensions. I can’t really do that with the first torso; the lines, such as they are, are jumbled and jagged.

Working in this sort of way also makes editing easier. The modeling software I use has built-in tools to select whole lines or circuits on my grid, like the orange lines here:

torso-new-loop-select

I can also add detail to my mesh fairly easy. If I decide my character’s sides aren’t smooth enough, I can quickly add a loop cut, shown in purple here:

torso-new-loop-cut

Loop cutting breaks every square along the loop in half, so I can refine a specific area. And once cut, my mesh is still a nice, neat grid which can be further refined with more loop cuts.

torso-new-loop-cut-after

Just imposing a grid on the mesh isn’t enough, though. This face has a simple grid structure:

head-old

Trouble is, this grid isn’t structured that logically. I probably wouldn’t want to take a random cross-section of the face and move it, or scale it, or whatever.

head-old-loop-cut

If I want to add some detail to the eye sockets, I could add a loop cut, like I did with my torso. But this loop cut wouldn’t just affect the eyes: it would also add lots of unnecessary detail around the temples and back of the head.

So what I need to do here is change the way the grid works, just in one localized area. Like so:

head-new

Here, the area around the eyes is its own closed polar grid, while the rest of the face retains the square grid it started with. And now, if I want to add detail to the eye sockets, I can add a circular, eye-shaped cut, like this:

head-new-loop-cut

That loop makes sense to me. It represents an area of the model that I think of as one unit. And again, just seeing the polar grid around the eyes helps me understand the geometry of the eyes, more than the previous approach did.

One thing I’m struggling with here is this idea of adding pockets of detail. Suppose, for instance, I wanted to smooth out the contour of the eyelid. Right now, I’d have to add a loop cut like this:

eye-loop-cut

…Which will add extra smoothness around the eye, but will also add unnecessary geometry down the cheeks, and along the neck, and who knows where else. I’m trying to come up with simple, general-purpose strategies for adding detail, like this method of smoothly transitioning from a coarse grid to a finer one.

grid-resolution

That might work in some instances, though maybe not the eye specifically. I still have much to learn here.

Wider, Fatter, Stronger, Better

 

A stupidly long time ago, I posted these costume ideas for Tinselfly.

costumes

And somebody commented how it was funny how all those little people, boy or girl, young or old, kinda looked like me. The long, mouthless faces, the skinny bodies.

I am skinny.

Oh, sure, I’ve gained a slight belly in the last few years, and my mother pokes it whenever she sees me, but I probably still qualify as skinny to most people.

When I sit down to draw or model a a character, I think of myself as a baseline. If the character is described as thin, I’ll try to make them thinner than myself.

And then I wonder why they don’t look quite human.

I am a bad baseline. But just saying that doesn’t give me a tangible sense of what the baseline is. So let’s try to throw some numbers at this.

I’m 5’11” and barely reach 150 pounds most days. I know BMI is problematic, but that puts me right at ‘normal’ according to the CDC. And by ‘normal’ they mean ‘healthy’. Average for a an American is apparently like 50 pounds heavier than I am.

According to this handy figure drawing book I’ve got, an average male has a hip width/head height ratio between 1.5:1 and 2:1. I’m 1.4:1, below the bottom of that scale. Also, my shoulders are thinner than the book’s average, at around 1.5 heads to the book’s 2.

So I’m not just a bad baseline; I’m a really bad baseline, and I’d still be a really bad baseline if I gained lots of weight, because of the slightness of my frame. I guess I already kinda knew that, but the numbers help cement it. An ‘average’ adult male would have a wider frame than me, by several inches; and they would weigh significantly more. I’m not sure how weight translates to bulkier shapes when drawing, but it’s fair to say my characters should be a lot bulkier if I want them to look like average, ordinary people.

 

Sam is Pretty

 

I’m kicking off my more-natural-looking Tinselfly characters thing by not doing my lead. I’ll do a supporting, but playable character named Sam. He’s in the Navy, and will be wearing a uniform like the character on the left here:

uniforms-4-april-2013

This should be well within my abilities to model. Sam will probably have a shaved head, so I don’t have to worry about modeling hair. His uniform is neatly tailored, so I don’t have to worry about drapery or wrinkles. He’s tall and thin, so my current NPC model isn’t too far off from his body.

And he’s pretty.

Why does that matter? Because, from a certain point of view, pretty = less complicated. Smooth. Symmetric. Crisply defined.

Fewer polygons.

* * *

Part of modeling a character is getting to know the character–and I’m already starting to do that, having done nothing more than take the head on my old model and start to make it more natural looking. Which is good, because Sam is mostly defined in terms of being a foil for the lead.

sam-4-april-3013

So here’s what I’ve got so far: when I say ‘Sam is pretty’ I don’t mean that pretty is a thing that Sam naturally is. I mean to say that Sam puts work into being pretty; it is something he values. This is part of his character, not part of his appearance.

Sam looks quite dashing in his uniform, and knows it. But it’s not vanity so much as an obsession with neatness, and an aversion to things that are unorganized.

This works out well, because I’d planned on having a level where Sam is exploring the jumbled fragments of a destroyed, floating city, and having Sam try desperately to put part of the city back together in his head could make for interesting gameplay.

* * *

I also like starting with Sam because said exploration level is fairly self contained; I can just dive into it without worrying about how it ties in with other things. It would be a good starter level, and I desperately need one of those.

 

Fleshing Out

There are many, many things stopping me from working on Tinselfly right now, but I think the biggest one is my whole approach to character design. To recap, here’s what my lead currently looks like:

0005z21s

Or, at least, that’s what she looked like before I gutted everything and tried to write a totally generic system where you could define a character’s body shape and color and multiple, layered clothing items at runtime.

The character generating thing has been going terribly slowly. So I’ve decided to ditch it and just… make characters in Blender. If a zillion-dollar game like Bioshock: Infinite can have copy/pasted extras, so can I.

I also want more naturalistic characters. I mentioned in an earlier post that the skinny, porcelain look was supposed to tie into the themes of the story and that, while I might decide I’m wrong, this seemed to be they way to go.

Well, I’ve decided I was wrong.

I specifically want to call out the fact that this character is a little heavy, a little ambivalent about her appearance, a little ordinary looking. I specifically want an ordinary looking hero; I think we could use more of those.

I also need the human characters to mesh with these house-sized alien characters, who are kinda like… if you took people and scaled them up and added more detail, the way you’d take a chunky ship or prop design from an old sci fi show and added more detail for the new, rebooted movie version.

I don’t have to ditch everything I’ve got — working with my existing model, I should be able to give the character realistic proportions, and real facial features, and the messy, unstyled hair I always imagined the character would have if I met her in real life. When I first made this model, I didn’t have the modeling skills to do that. Now I’m pretty sure I do.

And the big benefit of doing this reworking is, it should be easier for me to think of the character as a real person, if she looks like a real person; and it will be easier to think of the story beats and whatnot. I need to believe the character is real if I’m going to make progress here.

Twelve

Hello 2013! I’m not much for resolutions, but I kindasorta decided to join this One Game a Month thing. It’s basically what it says on the tin: A bunch of developers are pledging to make one game, every month.

This may end up being a very bad idea, or it may be just what I need.

The rules are pretty loose, so I’m reading ‘make’ as ‘finish’, not ‘start and finish’ a game every month. With that in mind, I’ll be including my existing projects in this endeavor, and using this as motivation to get those finished and out there.

I’ve got four game projects currently in development:

  • Tinselfly, a character-driven action/adventure hybrid;
  • Operetta, a 4x / shooter hybrid;
  • Blind Tigers, a co-op board game; and
  • an untitled cyberpunk-themed board game.

In addition, I could tack on some things I started years ago but never completed:

  • Gemslinger, an arcadey Facebook game; and
  • Mika’s Tavern, a turn-based strategy game with no actual violence.

And that’s six projects right there.

* * *

What I’d like to do for the rest is just relax and make things I’d want to play, since I have so much trouble finding things I want to play. Nothing terribly innovative or demanding. Lunchbreak-sized games.

What games I do start for this will be small, 48-hour game jam sized things so they don’t take up too much of my time.

I’d like to make an attractive dungeon crawl. A simple RTS that’s so small in scope it doesn’t even require scrolling or a minimap. A completely derivative platformer with cutesy characters.

The only way I’m every going to work on stuff like this is within the context of a larger endeavor filled with projects I see as more worthwhile, and I think it might be good for me, to force myself to work on things that are known quantities.

* * *

Scheduling will be tricky here. I want to keep Tinselfly moving, so I’m probably going to be working on two things simultaneously all the time — Tinselfly plus another project. The existing board games and Operetta are bigger than your typical 48-hour gam jam stuff, so I want to get those out of the way first.

* * *

To kick this off, I’m starting with something to gamify the process of learning volume control and multiple-hand playing on a keyboard. I could really use something like this; my skills in these areas are terrible.

If I still had a pen tablet, I might have started with something to gamify the process of learning pressure and angle control, things I never really learned. Oh well.

 

 

Fun with Insanity

So I was explaining the weird history of my Tinselfly mechanics to someone at last night’s game developers get-together, and something just sorta clicked.

I’ve been hesitant to start level design, even though everything’s finally in place for me to do so, in part because I’m unsure about the fitness of my core mechanics in this project. My rationale goes something like this:

  • My current mechanic was designed from beginning to end to be a fun combat system.
  • Tinselfly will include very little combat.
  • Therefore, I should pick should a mechanic more appropriate for Tinselfly and use my combat mechanic in a game set in a universe with random combat encounters or something. Both Tinselfly and said combat-based game would be more fun because I did this.

However, I think this is a logical fallacy. The mechanics suitability for a combat-based game does not necessarily make it unsuitable for Tinselfly.

Instead, I could be thinking this way:

  • My current mechanic was designed from beginning to end to be a fun combat system.
  • Compared to combat-based games, non-violent games can often be lacking in that hard-to-describe fun factor.
  • Therefore, I should adapt my mechanic to Tinselfly, since I’m already confident it’s will be fun, and I because non-violent games deserve that same fun factor too.


The story for Tinselfly is pretty bleak in parts. And while there are certainly games out there — great games — that you feel compelled to play even though they’re not what you’d call ‘fun’ at all times, I don’t ever want the players of this game to see the moment-to-moment gameplay as a drag.

* * *

Part of the problem with adapting this mechanic is the inherent absurdity in many combat-based games, absurdities that have to be there to make the game sustainable.

Take dungeon crawls. Where did all those monsters come from? More to the point, why do the keep coming back after you slaughter them by the hundreds? What do they eat? Why does everyone’s discarded armor fit you, regardless of species or body type?

If I’m going to have constant, fun challenges for the player, I might do well to think a little less about where those challenges are coming from. There should be an inexplicably inexhaustible supply of people to help. An absurdly dangerous trek to the grocery store. Bureaucracies that are puzzle-like, not just in terms of paperwork, but in the layouts of civic buildings.

The Tinselfly universe, the version sitting in my head, is very real to me. It is nuanced and detailed and believable.

That could be a problem.

I can’t just gamify the player’s path through a naturalistic universe or the player’s perception of a naturalistic universe.

I have to gamify the universe itself.

Copyright © 2017 Brian Crick.