Exploring dungeons and slaying dragons

Medieval dungeon
[image by David Kerkhoff]

I just went through a period of nostalgia, of the pencil and paper role playing game type. To understand more, read Wil Wheaton’s posts of his experience as a Dungeon Master in Part I, Part II, Part III, Part IV and some concluding thoughts. Thanks to Scott Beale for this.

Done?

Ok, I haven’t played much of Dungeons and Dragons (although I certainly owned a few of the books. Just for reference), or any of the other types of pencil and paper RPGs. But I’m absolutely fascinated by them. My first encounter was when I was 12 years old. I bought these books of the Dragon Warriors series.

For some reason, I only bought the first and third of the series. Oh right, the second one wasn’t available. My 12 year old mind didn’t think it was important. Besides, I didn’t know about the genre then. There was a book sale held at my school, and I was browsing when I chanced upon them.

They were totally awesome! There was mysterious magic, dank dungeons, hateful hobgoblins and tantalising treasure. They were different from the choose-your-own-adventure type of books, because anything can happen! The games master (the term used) can devise any manner of story plot to suit the players. The books’ content are a guide, but the games master is free to use the imagination to make the game fun.

Because I was so excited by this, I had to play it. The problem? No one’s around to play it with me. It doesn’t matter if I’m the games master or a player. I just want to play it.

Somehow I managed to drag my friend and my brother into the game. Creating character sheets was fun. Explaining some rules of combat took some time. And basically there wasn’t much of role playing, or creative use of imagination. But it’s ok. Remember, I was 12 then. Those 2 were even younger than me.

I think one of them was a Knight (or a Barbarian) and the other a Sorcerer. Now only the 2nd book (which I didn’t have) details the mechanics of Sorcerers and Mystics. But I went ahead anyway. I mean, the main attack mechanism was the Attack stat for Knights and Barbarians. There was a Magical Attack stat. Not hard to put one and one together.

The magic casting system was based on magic points. Low level magic spells cost less, higher level spells cost more. The first book provided character sheets for Sorcerers, so I had the number of magic points for a 1st level Sorcerer.

What about spells? Well, I made them up. I played enough RPGs to know the basics. There’s always some kind of fire spell, maybe a healing spell. Well, I was 12. Cut me some slack, will ya?

So my party of 2 was starting out in a basic dungeon, the one in book 1. As rookie adventurers do, one of them inevitably fell into a pit. They’re so rookie, the Sorcerer was in front of the Knight in their battle formation, so the Sorcerer fell into the trap first. No!! Spell casters behind front line attackers! *sigh*

They didn’t even think to use the coil of rope in their equipment to try to climb out. Since their role playing skills and creativity were worth squat then, I gently nudged and suggested that maybe a point of magic would allow the Sorcerer to levitate out.

I know, I know, the levitation spell is non-existent. They would also be stuck there for eternity if I didn’t intervene. Their first encounter with a pack of rats almost did them in. Then this pit. I’m no psychic, but I’m pretty sure they would abandon playing the game very soon if things didn’t pick up.

In another instance, my classmate (I’m still 12) held a game session. With 5 players. Or 7. My memory’s hazy on that. And I got to play! He used the same Dragon Warriors book 1 to play. Because I’ve already read my book to tatters, and I was a games master before, I was allowed to play, but I couldn’t make decisions until after other players did. This was to avoid spoiling the fun for others. I was basically in it to slash rats and batter goblins, which was still loads of fun.

His method of games mastering was different than mine. Maybe it’s because of the larger party, so he followed the book almost to the letter. My point is that, in this fantasy world, he controls everything.

He could add another ghoul if the going seemed too easy. He could “cheat” by making the enemies target the more prepared and healthier players, thereby allowing the weaker players to continue. He could drop hints for puzzles. He could add red herrings. He could do anything.

Then the games stopped. As in no one plays with me on Dragon Warriors anymore (or any other pencil and paper RPGs). A year or two later, I rediscovered a kindred soul… and I’ll tell you more in another article. Stay tuned.

Path of a Polymath Programmer Part 4

This is a continuation in a series of posts about my life experiences which eventually led me to be a programmer. As I look at my notes for the series, I’m thinking there’s enough material for a few more posts. Wow. You might want to do a recap of the previous posts:

Console games

I was an avid gamer in my pre-teens and teenage years. I remember going to my uncle’s place because he had a Famicom (or Nintendo, I don’t know the difference). A bunch of us boys would gather together and play on the console. The “in” thing then? Street Fighter.

By nature, I’m not a competitive person. But I like watching them play. They would take turns and pit their skills against each other. I could discern 3 levels of progression.

  • Learn to execute moves on the right side of your opponent
  • Learn to use a fighter other than your favourite one
  • Learn to use the joystick instead of the controller

The first level seemed particular important. They realised quickly that if they’re unfamiliar with the right side of the screen, they’re going to be sitting ducks as the other player whittled their energy bars and basically whooped their behinds. I watched with amusement as they struggled to execute moves on the right side, moves that they had no problems executing when they’re on the left.

The problem? A change of thinking, reacting and hand-eye coordinating was required. There’s a simple experiment you can try.

  • Fold your arms across your chest
  • Note the pattern, like which arm is over which
  • Now fold your arms the other way

It might feel weird the first time you do it. And that’s why the boys were struggling. You might want to try performing tasks with your non-dominant hand. Like brushing your teeth or writing or using chopsticks. Improves and increases neuron connections. Always a good thing in programming.

The other two levels of progression had difficulties similar to the first one. Both required a change of thinking.

So what was I doing while they’re struggling? Enjoying their company. I did spar with them, but it was on and off. I pack a mean punch with Ryu and they won’t know what hit them with my Chun Li slams. Heeyah!

The console wars

I don’t know what started it, but suddenly the other neighbours (some of which were the boys) bought their own consoles too. The Sega console was the next hot item. I think it was called the Saturn or Genesis then.

Some of the boys graduated to the different console (and neighbour’s house). It’s as though there was a fight for attention or something. Since a console was very expensive, and we boys were supposed to be studying and getting good grades, our parents weren’t too fond of buying consoles and the games.

Thus having a console and cool games became like a symbol of coolness. If you had one, then we’d flock to your house to play. It didn’t matter what console it was. If you offer cool games, we’re there.

The console wars eventually dispersed the boys, and even erupted in breakups of friendships. Granted, some of the friendships were tenuous at best, but we did have good times together.

My very own console

Well, my uncle was doing quite well then, and he likes me very much. So he said he’d buy me my own Famicom console! The console wars were just dying down, and I brought a schoolmate and my next door neighbour with me to those gatherings. My friends and I were suddenly out in the cold with no one to be with. And I didn’t want to impose on my uncle all the time. I think I even proposed that I’d buy my game, and he’d let me play on his console. That was how desperate (and addicted) I was.

He bought me a brand new Famicom console, and even gave me some of his games. Awesome! So now, my friends could come to my house and we’d play together. Ahh my very own posse…

Anyway, my friends played the action and fighting games. I joined in sometimes, but I’m really just happy to be part of the gang. [ok slowly bringing the focus to more relevant topics…] I actually found role playing games more fun.

I started playing lots of role playing games. My grades weren’t really affected, so my parents let me be. The thing was, most of the role playing games (and most of the games of other genres) were created in Japan and exported to overseas countries like Singapore. So the manual was in Japanese. The in-game conversations were in Japanese. The item, weapon and people names were in Japanese.

It took me awhile, but I started getting used to looking at the meaningless scrawls of hiragana, katakana and kanji characters scrolling along the screen until an action was required. Two options? First one’s probably yes, the second one’s a no. Anything more than that? Take your pick. If I chose the wrong one, I’d shrug it off, and made sure the next time I play, I would choose a different option.

The iconographical route to learning Japanese

Then there was this time, where I was just flipping through the manual of Super Mario Brothers. The manuals had colourful pictures, and though I couldn’t understand much, the graphics were nice to look at.

Super Mario Brothers textI was looking at the title Japanese characters of Super Mario Brothers, and then I had an epiphany. I could match Japanese characters to English alphabets! I started with the Japanese character “su” and matched it to anything that had an “s” based English phonetic pronunciation. Then I moved to add in other matches. Slowly I built up a Japanese vocabulary that was based in part on curiosity and in part based on an urgent need (I needed to understand what I’m playing!)

While I was playing these Japanese role playing games, I could pick out three distinct types of characters. Those that were wiggly and curly (hiragana), those that were straight or rigid curves (katakana), and those Chinese characters (kanji). I’m Chinese, so kanji was pretty ok, but there weren’t a lot of them and my Chinese wasn’t fantastic to begin with. My newfound ability to read katakana greatly improved my ability to understand the game.

Common RPG Japanese menuWhy would being able to read katakana be so useful? Because katakana is mainly used for foreign (as in non-Japanese) words, usually English. And there were enough of words used in role playing games that had foreign origins. Like battle menus.

My friends were astounded. There was this game where you play this Japanese soccer player named Tsubasa (means wings). There were power skills each soccer player could execute, and though they were powerful and pretty to look at, no one could understand what it was.

Then one of my friends, who attended Japanese lessons, helped out with the translation. Once, he got stuck at a word. He didn’t know what it was. It was in katakana. So I did my thing, voiced out the phonetic equivalent in my head, and translated it into an English word. It was “cyclone”. He stared at me in amazement. “How did you know?” Well, I was just pronouncing it in my mind. Sa-yi-ku-ro-ng. Cyclone. Simple.

The final translation frustration

Herb in JapaneseWith my two third knowledge of the Japanese language, I was able to breeze through most of the conversation in games (role playing or not). Like “Go to such-and-such town.”, “Find such-and-such item and give it to so-and-so”. I was just picking out katakana and kanji in keywords, and acting on them, while relying on my vast memory of known hiragana phrases to fill in the blanks. After playing for a while, I could match simple hiragana phrases too. Like yakusou for herb.

Then came the day where I was truly stumped. The game was Chrono Trigger. I was stuck in this square chamber with a clock in the center. And I had no idea what to do. I struggled for hours. I went around town and spoke to every single person. I went through my entire list of items to get clues. Nothing.

I was freaking out of my mind. So I did the only sensible thing. I bought a Japanese to English dictionary. Then I pored over every single Japanese character in the game conversation text, and translated them character by character, phrase by phrase.

It was with a cry of triumph when I finally set down the dictionary. So what was I supposed to do? Hugging close to the perimeter of the square chamber, I was to run three times clockwise. I can’t tell you how happy I was when I did that, and heard a satisfying clink, signifying that the correct action had been taken.

Conclusion

I would say that playing console games was an important part of my life. I’m not saying it works for everyone, just that they offer something of value to learn. If you can recognise it that is. Hand-eye coordination from fighting games. Critical thinking from strategy games. Problem solving skills from role playing games.

Ok, so that was a long post, and I’ve still got some stuff I want to highlight. Well, I’ll wrap it up here and we’ll continue in another post. See you!

Continue to part 5

Path of a Polymath Programmer Part 2

So I talked about how I started on my path to becoming a polymath programmer, and ended with an introduction to two book series on role playing games and a computer programming super spy. We’ll see how they played an integral part in my development.

Role playing games
Dragon Warriors was my first experience with role playing games. A role playing game is a game where you act out a (fictional) character in a script or story. You can be a knight in shining armour, or a dastardly devious crime lord. You can be a floundering wizard apprentice, or an imposing space fleet commander.

There are real life role playing games, where actors and actresses play out their imagined characters, with full decorative settings and costumes. I’m referring to the pencil and paper variety, alongside Dungeons and Dragons and Blood Sword series. They are known as pencil and paper, because the statistics of the characters are recorded on paper using pencils. Statistics change frequently, so writing down values and then erasing them is common. The players still act out their roles, but only for dialogue, and they usually gather around a table with their stats sheets in front of them.

Recording character statistics (or stats) is a way of measuring progress in a game campaign. Typical stats to note are strength, speed and intelligence. These stats are used to determine the damage inflicted, reaction time in maybe dodging. You also note down possessions like weapons, armour and special items. Possibly relationships with other players, the character’s beliefs and lineage as well. Basically, you are charting down as complete a life story of a fictional person as possible, within the context of the game genre.

Thus I got introduced to the concept of storing values that can change frequently. In programming, they’re called variables. Mind you, I still don’t know programming. It’s the concept that matters.

Dice, statistics and 3D
Then there were dice. I’ve used the 4-, 6-, 8-, 10- and 12-sided dice. How do you get a value between 3 and 18? Oh, use 3 6-sided dice. What’s the difference between using 2 4-sided dice and just one 8-sided dice? 2 4-sided dice skews the results to the middle, while an 8-sided dice gives results of equal probability. Thus my introduction to simple math statistics theory and 3 dimensional geometry. The 12-sided dice boggled my mind…

Unlimited powered fettered by only by limited imagination
I also game mastered for my friends. A game master (or dungeon master) is the person who knows and controls everything about the game. I would play every single character in the story not played by anyone (NPCs or non-player characters), every monster they met, choreograph every battle, settle any unforeseen circumstance (like what to do if my friend “dies” but the others are still in). I can throw freak storms in, and see how the players react.

This omniscient and omnipotent ability might sound cool, but it’s very tough. Try keeping track of basilisk killing properties, beautiful enchantress back stories and making judgement calls for everything, all in your head. All at once.

Unreal rules
Then you’ve got to remember any rules specific to the game, but is hard to imagine in our real world. How do you handle weak gravity movement? Can magical fire burn on water? While astral projecting, can the person get hurt? Can zero point energy be pinpointed at one specific area? What would happen if a dagger is fitted to a piece of wood, and fired from a bow in place of an arrow?

So you’ve got to keep tons of stuff in your brain RAM, and take note of special rules. Sounds like loading a program in your head with business rules thrown in to me. Games mastering taught me people management skills, adaptability and coming up with creative solutions to non-standard problems, much like software management.

Introduction to programming
The other set of books is about this adolescent computer expert slash spy codenamed Orion, working in a secret government agency. In his adventures, there’d be situations where his programming skills come into play, and a program code would be given. There are about 5 to 7 programs included in each book.

The books start with Orion in some fairly normal setting, like in school, and he’d be handed some obscure piece of information. He’d then type in a program and using that piece of information, work out his next mission. And this first program involves encryption and decryption like substitution ciphers and ASCII value/number transformations (65 represents capital A).

Then there’d be programs you can play with, like the one on Nim, where you play against a computer enhanced human in the story. The odds were against you, but if you can find the place in code where your disadvantage lay and change the line of code, you stand a chance… Or you’d be desperately keying in the program code, and then entering the atmospheric levels of gases to determine toxicity. Though you’re safe, Orion isn’t, because he’s allergic to certain inert gases.

Since I only had a toy computer then, I couldn’t play with a lot of the programs listed. And my toy computer’s BASIC compiler is limited in some ways. Still, I got a kick out of reading the program listing, and guessing what ASC (change to ASCII value) or MID (middle of string, the substring function in BASIC) means.

Executing programs in your head
For these short programs, I found that I could “run” them in my head. There’s this program for calculating the precise angle to tilt a mirror so a laser beam is directed correctly. I didn’t even have to try out the program. Reading through the source code, I did some math, and came up with the answer (45 degrees).

What is interesting about Orion’s adventures, is the variety of situations where his programming expertise was put to the test. The code word programs taught basic encryption and decryption. The Nim program taught simple game mechanics and how to code them. The atmospheric gas and laser beam angle programs transformed math calculations into program code.

This kind of exposure is crucial. Business rules change. Science and technology changes. The ability to understand new concepts quickly and transform them into usable program code is far better than rote understanding of standard problems and their solutions. Building upon previous knowledge is important. Sometimes, quantum leaps in knowledge serves better, and quantum leaps come from that “Eureka” moment from many sources.

So, what’s next?
I’ve told you the impact role playing games and early program code introduction had on me. In the next part of this series, I’ll talk about typewriters, juxtaposition and the must-have story of how I got my first XT86 computer.

To becoming polymath programmers!

Continue to part 3