Thursday, June 23, 2011

Road Trip: The World

"You're making that face again," R said.

The first time I made that face was when I heard that R, J, and E were going to be road tripping in a Japanese car - one made in Japan, with the driver's side on the right.

I was making it now because I had just understood that the starting point of their drive was Vladivostok, on Russia's eastern coast.

"Because the Trans-Siberian Railway is for pussies?" I asked.

He nodded. "We don't need that kind of luxury. We'll be camping, mostly, across Siberia and the tundra and everywhere else."

Later, I asked about the southern hemisphere. "I thought driving around the world was good enough," he declared defensively. Apparently, I wasn't the first one to ask. I hastily explained that no criticism was implied. If they were driving across Siberia, who knows? Maybe they were driving across the Sahara and through the Amazon, too.

To sum up the trip in three sentences:

Go to Japan and buy a cheap used car. Drive it across the Eurasian continent. Then drive it across North America.

Or in one sentence:

Drive across the northern hemisphere with the steering wheel on the right side.
I was making a face because I thought they were fucking insane.

I was also making a face because I thought it was fucking fantastic.

The most exciting sight on I-15.
Road trips are great. I enjoyed crossing the U.S. twice in 2004, even on a limited, rushed schedule. When I had the time to do it properly in 2007 - two weeks instead of less than one - it was one of the best trips I had ever taken. With more time, we could take state roads instead of interstates, and spend time at every stop instead of only sleeping and then moving on.

On state roads, everything is awesome.
So if a road trip for one week is good, and two weeks is great, it follows that six months would be amazing.

Unless, of course, it turns out there's a sweet spot somewhere between rushing frantically from one place to the next and ennui, group tension, cabin fever, murder and cannibalism.

I can think of a few suggestions for staying sane on an extended trip.

Have a goal:

I don't know about you, but six months without something to do sounds excruciating. I'm planning a ten-day trip to the Philippines and even that long without something to procrastinate about would make me pretty uncomfortable. Come up with something to work on. It could be a document of the trip, whether in words, sounds, images, or video. It could be a project that you've just never had the free time for till now. Obviously, it'd have to be something portable. You don't want to lug around a two-ton block of marble.

Take a vacation from tripping:

Periodically take a day or two, or even a week, off from traveling every once in a while. Find a cheap place where you can hole up and catch up with what's going on back home. Work on your project. Sunbathe, chill out with a book, watch movies all day long. Take a break from sightseeing, going from one place to another, meeting new people, the works. It's hard to keep the good times rolling indefinitely. After your vacation vacation, you'll face the world with renewed enthusiasm.

Take some time off from your companions:

totes sole m8s 4eva!
Who knows, you might be soul mates that want to see exactly the same museums, the same pubs, the same sights. Go at different times anyway. Especially to museums or art galleries, everybody has a different pace. If you're based in the same city for a while, plan some days to pursue your own interests. Or go separate ways and meet up in a city further down the road. Absence makes the heart less murderous, reducing the festering resentment of the million little quirks you're subjected to on a daily basis.

If (when, dammit) I get a job here, I won't be able to go on an extended road trip for a while. Even if I don't, it would be pretty hard to justify one. So I guess I'm just envious.

Friday, June 17, 2011

Battleheart

A real-time tactical rpg for iDevices, Battleheart is the closest thing I've seen to our vision.

You have a squad of four characters and battle your way through a series of progressively more difficult levels.

You control your characters by clicking and dragging them to a location, to an enemy, or in the case of a support character, to a comrade. If you drag a character to another entity, it will begin auto-attacking or healing that entity, as appropriate.

The art style is vibrant and cute, reminiscent of the super-deformed style of characters from the Super Nintendo era (though much crisper and smoother).

The first boss battle.
The first half of the game is a joy to play, with new characters, equipment, special attacks, and monsters being smoothly introduced on a fairly linear curve. The difficulty level remained steady and the rate of rewards made it feel like you were getting one (or even several) new things every fight. Even better, special abilities can be reconfigured painlessly at any time, eliminating the need for the player to worry about selecting the "right" ability and giving them freedom to experiment and change tactics in between battles.

The boss fights are unique and require the player to think of new strategies to handle them, adding extra spice to the gameplay.

Tragically, you only get a brief taste of the spice: these strategies are one-off things. They're completely unnecessary for any other monsters, or for other bosses. And you only fight a boss once, unless you specifically revisit the stage - the bosses are not recycled as monsters in later levels.

Color the goblins dark blue, and the bat red, and voilá! All-new monsters!
Speaking of recycling, after the first half of the game, there are no new monsters - merely palette switches and dramatically higher difficulty parameters.

While the first half does truly shine, the second half comes to a grinding, screeching halt. Namely, the time it takes to level up (and consequently acquire new special abilities and equipment, as well as survive tougher monsters) goes up dramatically.

The end result is that the reward received for the amount of effort put in plummets. Yes, I spend more time playing it than I would if I were able to continue through the game at the same pace throughout, but my overall enjoyment is far less due to having to replay a level again and again and again in order to have a chance to survive the next one.

Greater attention to play balance would have made this game enjoyable all the way through - with the simple adjustment of a few numbers.

Next, a more critical look at the control scheme.

It's largely unimaginative and could be replicated with a mouse, despite the iPad's innovative interface. While it is possible to move two characters at the same time using multiple fingers, in practice it covers too much of the action.

The second and larger problem with the control scheme is trying to select a character when several of them are next to each other. Especially during critical moments when I need to select a character and activate a special technique to rescue someone from the brink of death, it's extremely frustrating when I select the wrong character and a character dies as a result, which usually means that battle is lost.

I imagine these issues are exacerbated on a smaller iThingy.

Despite its flaws, Battleheart is among the cream of the crop of iPad games. I hope to one day be able to create a game like this - but with richer and more reliable controls, not to mention an engaging story.

Gotta get back to coding.

Thursday, June 16, 2011

Circusing

Yesterday I went to the circus.

I am extremely fortunate in that a friend of mine performs in Cirque Du Soleil's Kooza show, and he invited me to come see the show and showed me around backstage afterwards. Backstage was excellent, but I must confess I was still reeling from the show itself.

I haven't been to the circus since I was a kid, unless you count the time I saw a Cirque Du Soleil show in Vegas. The title of that show was O, which could very well have stood for 'over my head.'

Contrary to all my previous circus-going experiences, the tent was quite cozy, with even the furthest row of seats commanding excellent views of the action. And of action there was plenty. A complete collection of circus acts - trapeze artists, tightrope walkers, contortionists, unicycles, you name it - melded with Cirque Du Soleil choreography and costumery.

The clown with a crown! His very existence is anathema
to native Japanese speakers.
But each of these acts are like pearls - beautiful individually, but with a string to hold them all together, exquisite. That string was the clowns, and my friend was their king. No, not metaphorically. He had a crown and everything.

The clowns were the comic relief, the easing of the tension, the breath taken after a death-defying act spiraled to its climax. They were the distraction as costumes, people, and sets were changed, props were set up. Who could possibly spare a moment to glance at people hoisting ropes when clowns are running amuck, hitting people with a nice ribeye steak?

(Upon reflection, the sheer thickness and size of the steak was wildly ambitious for Japan. If it were a real steak, it would probaly cost in the neighborhood of $50 here.)

Over beers afterwards, he told me that there were a number of jokes that they had to rework due to cultural differences. One example was a joke that in North America had been about female empowerment; nobody laughed at it here, so after frantic experimentation they hit upon a variation where avoidance of responsibility and blaming the innocent was the punchline* - then everyone got a kick out of it.

*The original joke was that they would take a female audience member and have her whack one of the clowns in the balls with the much-abused steak. The revised joke involved the king snatching the steak away, hitting the other clown in the balls, and handing it back to her - then, when the victim looked back in indignation, the king would finger the hapless audience member as the culprit. It's a classy show, as it should be.


Also, some of the lines that required audience comprehension were in Japanese. Whether the audience was laughing at them because their actions were funny, they used funny, exaggerated voices, or just because they were foreign clowns speaking in Japanese, was not really clear.

I should also mention briefly that the acts were very sensual, at times stunningly so.

You haven't been to the circus in years. They're not as popular as they used to be. Go check one out instead of just going to the movie theater. It's a great time. If you're in the SF Bay Area, I hear Teatro Zinzani is good. It's on Embarcadero and you've walked by it 100 times. (So have I.)

Also, quit being so down on clowns. Or I will hit you with a dead cow.

Wednesday, June 8, 2011

Things I worked on today:

  • Posted a blog entry
  • Programming
  • Photos
  • Reaching out to people who can help me in my job search

Stunningly productive.

Tomorrow:
  • An application for an English teaching job.
  • Finish up the Brasil photo set.
Decided not to implement collision detection here.

The programming I did today was to get objects moving around onscreen in response to touch commands. Then I did a fairly rudimentary simulation of acceleration by periodically updating the speed the object moved at. I took advantage of this to also update the direction the object is moving in, which is prrretty cool.

These will eventually have to become vectors, and instead of doing movement actions over time, I'll primarily be updating the locations directly. I'm enjoying making things happen, but for now it's buggy as hell and the code is poorly organized, so while I did clean out some gunk today, to follow up, tomorrow I would like to do some:
  • Refactoring. Is the technical word for it. But I'm an editor, and this looks like a nail, so I'm going to whip out my trusty hammer. (Protip: the hammer is my editing, according to Captain Hammer.)

For idiomatic smoothies that are incomprehensible yet delicious, take two parts metaphor and one part pop culture reference and set blenders to "mix."
Then enjoy.

Tuesday, June 7, 2011

15 Minutes of Fame

When the earthquake happened, I was on the way home on the Chuo line. The train had just pulled into Akihabara station when the world went a little crazy.

In the midst of the rocking and rolling, an email arrived on my phone. I imagined friends or family having seen the news on tv and attempting to find out if I was all right. Upon seeing whom it was from - a friend of mine who is a journalist at a major news publication - this idea was reinforced.

I opened the email.

It said, "arr."

DAÑOS SEVEROS Y MUERTE!
I was flabbergasted. For all I knew, the train was about to tumble off the tracks and collapse through the three floors of the station (which I would survive thanks to action hero-like reflexes and brute strength) and all he had for me was a piratical greeting?

I emailed back a rant intended to scorch his soul and fill him with shame for making light of my dire predicament.

He replied, "tell me more."

The results of that were printed in the next day's LA Times. Then it was reprinted all over the place.

It also seemed like a good idea at the time to let my parents know I was not dead. The first thing my father does every morning is sit upon his mighty throne and read the news, so I figured he would be aware of the earthquake and deeply concerned. However, his unhurried reply was, "Yeah, I already read you were alive in the paper. Also," he told me, the Orlando Sun-Sentinel and ABC news wanted to interview me.

Reveling in my newfound popularity, I quickly agreed.

The ABC interview was recorded by parents via iPhone and stitched together by me with iMovie, which I provide here for your entertainment.



Lessons learned:
  • I say "um" way too damned much.
  • When TV stations tell you they're doing the interview via Skype, yes, it will be video. Shave. Put on a nice shirt.
  • Look directly at the camera. Do not permit its medusa-like gaze to turn you to stone.
  • Brasil represeeeent!
  • It's all too easy to become a whore for attention after that first tantalizing taste.

Easy come, easy go.

Saturday, June 4, 2011

On the Relentless Death Engines of Isaac Newton

Assumptions were made.

Specifically, that if I planned to create a game simulating, to some extent, the vagaries of Newtonian space, that I would need to employ what is, in the parlance of les programmeurs, a "physics engine."

Physics: it's everywhere!
Upon consideration and note-taking and scribbling (in the fine iPad app known as Penultimate, though I prefer Notes Plus for things I might need to present to others) I realized that it may be possible to emulate a number of physics-like properties by extending cocos2d sprites without subjecting myself to the agony of physics frameworks.

Not that physics frameworks aren't wonderful things. It's just that Box2d and Chipmunk are in C++ and C, respectively, and I'd like to get a better handle on cocos2d itself before moving on to new jungles with new tigers.

I lost track of which was which.
The plan was to do a cage match, in which the framework which caused me less cognitive stress in the tutorial would emerge victorious. But since both made me want to stab my cranium with chopsticks* this plan was abandoned in favor of extending CCSprite and just faking the physics till I have no alternative, at which point the algorithms should be transferable and my grasp of cocos2d should be firmer.

Which is to say, my verdict on the Box2d vs Chipmunk non-debate is: they both suck if this is your first try at making a game. Chipmunk has an Obj-C port which is super exciting up to the moment you find out it costs $200 to license. And the separation between the physical representation of your world and the visual representation of your world is frustrating. Perhaps as I continue I'll find a good reason for this. Objective-C's delegates would seem to lend themselves to conveniently adding physical properties and interaction to visual objects, or vice versa, but alas.

A brief note on tutorials available: there is indeed a lovely series right here, but it includes some unsavory coding practices, including magic numbers, poor factoring, and unnecessarily costly algorithms.

* A maneuver indicating distress of the brain, immortalized by the renowned pop culture commentator R. Cota after being subjected to the film 'Gone in 60 Seconds.'