Thursday, September 19, 2013

Fun in the Mech-Moment

One of the things I've always struggled with is that I really like making games where you can build things, but I also really like making games where you get a really interesting moment-to-moment feel. The two don't really intersect.

As an example of moment-to-moment feel, think about Crackdown (or Saints Row IV). Moving your character around is fun. Think about a good racing game. Think about Pilotwings. Spider-Man 2. There's a simple joy in moving around that comes from a combination of very tight controls mixed with skill challenges. It's fun to move around AND there's an interesting place to move around in, basically.

I made Astrophobia with that kind of thing in mind, although it wasn't "fun" so much as "atmospheric". But... I was having a really hard time enthusing myself to actually turn it into a game, because there's no construction involved.

So I started to think about construction and movement in the same moment. And I started thinking about mecha. Mecha are actually far more suited to construction than combat, and they're large enough to give you a range of view that allows you to build things.

In terms of construction, I have some fun thoughts on that involving a slightly bizarre combination of Minecraft's crafting bench and Populus' land-clearing... but in order to make it worth playing, the mech has to be fun to pilot.

In oldschool mech games, the piloting was an ongoing strategic challenge rather than actually being fun in and of itself. Nobody played Mechwarrior because they enjoyed slowly slouching behind a hill. They slowly slouched behind the hill because they liked playing Mechwarrior.

Newer mech games tend to have mechs that move like first person shooter heroes, blitzing around the game map like crazed weasels. But speed doesn't make piloting them fun, it just reshapes the combat. Piloting the mech is occasionally fun, but more often than not it's still just an ongoing strategic challenge, just like movement in Quake 3 or Left For Dead or whatever.

I was considering, then, how to make a mech fun to pilot. How do you make the player go "HOLY MOLY I JUST WANT TO RUN AROUND AND LOOK AT STUFF IN THIS MECH"?

A lot of the fun in games like Crackdown come from a striking verticality and a lot of collectibles. The collectibles pull you to the next building, while the verticality provides a roughness to the motion that requires you to be vaguely skilled and strategic, switching between climbing, running, jumping, and gliding.

While we could try to make our planets more vertical, that's not really a great idea because our verticality would be broken terrain, which wouldn't be all that fun to navigate. We do want some verticality, especially in specific challenging areas (mountains), but in general verticality will have to play a much smaller role due to our lack of structured surfaces.

To replace it, I plan to use surface type.

Think about a typical airless rock like our moon. Its surface is shaped primarily by meteor hits. Craters on top of craters.

While it may not be perfectly accurate, we can model these surfaces as having different textures. The bottom of the bowl of the crater has been blasted flat down to the rock, so it's a hard, relatively smooth surface. The lip of the crater is where the heavy debris fall, so it's got a kind of heavy dirt-like texture. Outside of the crater is where the light debris (dust and sand) land. The rays radiating from the impact are where large pieces of debris skidded along the surface, clearing a swath clean of dust and leaving bare rock.

As a mech, you would navigate these different areas in different ways. The flat, hard surfaces can be simply walked/dashed across, and you can land or leap without damaging them (unless you're a really heavy mech). The dirt-like slopes are generally amenable to you, especially if you're a lighter mech, but they are slopes and you do leave footprints as you pack down the dirt, even perhaps sliding down the slope. It'd be better to switch to whatever high-traction mode you have, perhaps even using your hands if the slope is severe.

The dust areas... well, dust is basically a liquid to something like a mech. You can walk through it, of course, but you'll sink in it. Throw up huge clouds of dust if you're moving quick or landing, reshaping the dust fields into dust dunes. Drowning in dust is hard on your joints and/or intakes, of course.

But navigating dust doesn't have to be a pain. You just have to change your mindset. You can leap across dust fields - landing in the dust with jets a-blazin will drive it away, then you can jump again before you get swallowed in it. Or have a ski mode where you have jets propel you along on skis. You'll kick up dust, yeah, but it'll all be behind you. Just remember to change back into foot mode when you reach rock... you might even have to jump over that ray where there's exposed rock.

Planets with atmospheres have a different jumble of terrains, but it's still the same kind of deal where you switch stances or navigation methods.

I'm thinking that controlling a mech will be something like this: WASD and mouse camera, just like Lara Croft, right? Shift runs. Space fires jets. If you are holding shift, the jets fire to help you accelerate along the ground (horizontally). Otherwise, that's a jump. You can hold space to keep firing jets, whether to make your jump longer or continue your jet-assisted sprint (especially useful on soft terrains where you want to move fast and not get stuck). Jets will automatically fire to prevent you from cratering after a fall.

Holding control switches your gait to its secondary mode, whatever your design has made that. It might be your feet changing to skis, your hips extending for a lower center of gravity, wings popping out of your back, scrambling on all fours, and so on. That's all up to how you build your mech.

Navigating the world can be done just by walking everywhere, if you want to suck - you can navigate all of Saints Row IV's city without jumping or sprinting, too. But in general, you'll be switching out between jumping, dashing, sprinting, and clutching (whatever your secondary mode is) to help you keep a good speed across varying terrain types. This is more important than your average game, because it takes a considerable amount of effort to get up to speed, but there's really no maximum speed. You can cover vast distances if you have a good lane and a suitable mode to keep your speed high. Skidding is obviously a big factor here, as is ploughing into a terrain type while you're in the wrong mode (or just slamming into a cliff).

Now we need a reason for the player to want to navigate through this world.

One reason - a big one - is the construction half of the game. Different parts of the planet have different resources, and are amenable to different kinds of buildings. So you're likely to have outposts quite removed from one another. You could use jets (if atmosphere) or rockets (if not), but that wastes a lot of fuel and you have to maintain them - and they can really only go between outposts with landing strips/pads. Railways and roads are handy, but you have to build them.

For much of the time, the easiest way to get between settlements across the rocky, blasted landscape will be by mech. This is why a good top speed is often important: you might be trying to cover hundreds of kilometers.

In "overseer" mode you can simply switch between settlements, but if you want to transfer people or resources you'll need to actually have something physical move from A to B. NPCs can use mechs, rovers, trains, or trucks to transfer resources, and you'll be relying on that a lot. But there's also times when you want to transfer something faster, or something that can't be automated. For example, crew cycling to keep people from going stir-crazy. Cables for an emergency repair. And so on.

But just wandering the planet is also fun, because you're in a mech. The things that interest a mech are not the same as the things that interest a human, and this is where collectibles come into play. Forming a "chain" is the basis of any movement-oriented game, whether we're talking about Crackdown's collectible skill orbs, Pilotwing's floating rings, Mirror's Edge's next glowing red structure... the idea is you have to make the player want to go to a place, and the easiest way to do that is to put up a marker of some kind that they want to reach.

In our case, we'll be using the construction half of the game to support this.

Various survey points will be indicated - typically the center of craters and the highest peaks. Reaching one of these does a quick (zero-time) survey of the surroundings. This does a few things.

1) It improves your general knowledge of the planet, slightly increasing the performance of people who work there.

2) It reveals anchorpoints.

3) It reveals, after a day has passed and people have analyzed it in detail, hidden resources.

Anchorpoints are simply places where the underlying rock or ice is unusually solid and reliable. Buildings on anchorpoints will be the "tall" variant, significantly better than the "short" variant normally deployed. Hidden resources are similar: resource tiles are part of what allow you to build buildings (playing the role of a "slot" in a minecraftlike "crafting surface"), so uncovering a small resource deposit means that you may have gained the ability to place an unusual building in that area and can therefore build a more robust base.

Your mech can reshape the earth and designate drop points for buildings at any time, so these aren't simply collectibles. You may find yourself reaching an anchorpoint and stopping, looking around, stamping a flat spot and dropping a building marker on it. It's a combination of exploring and base building.

You may also want to do this groundskeeping near already existing bases, because your mech is good at carrying cables and rails and so on, so you can build the infrastructure of the base if you want. Just be careful: heavy mechs will stamp down dirt and crush rock as they move. Actually, you'll probably leave a trail of destruction in the landscape even in a light mech, if you're moving fast. It's part of the fun.

Another factor unrelated to this is weather.

Even on airless rocks, there is something akin to weather. Plumes of dust you've kicked up, the heavy beat of the sun, even asteroid impacts. In places with weather, wind, rain, sandstorms - even just clouds blocking out the sun.

One aspect of this is the heat or cold. I like the idea of mechs having to worry about hot and cold. You can build your mech with heaters or coolers to blunt the effect somewhat, but in general you'll have to blow coolant (a limited resource) or spend energy (making you unable to move your limbs for a moment).

I like the idea of making your run take these into consideration even while you try to keep your speed up. Run through dark areas, because coolant is 3x more effective when the sun doesn't vaporize the mist. Heat yourself while you're arcing through the air in the middle of a jump - you don't need your legs right that moment... but be careful not to tip over in midair!

I also like the idea of wind, especially with vision-obscuring rain or dust. I like the idea that you can see a given range, and beyond that it's just wireframe or IR-reconstruction or something. This means you can "see" from the point of view of not careening off an edge, but you can't see what kind of terrain it is. You'll have to deduce it from context or play it safe...

Heavy winds can buffet even a mech, and I like having to take them into consideration when you jump. I think the ideal solution would be to have a constant wind gauge, but also a "wind in five seconds" gauge that you can use to either avoid getting swept off your feet... or jump into the air and let it take you in the direction you want to go in a sudden gust. Mind the dust in your joints, of course.

Unrelated to everything, I like the idea of this psuedo-voxel system because it can highlight the trail that mecha leave. If you're trying to track a mech, or find a fallen meteor, or figure out what buildings were damaged, the game can simply compare the map you had to the real map and, if your map has an incorrect tile, it'll fix that tile and flash a little spire of light. So tracking a mech means moving in the same direction and watching for which particular stamped-down areas weren't stamped down last time you were here. They'll flash.

Anyway, that's my idea.


Ezequiel Calderara said...

Looks like a great idea...

I love building AND i really love mechas...

Also, it would be great to be able to have your player (i mean being able to exit the mecha and enter it)... so you can build parts of the mecha too...

I love mechas, but i hate that the all concepts ends there...
I want to have a mecha to build stuff, but also i want to be able to build that mecha, or at least the parts of it.

If you follow the road of this idea and start making a game. Consider me as an alpha-tester :P

As seen in Iron Man (which it's kinda a Mecha) the UI it's all about the hood... =)

You should check this out:

So you can use some google+ community feedback here... =)

Craig Perko said...

The idea actually descends from a really complex mech-building concept, so constructing your own mech is a huge part of the concept.

It'll be a few days before I can start to prototype it, but I'll probably post the prototypes to YouTube.