Wednesday, September 29, 2010

Conversation starter #3

Sure-fire topics for easily striking up conversations with strangers:

With guys: Shaving
With new parents: Poop
With Pacific Northwesterners: Dietary restrictions

Approximately two-thirds of Seattle-area residents (a number I just made up) have some sort of dietary restriction, whether due to ideology, allergy, or both. If you're at a party just say "No thanks, I'm gluten-free right now" and you'll be off and talking with a bunch of the attendees. "Oh yeah, I have a gluten allergy too. These cookies are too good to pass up, though."

You can cross this with the new-parent poop topic: "Yeah, we're trying cutting lecithin and nuts from her diet; her poop was looking sort of greenish and she was howling at all hours of the night."

Thanks to preschool I now know that peanut allergies can be classified into airborne and contact variants. Parents take turns bringing snacks for the class and holy cow does that afford opportunities for dietary-restriction talk.

I have uncharitable theories about why this is. The Northwest is full of tech types who believe that religion is superstitious nonsense that is beneath them. Unfortunately for all of us, the universe is capricious and hard to understand, much less control. The urge to do both is within us all, though, and it finds its way out one way or another.

My related theory is that food allergies is a religion that does not set off the "no other gods before me" alarm in Judaism/Christianity/Islam. Thus it is a good mix-in religion. The Northwest is full of people who have been transplanted from all over the world. A mix-in religion is a great way to bond people of different faiths together.

Monday, September 27, 2010

Minecraft, Layton Reviews

Took a week of vacation at home; sigh, yes, a “staycation.” Amongst other things I managed to play a few computer games:


I've spent a ton of time playing this game. Rock, Paper, Shotgun ran a play diary which convinced me it was worth shelling out for in its alpha state. I have not been disappointed.

Here's a fan-made trailer for the game:

Minecraft (in survival mode) drops you into an infinite, randomly-generated world. Your immediate goal is to survive the nights, when various monsters come out. Once you have your basic safety assured, though, you are free to explore, dig mines for rare materials, and construct grandiose architecture. The game's in alpha and has been built by one man so far. Due to its increasing popularity he is hiring help though.

Professor Layton and the Unwound Future

Just finished this third game in the Layton series of puzzle games. It's as charming as ever; the production levels are steadily rising as the series progresses, with more voice acting and more beautiful animated movies than I remember in the previous installments.

A Layton game strings together a big collection of brain teasers with a barely-related story in which Professor Layton and his boy sidekick Luke solve mysteries. In this case they have received a message from someone claiming to be Luke from ten years in the future, requesting aid. Layton's lost love also comes into the tale; she was a scientist who died in a mysterious laboratory explosion ten years prior.

If you get stuck you can spend hint coins for increasingly specific tips. If you've played the previous Laytons, I think they've dialed back the puzzle difficulty quite a bit here. I don't mind too much; I was fairly frustrated in a few places in the first game.

A couple other games I've been playing but haven't finished:

Zak and Wiki: Quest for Barbaro's Treasure

A point-and-click adventure game for the Wii platform. Kind of fun. I'm playing through it a little bit at a time with my four-year-old.

Dragon Quest IX: Sentinels of the Starry Skies

I am generally pretty burnt out on Japanese role-playing games. This one seems like it's quite charming, despite having a very, very traditional battle system. I'm trying to save my JRPG stamina for the Ghibli-co-produced ones coming out next year so I don't know if I will finish this one.

Monday, September 13, 2010

Brake Line

This weekend was busy with hiking on Cougar Mountain, attending the Puyallup State Fair (quite an Internet-savvy fair; see the URL), and having company over. My friend Pedro tried out the lunar-lander-on-a-disc game I've been gradually making. He figured out the trajectory plots quickly, but found the rocket's auto-rotation confusing. I need to get more data points on that. The rest of his complaints were things I know about and plan to fix: landings need to be more emphatic, with less bouncing and floating around. Landing targets need better visibility from orbit.

Up until now I've had three trajectory plots: the ballistic trajectory, which is where you go under gravity's influence alone; the powered trajectory, which shows where you go if you thrust continuously in your current aim direction; and a braking trajectory which shows the quickest way to reach zero velocity. This last one I have been unsatisfied with. It gives a rough idea of the turnaround point for deceleration, but I want something that gives more information. Here's what I've got so far:

The red line is the brake line. It's a closed curve made out of the points of minimum velocity for all thrust directions. In other words, if you thrust continuously in a particular direction, when your velocity reaches a minimum it will be somewhere on that curve. The powered trajectory plot's inflection point sweeps around the curve as you change its heading. (It doesn't quite touch in the picture above; this is because for my initial prototype I'm assuming a constant gravity vector for the brake line plot.) The intensity scales with the difference between the rocket's current velocity and the velocity at each point on the curve.

The goal is to kind of show you what the powered trajectory will do as you sweep it around in a full circle, without you having to do that. It is pretty much as I'd envisioned it, but I'm still learning to fly with it so I'm not sure yet about whether I like it or not. I've posted a version to the game's site if you want to try it out and weigh in with an opinion. Remember that the gravity part doesn't match up, though, so it is not yet good enough for precise maneuvering. (There's also the issue that this represents the rocket's center of mass; the actual rocket occupies space around that so you have to take that into account. I might eventually try a Minkowski sum of the rocket's bounding circle with the curve if I'm feeling ambitious.)

Tuesday, September 7, 2010

Ramps and Rescuee Running

Work on my lunar-lander-on-a-disc game has been slow but steady. None of the pieces I've been working on are anywhere close to done. Here's a clip demonstrating where things are at:

The rocket has a couple of gangplank ramps that can be folded down. I'm still working on the physics of them. The ramps have a combination of several different constraints in the Chipmunk physics engine: They have a pin joint and a rotational limiter for the hinge, and then some sort of motor for opening and closing. I experimented with a rotational motor and a winch type of thing attached to the tip of the ramp. Ultimately the ramp hinge and motor need to be able to fail, too, if they're pushed too hard.

The little people on the surface now move toward the rocket when it's on the ground. “Toward” is a tricky concept. I thought I might be able to get away with local optimization (head in the direction on the ground that moves you toward the rocket) but quickly discovered places where they get stuck: mostly on slopes with a bit of concavity pointing toward the rocket.

I think what I will end up doing is identifying some “closest” point on the terrain and then determine the short way around the planet to reach it for each rescuee. I still need to limit their movement so they can't go around underhangs. Eventually I want them to run to avoid being directly under the rocket, and to approach the expected landing site even before the rocket has landed. Lots and lots of little details like moving more slowly on slopes, and waving only when they see you but think you might not see them, or something like that.

The main worry I have at the moment is that sitting around waiting for guys to board the rocket will be boring. Rescuing ten people before this change took me about five minutes, so about 30 seconds apiece. It looks like that time could easily double. That's not a problem so long as the player feels engaged. With the flight portion I didn't feel engaged until I decoupled the attitude control from the thrust direction so it was easier for the player to keep the rocket under thrust the whole flight.

I'm thinking about having some Starship Troopers-style spider enemies that pursue the guys on the ground. If you had to supply suppressing fire while they ran to the ship it might keep things interesting.

I also envision (although I don't know when I would implement it) having little scenarios associated with each rescue. Like you might have already-rescued guys come down the gangplank and wave people in, or maybe there'd be someone who needs carrying so they would have to go out and help with that. Little bits of pantomimed story that would spark the imagination.

The current version of the game is available on its website. The ramps go up and down with the G key (I guess I was thinking of landing gear).

Thursday, September 2, 2010

A blast from the past

A friend and I made a CGI script ages ago (1996, probably) to generate random names for fantasy role-playing games. We used the basic templates (e.g. Blank of Blank) but the word lists eventually got a bit silly. Have a chuckle:

RPG Game Name Generator