Driving Games, Turning Radii, and Helping Players Deal with Unrealistic Acceleration

You’re driving in a parking lot. As you turn into a space you realize that you’re going to hit something–perhaps the curb or a lamp post. Maybe you’re just going to park over the line. You back up a bit, do a little S-turn to redirect the car, and get into the space.

8-19-16 - Parking Diagram

This works because real cars are capable of accelerating very slowly. Part (2) is the key, and it’s quite difficult if you’re doing more than about five mph. After all, parking spaces aren’t very wide; you’ll overshoot if you back up at speed. Substantially redirecting the car in a small area requires the ability to accelerate gently, and use that slight velocity to get into a carefully-chosen position.

Arcade-style driving games generally have strong acceleration, and that means the little maneuvers necessary to correct a missed turn are quite difficult. By the time one is ready to put the “S” in the s-turn, part (2) in the diagram above, one is already back at the starting point. The effort to get off the obstacle ends up looking like this:

8-19-16 - Parking Diagram 2

This can go on for quite some time.

Assuming slowing the car’s acceleration isn’t an option, the solution is to change the turning radii when the car is moving forward and backward:

8-19-16 - Parking Diagram 3

This isn’t realistic–but that hardly matters. Arcade racers are all going fast, about keeping control at the edge of the performance envelope, about doing unreasonable, death-defying, exciting things. Struggling to get back on track doesn’t check any of those boxes. Make turns behave unrealistically so that I can back to them when my terribleness slows the game down. 😉

Link: Merchants of Araby

There are a small number of designers and companies whose products I’ll buy sight unseen. Jay Treat is at the top of that list.

Jay’s Merchants of Araby is on Kickstarter now. I’ve never played MoA, in playtest or final form. Nevertheless, this is a snap-back for me. Jay is an amazing designer and a past master of social games; if his name is on a negotiation title, it’s going to be great.

I’m not getting paid anything from Merchants of Araby, and my name isn’t on it anywhere. My only connection to MoA is that Jay’s a good friend of mine–and that’s no surprise, he’s an awesome person. If you knew him, you’d be friends with him too. Take a look at his games, and MoA in particular; they’re worth your time.

Olympian Challenges

The Olympics raise many game design questions, separate and apart from those involved in the individual sports. What is the best way to organize tournaments so that players are motivated to do their best? How can the matches best be presented to viewers who aren’t familiar with the game being played? Who are legitimate competitors, and who makes that decision?

Sadly, there’s an additional question as well: how does one restore wonder to the Olympic Games, a sense of awe at the remarkable feats being performed, when one is all too aware of past achievements marred by later revelations of doping, steroid use, and other wrongdoing?

I’m sorry to say that I don’t have the answer. I hope that someone does.

Seeking a New Algorithm

I’ve run into an efficiency issue while coding the new version of Phalanx. While it’s not game-breaking, I very much want a game that’s meant to run 24/7 on arcade cabinets to be as easy on the hardware as possible. Thus, I thought I would raise it here, in the hope that someone might have insight.

Phalanx is played in real time on a board.

Screen Shot 2016-08-12 at 11.46.48 PM

Although the game is played in real time, it is effectively divided into turns–one turn per frame. In each turn, the movement rules are as follows:

  1. A piece can move if the space it is moving into:
    1. is currently empty, or
    2. will be empty this turn (e.g., because the piece in it is leaving).
  2. A piece cannot move off the board, or into a space containing water (the blue area in the middle), either of the goals, or another piece that is not going to leave this turn.
  3. Pieces move in number order, starting with player 1’s pieces and then proceeding through player 2’s pieces. (This is terrible, and messing with the algorithm is a good time to change it.) In the event of a conflict during movement (e.g., two pieces want to enter the same space), the earlier-moving piece takes priority.
  4. If a piece is part of a formation, the entire formation cannot move if any individual member of the formation cannot move.

To implement those rules, the game proceeds as follows:

  1. The game loops through all the pieces that want to move.
    1. All those that are moving into an empty space do so.
    2. All those that definitely will not move (e.g., pieces blocked by water) are marked as not moving.
    3. If a piece wants to move and is blocked by something that might get out of the way (e.g., another piece that hasn’t had its turn in the loop yet), that piece is skipped for this loop.
  2. The game repeats step (1) until all pieces have moved or been marked as not moving.

This algorithm consistently produces the correct results, but the performance hit is rough. Is there a better way?

 

All The King’s Theories

One of the great joys of game design is that there’s always something new to learn. There are so many fields involved in creating a game intended for public release that no one person can master them all. It’s always possible to find something new to explore.

Today, for example, I did a lot of audio mixing. Having no particular audio experience, I had to learn the skills involved from scratch. Needless to say, I touched only the surface–but even what I was able to learn in a workday was fascinating. The audio in the new version of Phalanx is better for having learned it, and future projects will no doubt benefit as well.

I don’t have anything especially insightful to say about audio mixing. I’m simply struck by how neat it is that I got to spend some time studying it at all. On the list of things I never thought I’d get to try . . . .

The Unattractive Process of Attract Modes

Today I did the attract mode for the latest version of Phalanx wrong in two entirely different ways. Fortunately, a conversation with a colleague taught me the right method in the end. Lest I forget in the future, here it is:

  1. Code your game so that inputs are stored, along with a time stamp. Preferably the inputs should be handled by a manager devoted entirely to them; it then sends the data to an intermediary, which in turn helps it get to everything that needs to know what the inputs were.
  2. In addition to the input manager, build a system that reads move records, sending “inputs” as the game timer reaches their associated time stamp.
  3. When there’s a great playtest game, put its record into the record player.
  4. Set up your game so that the intermediary reads from the input manager, your attract mode so that it gets “inputs” from the record player.

Voila! Exciting attract mode matches, all thanks to good code architecture.

Crime Scene Neanderthal at the American Museum of Natural History

This summer I’ve had the privilege of working on the Crime Scene Neanderthal interactive activity at the American Museum of Natural History in New York. CSN casts visitors in the role of a detective who must seek out the origin of mysterious bones unearthed during a construction project. Along the way, visitors learn about the latest scientific discoveries regarding Neanderthals, perform forensic investigations, and explore the Museum’s Hall of Human Origins.

My primary role was in using my playtest-running skills to gather and analyze visitor feedback. Testing games that aspire only to be great games, and activities that need to be both entertaining and educational, had a lot in common. I was very glad to be able to contribute, and I’m looking forward to seeing the final results when CSN formally launches later this year.

If you’re in the New York City area, you can find CSN at a cart in the Museum’s Hall of Human Origins on many weekdays. It’s absolutely free, and will telescope to suit your schedule: you can play for five minutes or for more than 40, as you prefer. Give it a look!

A Brief Delay

Over the weekend I got great playtest data on Playful. Sadly, I’ve been unable to follow up on it due to the need to make arrangements for the coming school year. Forgive, if you will, the non-update; I hope to be back on the horse soon.

Phalanx3d’s Attract Mode

With some additional feedback put in and a touch of bug fixing, Phalanx3D was ready for another round of playtesting at about noon today. That meant I had time to work on an attract mode–the sequence that plays while an arcade game is waiting for coins.

Traditionally attract modes have featured the game being played comically poorly. Fighting games show off combats in which the martial artists don’t seem able to touch each other; shmups neglect the unique mechanics that make high scores possible. At times one wonders how these displays ever manage to attract anyone. 😉

Originally I set out to replicate that cheerfully terrible play, if only as a matter of historical interest. Attract modes are always like that, after all. Shouldn’t I nod to illustrious arcade forebears?

I couldn’t reconcile myself to the obvious design weaknesses of that approach, though, and I’m now thinking that using the attract mode to teach the game properly is a better bet. That will mean pre-recording solid games that can be used to demonstrate key aspects of play. My expectation is that that will be done by the weekend.

We’re still on pace for a start-of-school release. Further news as events warrant . . . .