Monday, February 11, 2008

Roleplaying in 20% time

We just completed an interesting game... I thought of it just before tonights regularly scheduled Sunday session and I thought I would give it a try. The premise goes something like this: 'We stand at the twilight of Humanity. The great engines of creation are grinding to a halt and the universe is coming to close. All hope is not lost, however, as the legends tell us that in the last moments of life, the Great Dreamers will come to humanity again, and they will use their power to save us one last time, to bring humanity to a new era of prosperity and life.' The premise is that each of the players (and the GM) are one of the Great Dreamers, one of the people who brought some aspect of the universe into being. In our crew we had:

  1. The Dreamer of the Stars - Me - who brought the stars into being and let humanity play amongst them

  2. The Dreamer of Shadows - Nikita - who brought shadows and darkness to the universe

  3. The Dreamer of Ambition and Ruin - Ghen-ki - Who brought humanity's drive to better itself, and the fact that that very drive leads most to ruin

  4. The Dreamer of Harmony - Keith - Who let the animals and creations and things of the world exist as part of a group, who created civilization

  5. The Dreamer of Perspective - Jes - Who gave everything a place in history, and let them know it.

  6. The Dreamer of Consciousness - Steve - Who created thought itself

Together the dreamers came to the convocation and, as has been decided eons ago, they brought with them their proposals for the new universe. For the Dreamers were not to save this life, but were to create the world anew, and allow humanity to play there. Practically, how this worked was I signed up to run 5 games, each of the other player's world designs. Each person in tern would think of a world, I would generate an adventure, they would generate characters, and we would play for about 40-50 mins in the world. So, for this game, we had 5 times the worlds and 5 times the character generation. Despite how that might sound, it actually turned out really well.

I was very concerned going into this about a couple of things. First and foremost was the buy-in from the players. If I had lost them in the setup or scared them off with the creativity requirements, the game would've been a non-starter. Fortunately, we're all friends and we all bought into the game. Secondly, was thinking up 5 interesting and compelling plots, on the fly, for 5 different settings. Also fleshing out those settings, making them real. We had one snafu with the settings, but other than that it went very well, and even that one, I thought wasn't terrible, I just didn't do a great job with it.

If any of you have read 'The Golden Age' this adventure idea was based off of the Universe creation contest that is held in the first book. It was one of the best pieces of an incredible series, and I wondered if that could be reproduced in roleplaying.

So on to the worlds:

  • The first world was from Ghen-ki. He gave us a world with humanity just beginning to diaspora out into the stars. He gave us great world-ships where humanity would travel in hollowed out planets. I started everyone off in just about modern day. Richard Fine, a very rich entrepreneur had secretly hollowed out the moon and was going to take as many people as he could get to come along. The players each made a semi-modern day character who would leave their entire life to go on a trip to the stars. The game went from trying to get past the millitary that was trying to shut down the shuttle launch that was getting the characters to the moon, and quickly moved to the moon. On the moon, we blasted off after some words from Richard, and then visited a couple of worlds, leaving small colonies in our wake. On the third world, an alien ship was encountered, which proceeded to assault the moon. Just before the moon lost all atmosphere and everyone died, the characters got nano-disassembled into computer-based beings. After that, everyone decided that we would need to build and armada of ships to fight the alien menace. We left the universe just as the alien armada, and the human fleet of planetoid warships began their epic clash.

  • The second universe was from Nikita. He envisioned a world were your shadow was just as much you as you were yourself. It could interact with things, you could pick things up by their shadows, and in general crazy shadow and light based things were possible. To this description I added the City of the Great Sheik Yusef. This was a city that was under seige from 'The Other', and we would be joining the player characters as members of the honor guard of the sheik, attempting to get the sheik's son Darien out of the city while The Other finally sacked the city. There was a lot of detail with the crazy world, as the city changed its shape through out the day as the shadows moved, and there was a ton of stunting around the projection of shadows and its effect on fighting therein. The plot went something like: the characters are all standing guard, the notice freewalkers (shadows freed from their physical bodies) moving like a wave across the courtyard and coming to the Shadow Palace. After a great battle, they rushed the son Darien by order of the sheik out of the castle by way of the Dark Ways. In the Dark Way, they were ambushed by a man that looked a lot like a younger sheik Yusef, and were about to barely fight him and his demonic shadow minions off. They then took the son to the hill people were they raised him. After about 20 years, the son gathered them to him, and took away their aging physical bodies and left only enternal shadows to aid him in his quest to take back his father's city. Eventually Darien and the players stormed the city. As the game came to a close, we left the characters run down the Dark Ways after the new honor guard trying to save the son of the old sheik (and thus, time itself is a mere shadow of what has come before)

  • Third, Jes brought us the backwards world. In this world, rather than making a new universe, the scientists figured out out to reverse entropy, so that the universe would travel backwards towards the big bang. It was a great idea, but hard to wrap our heads around. Eventually we decided that time still moved forward, it was just the the universe tended to order rather than entropy. The players played scientists involved in the construction of the entropy engine responsible for reversing time. After activating the engine, and having a big big party, the characters (especially the youngest) began to wonder what would happen as they aged backwards, youthining towards their birth. After some investigation (for only the youngest children were near this happening), it was discovered that God himself took a hand in the situation. For as the young disappeared, an Angel would appear, and create a new (very old) body for the soul, and place the soul in it. It was also revealed that as the soul experienced death, it would remove some extraneous portion of itself, become more and more pure as we approached the end of the universe. Now that entropy was backwards, your soul gained pieces as you youthined to a new body. When the first player character, the first scientist involved in the project had this happen, the Angel spoke to him, telling him that God intended all things to come to an end, and either he and his companions would work to stop the engine or God would wipe the slate clean. There was much arguing as to what should be done about that, but eventually the engine was shut down (but not before someone shot an Angel, just to see what would happen), and the universe resumed its march to death.

  • From Keith we got a post-apocolyptic cyberpunk world where humanity had been mainly taken over by a mind virus. That virus wanted ultimate order in the universe, so it proceeded to organize and stack the elements of the city, and take over more and more humans. The PCs started the game as members of a tribe of humans just outside BAMA (Boston-Atlanta Metropolitan Area, my favorite cyberpunk setting). They each created a character and a strong link. Then I set them to gather supplies for the tribe from the city. Chris, Steve's link, was a scientist trying to figure out how reverse the virus to save his sister, had decided that the only way to investigate the virus was to get someone he knew infected and watch them. He took Alex, Keith's link, and put a tracker on him and then arranged to have him captured by the virus's zombies. Jenna (Keith's character) then proceeded to rescue alex, come hell or high water. At the end of the session, Steve's character sacrificed himself so that Chris could live, and Jenna had discovered a way to destroy the virus, one drone at a time.

  • The final universe (from Steve) was a universe of pure thought. The was a universe were only consciousness existed, and the only thing those minds could do was talk to other minds. This one really gave me a fit... In fact, Steve pitched his idea and then we ran Keith's first because I was having a hard time thinking of what kind of adventure could happen in this world of zero physicality. After the cyberpunk game, though, I had an idea. Basically, I said that as the conscious universe grew, it was inevitable that a group mind, a universal mind, would emerge. Moments before the universal mind formed, erasing all individuality, the last strong individuals gathered to decided what kind of being would be formed. Each person was given 1 minute to pitch their idea of universal consciousness to the others, advocating for one purpose of existence or another. After that we concluded. At this point, despite my time management, we only had about 10 mins for this entire universe, so this was all we had time for.

This was a pretty fun game, but it was definitely challenging. Not just for me (and it was no easy feat), but also for my great players, who had to generate 5 characters and a world each (6 characters if you count the Dreamer itself). We all came through great and everyone had a good time, I think. One thing I'll definitely say is that even though we had a great time, the creativity requirement for the game was so high we were all nearly dead when the final universe rolled around, it was intense, but very rewarding. If any of you players are reading this, thanks for the great game and your patience with it!

I felt compelled to tell this story, but hopefully soon I'll write up a post about the 'Central Library' game were the world literally revolved around books. Or maybe I won't, I may run it at a con...

Saturday, February 2, 2008

The Super Nun Killing Clan of Cyber-Programmers

Mike has an interesting post up over on his blog which is a response to Josh which is itself a response to Bruce Eckel. After seeing that long line of discussion, how could I refrain from adding my own brilliant thoughts to the conversation??

On the whole 5% thing... I don't know. Its a widely held belief in programming circles, one I've heard numerous times (certainly as Mike says, the number is made up, but the sentiments are there). I used to believe this idea with all my heart. Now? I don't know. I certainly used to not only believe it, but was absolutely convinced I and my close friends were a member of that elite group. I still think I'm a great programmer, one of the best, and my friends as well. But, I've started to doubt the other side of the equation the 20x as productive.

I've just going to skip over Mike's arguments of measurement. They are valid, and well put, but I'm not interested in that side of the discussion. In my career as a programmer (yes, all 5 years of it!) I have seen a lot of productive people and a number of non-productive people. My consensus is that people who want to be productive are, and people who just want to not get fired aren't. Are you excited about your space? Are you committing yourself to the successful completion of the project? There are a dozen ways (ok, way more) to waste time on the job, without looking particiularly unproductive. Everything from reading email, attending all the optional meetings, to things like reading web comics and even coding, but not tackling the hard parts of the project. It seems to me that those who want to succeed move those obstacles and distractions out of the way and those who don't embrace them.

So, I guess it is possible for the top programmers to be 20x more effective, becuase of the effort they put in. If you spend 5 mins an hour checking email, and another doesn't, he's already 40mins ahead of you at the end of the day. Add in some meetings that he skips, and some of the other stuff, and its easy to see how even similarly skilled people differentiate themselves.

I will agree with Bruce Eckel that programmers can really differentiate themselves with continual learning. Its really important in any technical fields (look at surgeons or scientists) to continually learn, and it's no less true in programming.

Maybe with all these factors together you get up to something like 2x... But most of the times these numbers are bandied around its always something like 20x. I think 2x is already waay awesome. Additionally, Josh's comments on letting less skilled programmers write until the heat death of the stars is also a good point. Its definitely true that less skilled people just can't produce the same code as others, and in many cases could never implement the same feature jumps that the masters can.

Hmm... that is a little long and rambling, but I still have something else to address. Mike's question of taking 50 cs students and getting them into the top 5%. Well, I think there are a couple of important pieces to this puzzle. First of all: screw traditional curriculum. As my dad has told me a couple of times, Colleges don't want to teach practical skills anyway. Is it any real surprise that they aren't very good at it? You want to know who the best new hires at Amazon are? They aren't traditional undergraduate students. They aren't any students from the US even. They are Waterloo students. You want to know why? Its very simple. Waterloo students spend (I believe) 5 tri-mesters working in Co-Ops at companies. They quickly get exposed to a number of languages, design methodologies, companies, etc. Most importantly... They know what source control is. They know how to really write code for re-use. THey have some idea of how to work with others to get projects done.

So, if you want 50 people to be the best, how do you do that? You could just emulate waterloo, but I think you'd need to go farther. Start a startup with them. Teach them datastructures and algorithms while you're under pressure to get a website up. Let them learn about file size limits when their logs grow larger than 2GB. Learn by doing. In the world of software, there is little cost to screwing up. Its not like bridge building or even auto repair where you might be hurting others. I think the heart of learning in CS is related to doing and figuring out for yourself what works and what doesn't.

But even that is not enough. You must must must get people excited about the act of programming itself. How can this be done? For one, I think you pick projects to tackle that are exciting to people. One of the most time-consuming applications I've written was a character generator that was written over the summer. I would work all day as an intern, come back to the apartment, and code until it was time to go to bed. Why did I do this? I saw real use for this program and I wanted to make an awesome program I and others would really use. You want to know what I did in my programming languages and compilers class at UIUC? I implemented half of a lisp compiler. Who wants a lisp compiler? I'm sure there are those that do, but I didn't. Wouldn't it be immeasurably better to have projects your excited about?

I think there are other, more gimmicky things you could do as well. Give monetary awards to those who do well. College students will do a whole lot for some money. Really do a start-up, let the students really feel like they're a part of something worth working hard for. Have people teach topics as they come up, and make sure that anyone who teachs is really excited about what their teaching. When I give tech talks about Amazon, I see people light up and get interested. Why? Because when I speak I put a lot of emphasis on how much I like Amazon and how exciting and interesting it is to work there. My material is normally less exciting than others (Build tools vs. awesome Kindle or Scalable Storage for the Internet, etc), but people take notice because I am excited about it. Make sure you provide the tools for those studnets to be productive both in and out of class. Make sure teachers are available one on one. And most of all be focused on projects, not on chapters in a book.

If it were possible, I would find the 50 most excited, talented and teacher-y programmers in the world, and have the 50 students apprentice to them for 4 years, maybe on a rotating basis.

I don't know if any of this is possible in the reality of the collegiate environment. But I know it would be cool to try.