So hot, I was stopped by security

The recent heat wave in Singapore, and the unfortunate H1N1 epidemic reminded me of a story. I’ve only told this to a few people, but here is where you’ll read about the full story.

It was slightly later than the SARS period. People were frightened of getting infected. The basic detection method was the temperature check, so thermometers and heat scans were employed.

I was also looking for a potential job position, and I got an afternoon interview with a company. I arrived early because the location was a bit remote.

Now, it’s a habit of mine. Whenever I know something important is happening later, I stop drinking. Just so I won’t have to go to the bathroom at the most inopportune moments. I don’t know why, it’s just a personal quirk.

So I was walking from the bus stop to the company’s location, under the hot sun, in long sleeves and pants (thankfully no suit and tie needed), and heated, slightly sweaty and parched. It was a wonder I reached the security guardroom of the company not dripping wet from my own sweat.

Now this company had a very high security level. They had a full temperature head scanner. They had this device that scans people, and a heat map shows up on their screens.

Well, it was after the SARS period, so I could understand their security concerns. Someone from the company was waiting for me. He waited by the side while the security guard asked me to stand at a designated spot. Then the guard activated the scanner.

Apparently, my temperature scan looked like a sunset with lavish swathes of reds and oranges, because the guard told me to stand still again while he scanned again. Sensing something wrong, the adrenaline in me surged a little, which didn’t help cool down my body temperature. I held still. I even held my breath. I still failed the temperature scan.

The company liaison, surprised by this unexpected unfolding of events, took me to the inner parts of the guardroom, where the air conditioning was stronger. He also offered me a cup of water from the dispenser. Then he told me to sit and wait for a while first. I got myself a cup of water, drank and accepted his suggestion.

“I’m gonna fail the interview before I even step into the company office, aren’t I?” silently and matter-of-factly entered my thoughts.

After 15 minutes (or half an hour, I didn’t keep track), I stood up, and took the temperature scan again. I placed my feet at the exact position of the designated spot, shifting my shoes to fit the exact outline of the pre-drawn shoe print. My hands were held in a limbo of alternating tenseness and forced relaxation. I looked up as confidently as I could, keeping my breathing steady, taking deep breaths… And the guard scanned.

What took seconds felt like the time passed while running around a 400 metre track 2 times, then jumping into a pool to swim 100 metres and then work out a 6 digit long division. By hand. I was getting ready to dive into that imaginary pool in my mind when the guard said it’s ok. I passed.

The company liaison, obvious relief on his face, took me into the company proper. And the interview itself? Well, it’s not as interesting as the guardroom episode… alright fine, I’ll tell you about it some other time.

Obsessive character sheeting

So I was alone and bored of creating perfect characters. Tired of flipping through the rule books, I returned to my other hobby: playing video games.

At this point in my young life, I was also mildly fascinated with notepads. Small booklets, large A4 sized pads, lined pages, blank pages, thick pages, recycled paper. I was itching to write something on a piece of paper.

And I started “documenting” my games.

[Warning: What follows are some drawn out descriptions of games long past. You may or may not be interested in the relevance. Read on at your own risk.]

There was this platform game called Mappy Kids. You took the form of a mouse travelling through the levels, acquiring cash. Your goal was to acquire enough cash to buy stuff, to build a house, so you could win the heart of the female rodent of your dreams.

Your main form of attack was the kick. The power ups altered your kick. The normal kick sent an enemy straight horizontally away from you. A lightning kick sent an enemy flying away in a zig zag manner, bouncing from the bottom to the top of the screen. The loop-de-loop kick sent the enemy rolling in a wide circle.

Well, the kicks were fascinating, but they really came into play when you’re in 2 player mode. In 2 player mode, both of you compete to build that dream house. When you kicked an enemy into the other player, the other player would lose a stash of cash. If you’re quick, you could grab that stash. The various power kicks made it hard to avoid the enemy, who’s flying in a certain pattern. The fun multiplied when the other player, when timed correctly, kicked the kicked enemy again, sending the enemy flying back towards you.

What’s this got to do with character sheets? And programming? Well, I started jotting down notes on the power ups. And health bars. And the cash value. And items bought. To do this, I needed to understand the game play, not just as a gamer, but as a programmer. The programmer in me started translating game elements of that mouse I was controlling into representable code elements, namely variables. Not so much on game/code logic. I didn’t know about programming or even have a computer back then.

And I started on a rampage to turn every game into representable character sheets, even action games. Do you remember Super Mario Brothers 3 (which incidentally started me on the path of self-learning Japanese)? The game had the novel concept of storing power ups. Stars (for invincibility), feathers (for that tail for whacking), flowers (for that fireball throwing ability) and others. There wasn’t much to document, just power ups and the level you were at and stuff.

Then there was “Hitler’s Revenge”, based on the Chinese game book manual I have (yes, I still have some of those game manuals). It’s titled “Bionic Commando” in America due to it’s controversial name.

I played the version in the earlier parts of the above video (click through to the post if you can’t view it in your feed reader). The main mechanism of play is the hook. You use it to hook onto something, usually as a means of moving from one place to another. I’ll let the video show you what I mean.

There were others. I managed to distill the game elements onto paper. I learnt to store game statistics. How do I store this item? How do I know if the character has that power in the game?

As I tried my hand at game development, I asked myself questions such as, “Do I use words, or numbers to represent them?” or “Should I use int or byte?”

With a little more data (such as game progress), a character sheet is basically the game data. What do you need to keep track of when the player saves? The character sheet. When the player wants to resume game play, just load the character sheet. Because it contains everything you need to continue the game.

When bored, you max out character stats

I mentioned that I found a kindred spirit in pencil and paper role playing games in a previous article. I’ll continue the story here.

I was about 15 years old. I met this guy in school who’s an enthusiast on RPGs, the dice rolling kind. He’s willing to be the game master, and he told me to get a copy of the rules book. Well, I was young and broke, and didn’t know any better, and he told me to simply go photocopy his book. And I did. Oh well…

The game was of the Palladium universe. The game master used the one with super heroes with super powers (flight for Superman, adhesion for Spiderman). And mutants with mutant powers (think Teenage Mutant Ninja Turtles). And espionage and military and the like.

There were many rules. You had to know if your energy bolt was more powerful than a tank missile fired at you. You had to know if you’re flying, that if you’re still within range of an electrical force field that extends outward in every direction, including up.

You had to know what happens when two flying vehicles head toward each other in a “chicken out” situation. You had to know how to calculate damage to different parts of the vehicle to determine if it’s still maneuverable. You had to know how to determine the winner when an Aikido master meets a Tae Kwon Do master (never mind any pacifist nature of martial arts).

It’s a lot for a 15 year old to digest. I mean I had to think about what happens when an alien whose planet was stronger in gravity than Earth’s, landed on Earth (the alien would have higher mobility because he’s “lighter”. Hypothetically speaking).

But we never got around to playing it. There were supposed to be other players but I never got to meet them. I was excited, then confused by the rules, then sad that it took so long to meet, then resigned that we’d never meet.

What happens when you’re the only one?

You start making up characters. I prefer just one fictional character at a time. Since I’m the only one, I started uhm… cheating.

For the character stats that require dice rolls to determine, I uhm, used the uhm, maximum. So if Strength is determined by a 3d6 (meaning the sum of 3 6-sided dice rolls), I used 18. Basically, anything that depended on random chance, I removed the chance element and gave my character the best score (ever).

Then I chose the super powers. My preference is wingless flight (like Superman), advanced healing (like Wolverine) and being impervious (like… I can’t think of a super hero with it. Hmm…).

Then there were academic education and technical training. I chose a fair amount of scientific knowledge such as math (obvious, huh?) and biology. There were also skills such as lock picking, car mechanics and other skills that I don’t know in real life. Hey, just because I can’t tell the difference between a rear wheel drive and a front wheel drive in real life, doesn’t mean my character can’t in that fictional world. Oh, and I ramped up the skill level to 98%, the highest without breaking the rules.

After creating a few of these characters, I found them lacking in richness. A super hero who’s extremely strong, runs fast, deflects bullets, flies at sonic speed, throws energy balls and creates lightning fields, and is charming to boot, is boring. Perfection is boring.

The main goal of the game is not to create a character who can breeze through whatever challenges he face. It’s the trials and tribulations he had to conquer, and the solutions he used, that makes the adventure, the game, more enjoyable. Why do you think kryptonite exists for Superman?

And all this started me along the path of translating game statistics into character sheets. Which is the story, of another article.

[Update: The original title was “When lonely and bored, you max out character stats”. This seemed to have attracted some, uh, visitors, who were, uhm, surprised when they found that it’s not what they were looking for. Of course, they probably only looked at the first 4 words of the title… So I changed it.]

The Coffee Bean card discount calculation

I’m a loyal customer of Coffee Bean, despite a small grudge in the past. They have this cool Coffee Bean prepaid card, which I have. It doesn’t give discounts though.

What it does give me are 2 benefits (note that this is in Singapore, and still true as of this writing). The first benefit is that, for every $20 topped up, you get an additional $2. And for every dollar spent using the card, you get 5 points. Which brings us to the second benefit, that for every 100 points obtained, you get to redeem an equivalent of $1. There are other conditions, and I’ll explain them later.

It isn’t obvious, but there is a discount. It just kicks in after the purchase. I wonder what that discount could be? So I set out to calculate it.

Let’s assume we top up with $1000. It’s a nice round number, though I wouldn’t suggest dumping that much money into a card… The first benefit simply translates to an additional 10% on top of the top up amount. So we get an additional $100.

Next, let’s assume we completely spent the $1100 stored in the card. So we get 5500 points, according to the second benefit. And we translate 5500 points back to a dollar value, and we get $55.

So we pumped $1000 in, and we have $1000 + $100 + $55 in stored value. What’s the discount?
(1 – 1000/1155) * 100
which comes up to about 13.4%. Ok fine, it’s not exactly a discount. More like tacking on free stuff, but let’s overlook that, shall we?

The only reason I could come up with for not giving 13.4% discount outright to customers, is to keep them buying. Note that both benefits encourage future purchases.

For the hardcore readers who stayed this far, and really want to know more about this amazing card, here are the details. The minimum top up amount is $20. I favour the $10 denominations, and I usually top up in $20, $30 or $50. There are some rounding calculations with cents (I think they round up), so the calculation of points isn’t exact. And there’s a minimum redemption of 500 points, though you can mix point redemption and cash value. For example, you can redeem 500 points (to get $5 worth) and pay $1.50 with the stored value to purchase a $6.50 drink. Oh, and all points expire every 1st of April. No, it’s not a joke, and it might be something to simplify financial year calculations.

Update: As of 1 June 2009, the 10% additional topped up value will be stopped.

I suck at rolling dice

I really do. And I’ve a story to prove it. The origins are a bit complicated, since it involves a friend of a friend, who introduced me to another friend. It also involves a blog I read, an RSS feed and a series of podcasts indeed (hey it rhymes!).

I read Scott Beale’s blog, Laughing Squid. Can’t remember why I started reading it… Anyway, he posted something by Wil Wheaton. Now, I have no idea who Wil was, and after some reading of Wil’s posts (and some Googling), I found that he’s actually kinda famous. Wow.

Now Wil was writing about his experiences with Dungeons and Dragons (apparently he needs to save vs shiny when he goes to the local game shop). And I found out that he’s in a podcast, collaborating with Penny Arcade and PvP. I learnt fun facts about Jim’s Magic Missile and Rudy the Undead Hound (uh Ru-ru-ru-ru-ru-dy!).

So I Plurked about it. And a friend (originally a friend of a friend, but let’s not go there…) replied that he knew a friend who’s a Dungeon Master. And that’s how I found my first Dungeon Master. And I had my first game during that break of mine. Wait, there’s more…

I only knew there were 2 other players. So in total there are 3, including that Dungeon Master. One of the players expressed interest in playing a striker (meaning he deals obscene amounts of damage to one enemy at a time). I bought the Player’s Handbook, and after some deduction on the roles, concluded that the other player was probably a cleric of sorts, so there’s some healing capability. From the podcasts I listened, healing is extremely important. Enemies can seemingly fell characters without so much as breaking a sweat…

On the way to the appointed place, on a whim, I Plurked about it. That mutual friend replied, saying to have fun. And I arrived at the meeting place. And a funny sinking feeling settled in. I have no idea how the Dungeon Master friend and the other 2 players look like! I don’t have their phone numbers too. The only contact information I have was Facebook and email addresses. Oops.

Now, it happened that I tied my Plurks to Facebook updates. So I replied to the Facebook update, hoping that mutual friend was still online. He was. Whew. After some exchange of replies, I gave him my phone number via a private Plurk (yes, I don’t even have his number, nor does he have mine), and asked him to send it to that Dungeon Master friend. In the end, I managed to meet up. The power of 2 social media sites working together…

Remember I deduced the roles of my fellow players? I was wrong. Well, half wrong. There was a striker and a leader (meaning buffing stats and some healing and stuff). But the leader role wasn’t a cleric. He was a warlord. You don’t have to know what it means in game terms… What it does mean is that both players are offensive. Which makes sense, because with only 2 characters, your best defense is all out offense.

My mistake was creating a relatively well balanced character (an eladrin wizard), able to fight in battles and social encounters alike. It also means I’m not maximising my damage, which was debilitating, because I was less useful to the group. It was a one-off encounter, so the characters aren’t meant to be used in future encounters.

It doesn’t help that I miss half the time too.

I’ve never rolled d20 dice before. That’s a 20-sided die, and it’s an awesome polyhedron to look at. I thought I should have beginner’s luck or something. Nope. One of the players said I have beginner’s unluck…

From the podcasts, the dice rolls were fairly varied. There was also one critical moment, when someone got to roll another attack. His first attack missed critically (he rolled a 1 on d20). So he got another chance (he used an Action Point), and rolled … another 1. That’s a 1 out of 400 chance of consecutive critical failures happening. It was hilarious.

Never did it occur to me that I’ll face a worse fate…

There I was struggling to keep alive. I was poisoned, and kept barely alive by a fellow comrade. I cast the famous Magic Missile, and it missed. Critically. A 1 on a d20.

Ok then. I use an Action Point to gain another action. I cast a fire sphere spell, and it missed. Critically. Another 1 on a d20. What?!?! (remembers “Is that a 1?” from the podcasts).

I was defeated. I apologised to my comrades for my ineptitude. They said it’s fine. The good thing was, even though my fire sphere missed, the fire sphere was created, and it would do damage if an enemy was beside it. So not a total loss, but still…

Well, it’s the end of my turn, so I do a save versus poison roll. And I rolled a … 1. On a d20. Not only did I fail to recover from poison, I failed epically. Great. I didn’t know whether to laugh or cry.

My comrades were all run-down, and one of them had to continually heal me, because if I die, the fire sphere disappears. I feel so useless. The fire sphere does more damage in total than if I hit the enemy in the first place.

Well, my turn came back again. Since the fire sphere was already in place, I gave it another shot. I didn’t have any dice of mine, so I used other people’s dice. I didn’t realise it, but I kept using the same d20. It didn’t matter to me then, so I just picked it up, rolled it in my hand, and let it drop onto the table…

And a 1 came up to greet me.

That d20 really hate me.

I had failed critically, by rolling 4 consecutive 1’s on a d20. That’s a 1 out of 160000 chance of it happening. I suck at rolling dice…

I can’t remember much after that. I rolled to save against my ongoing poison, and failed. Not critically, but I still failed. After my turn, it was the monster’s turn. I jokingly told the Dungeon Master to use that “cursed” die. He did, and rolled a 1. Ha!

At that point, the other players and I convened, and decided that we’re way out of our league. All our resources were expended. The monster was still going strong. And did I mention that we’re dying?

We retreated up the ladder a bit, keeping close enough so I could maintain my fire sphere spell. The Dungeon Master was kind enough to let the monster get roasted alive. We returned to the town to rest, and came back to finish off the rest of the adventure (which wasn’t much).

We finished off by doing a recap. I was still bemoaning about my die rolls, and the Dungeon Master gave me this piece of advice.

Don’t rely on luck.