[This is a pep-talk to myself. I’ve spent 28 of the last 36 hours rewriting a major part of the innards of the Gorgon server. The work was not pleasant, and I had mysterious bugs — it took forever to diagnose. But I finally got it fixed, and things seem to be working now, and I’m taking a break before I dive back in and test some more. I’m tired out, but there’s tons left to do on the game, so you’ll have to forgive the ego in the text below: I’m writing this one for myself to help keep me going.]
I certainly don’t mean it as a point of pride that I flunked out of high school and got a GED. My school years were horrible for various reasons and I wouldn’t wish them on anybody. But there was a bright spot in there when I was 10 and my parents bought a family computer. Remember, I’m 37, and therefore ancient beyond time. So that first computer cost $1000… but that was half the cost of a good used car. It was a huge family sacrifice to afford it. But I loved it, and from age 10 on I was hooked on programming.
In high school I worked at a grocery store. (And I got to leave school early to go to work. Thanks to the DECA program, I was on the fast track to being a grocery store manager, woo!) My job paid for a modern PC and a phone line so I could run a BBS. That’s when I became hooked on making my own MMO, although the term hadn’t been invented yet. I loved running a BBS: it was my own tiny virtual world where I could help people have fun, and see them enjoying themselves.
A Failure of Vision: Not Making a BBS
Mike Kujawa was a friend of mine from high school and we worked on a new BBS program from scratch together. He’s now some sort of grand Poobah lead engineer at Turbine, but once he was also a teenager.
[An anecdote about Mike: one evening in high school, late at night, I got a phone call from him. “I did it! I found a way to losslessly store over 5000 bits in a 512-byte buffer!”
Doing the math in my head, I said, “that’s not possible. Well, you’d better walk me through it.”
He started to explain, and then got quiet for a minute. Then he said, “oh… nevermind,” and hung up. But the thing about Mike is, for just a moment, I could believe he’d had a mathematical breakthrough that would shake the foundations of science.]
I learned assembly language in order to optimize our BBS, and bit-manipulation became second nature because I spent every waking hour optimizing memory usage. (Every byte of RAM was precious back in the Neolithic period.)
It was never more than half-done, but it was still pretty amazing for a couple kids: the BBS was written in Pascal with lots of hand-coded assembly. Our I/O approach was innovative and approaching state-of-the-art. And even though I only knew English, I had made sure it supported multiple language packs. (For some reason.)
But we never finished that BBS and it’s largely my fault. I was working pretty hard hours, but more than that, I didn’t really think we had what it takes to write a BBS. Everyone knew BBSes were extremely complicated, and we were just a couple of kids.
I was certain we’d missed tons of critical design aspects that only a professional programmer would really understand, and the BBS would collapse in on itself. No, better to stick to the shoddy pre-existing BBS software of the day.
Sometimes Your Trajectory is What You Make Of It
After high school, Mike got me a job at a programming company, for which I will always owe him. I had been moving up the chain of command in a grocery store because that seemed to be where life was taking me. It literally didn’t occur to me to apply for programming jobs: I was a high school dropout.
But fortunately Mike got me a job anyway, and when I realized I could easily hold my own against much older programmers, my life changed. Well, my attitude changed, which changed my life. I stopped thinking “this is where my life is headed, and I should do my best to make it painless,” and started thinking “I’m pretty bad-ass and I can decide where my life is headed!”
I don’t think this is a universal secret. I did spend a decade from childhood learning to program. So I don’t think every 19-year-old working at Winn-Dixie has a different future awaiting them if they only could realize their abilities. But… well, given that I was really damned good at programming for my age, and I didn’t realize it, how many other people are really damned good at something, and could change everything if they just realized it and acted like it was true?
Making an MMO is Very Hard, But…
I’ve literally made an MMO before and I still have nagging doubts. “Who the hell am I to do this? I’m sure I’ve forgotten some crucial element and the game will collapse in on itself. I should stick to easier projects.”
But this weekend was a good reminder. My plans for storage were not well-thought-out, and I had to redo everything. There was a moment of fear when I realized “oh shit, the whole game is ruined.” But not really. I did research and planning for a week, and then this weekend I wrote the code. Yes, it really sucked to rewrite the serialization and storage, and I had to redo my blueprint for scaling the game, and I’m still fixing hundreds of subtle bugs. But I did it. It took a weekend. It did not kill me, or the MMO.
When the game collapses again due to something else, I’ll fix it. It will take time, but I have the skill to fix everything that might break.
Okay, I had more to say, but pep-talk time is over! Back to work! I’ll talk about the upcoming MMO plans tomorrow.