Goodbye Kayne, Farewell Norrath

Saturday June 30th, 2007 @ 1:28 PM by Chris

Kayne

Since I can remember, I’ve been a fan of video games. In fact, it was a video game that eventually caused me to change my major in college from Electrical Engineering to Computer Science. I had to know how the developers were able to do what they did.

As an entertainment medium I think video games have the potential to be the most inventive and engaging; you can tell stories in a way that is simply not possible with the written word or film. But in the history of video game development, the end product has not always lived up to that potential. Rail shooters or the laser disk games like Dragon’s Lair used the medium in very linear, limited ways. For a while the game industry toyed with fad ideas like Full Motion Video and other unsubstantial fluff. But eventually some wise folks finally figured it out. They realized that software didn’t have to be constrained by the same limitations as a novel or movie. There was a lot more that could be done to tell a story; to engage a user; to thrill an audience.

MMORPG’s were the next step in the evolution of video games. And from the moment I laid my eyes on Everquest I was hooked. I had never before seen such a complete, enormous, engaging, detailed or entertaining virtual world. I was given the chance to create an avatar and adventure in that world with other users. In the process, relationships formed and a lot of time, effort and fun was had by all.

Later, Everquest II was released, and it was an evolution of the genre. Obviously, as I write this, World of Warcraft dominates the MMORPG landscape with some four million subscriptions. But I was “raised” in Norrath, where Everquest was set, and that was the place I’d come to know and love.

In nearly every way I consider Everquest II to be a superior game to its predecessor. It was a better world visually; battling monsters was more fun; there were many more quests in the game and they were much more rewarding; the ability play and progress by yourself was improved; the ability to play and progress as a group was made more fun; raids were limited to a maximum of 24 players, which allowed the developers to fine tune the encounters and make them challenging and rewarding at the same time. In short, every aspect of the game was improved, tweaked and made better.

It is unfortunate then that I have had to cancel my account. And not for any reason related to the quality of the game.

Unfortunately, the internet Gods have seen fit to prevent me from acquiring broadband. The best I could manage was to multilink two modems together over two phone lines and get something that resembled a 56K connection. I even wrote an article about the trick for the EQ2 Vault.

But the problem with teaming two modems together is that you tie up both phone lines. My wife is almost Borg-like the way she attaches a telephone to her person when she gets home from work, so removing her access isn’t a good idea.

After a few years of living in the countryside and dealing with a 28.8 modem speed, my wife finally got tired of waiting for 30 minutes for the Gymboree website to come up and decided we needed a faster connection. There’s no real options out here other than satellite, which is fine for browsing the web but sucks for online gaming. The latency is simply too much to live with.

I tried to tough it out; I tried to play the game with a one or two second delay. But it just sucked the fun right out it. I played a Paladin, a class that relies heavily on its ability to heal or shield group mates at critical moments during battle. Split second decisions make the difference between life or death, and with a satellite connection too many people were ending up dead.

I’m extremely disappointed with the technology options I have. I read all sorts of articles about remote villages in the middle of the deserts that get some sort of special grant to have broadband brought into their towns and it make me jealous. I live five miles from a cellphone tower that I can’t get line of sight to because of the rolling hillsides nearby, and I’m stuck with phone technology at my nearest central office that is so old the phone company is hoping everyone in our vicinity dies before they have to upgrade it.

But back to the point: I’ll miss Norrath. I’ll miss my avatar and the friends I made. Playing Everquest II was like escaping through the wardrobe or falling down the rabbit hole. The worlds that game developers create nowadays are some of the best, most interesting places that my brain has ever journeyed to. I’ve also met some very cool people online while playing these games. I love the strategy and tactics involved in the large raids; I love the social aspects and the teamwork required in group settings; I love investing time and advancing my character. These games are fun, challenging and rewarding all at the same time.

When I was growing up, video games were just electronic toys. But I honestly believe MMORPG’s have pushed video games beyond the realm of trivial entertainment. They’re not just electronic toys anymore. They’re social clubs, meeting places, and adventure environments where some of your wildest dreams can actually be realized. A great MMORPG is as engaging and entertaining as the best literature and film I’ve been exposed to.

MMORPG’s changed the way we have fun. I only hope my internet connection evolves in the next couple of years before the folks at 38 Studios release their work. Because with the talent they’ve collected I think they could build one of the most amazing MMORPG’s ever. And it would be a shame to miss out on that world as well.

Posted in Computer Games | 3 Comments »

The Gauntlet Of College

Thursday June 28th, 2007 @ 10:00 PM by Chris

Jeff Atwood wrote a great post today. (Scott Hansleman jumped on as well.)

The best part of the post is this:

The value of education isn’t in the specific material you learn– it’s in learning how to learn.

At my job I get a chance to interview new recruits who apply to be on our development team (along with a bunch of other people including my boss and coworkers; it’s a real team effort when someone applies for a job here). I put a lot of emphasis on certain things. One of the things I tend to make a big deal out of is a college education. I think sometimes my focus on the degree irks other people involved with the interview process…

It’s not that I don’t think a programmer/developer can’t hone the necessary skills or acquire the necessary knowledge without a degree; I think they can and I know people who have done it. But college is a gauntlet; it’s a serious trial and people who successfully navigate it acquire a few things that non-graduates don’t seem to acquire with the same regularity.

There’s a mental toughness that develops from going to college; an ability to work under really stressful conditions; an ability to see things through to completion. And like Jeff says: they learn how to learn.

I was in the military before college and that experience molded me quite a bit. When I got to college I saw the same sorts of conditions producing the same sorts of results: mental toughness, an ability to see things through to completion, an ability to work under pressure.

I guess you could put this down under the category of character. When someone applies for a job with a college degree in C.S. I know what they’ve been through and what they’ve had to endure to get that piece of paper. It’s not easy getting a degree in an engineering discipline, and that means something. It doesn’t mean everything, of course. There are still people with degrees who have other character flaws that prevent them from fitting in, and there are still people without degrees who have become great developers. But by and larger a degree seems to continue to be a good indicator of the makeup of the person.

To the rest of this…

Things I Learned about Software in College

  • Writing buggy software is really easy. (I immediately started giving a break to game developers who released patches for their games, or MMOG’s that had weekly patch updates.)
  • Languages are nothing more than tools in a toolbox.
  • Code changes so fast that documentation is almost irrelevant. Comment the “why”.

Things I Learned about Software While Not in College

  • Simpler is better. Always.
  • Some things don’t work as simply as you think they should. See Databinding.
  • Automated Unit Testing beats the hell out of last-second beta testing.
  • Agile beats the hell out of Waterfall.
  • Good design principles make refactoring possible.
  • Refactoring makes better code possible.
  • This line of work is more fun than I thought it would be.

Posted in General, Software Development | 1 Comment »

Video Games Aren’t Addictions, Or Are They?

Wednesday June 27th, 2007 @ 1:05 PM by Chris

This article made me laugh. Not the article itself. What made me laugh was that it reminded me of a YouTube video I’d seen a month or so ago about a German kid screaming at his computer.

I think what this goes to show is that no matter what, there’s always going to be some small segment of the population that can’t handle their liquor.

Posted in Computer Games, General | No Comments »

Acropolis

Wednesday June 6th, 2007 @ 8:20 PM by Chris

Fresh on the heals of the CAB debate comes Acropolis.

Ayende has posted about it, as have a few other people. Here’s my take (in homage to Dream Theater, who released a new album this week, this post will be broken down into multiple movements).

Part I: Annoyance

Initially I was annoyed. Only slightly, but still annoyed. After all, as Ayende points out here, Frameworks require a higher adoption cost. We’ve invested in CAB; it would be annoying if Microsoft came out with something that competed against it.

But then I read Glenn Block’s excellent post about Acropolis. Acropolis is a WPF Framework. We’re not developing for WPF, we’re developing for WinForms. This doesn’t affect us (although I still feel a twinge of pain for the folks who have invested in a WPF adapter for CAB).

And by “affect us” I mean: we don’t have to feel an annoying itch in the back of our heads that causes us to sit down and research the technology to determine if it’s worthwhile for us to switch to it, or continue down our current path. This is perhaps the most annoying thing about what we do as developers: we invest in technology to solve our problems, and no sooner do we feel like we finally have the reigns of a giant dragon firmly in our grasp, the monster under our control, then it rears up, throws us off and spews fire, turning us into an ashen corpse. We’re bombarded with new widgets, gizmos, gadgets and things every day. Like Rocky says, it’s a bit overwhelming at times, especially when what you’re really trying to do every day is address business concerns.

Part II: Indifference

My second reaction after reading the Acropolis descriptions and blog posts was: I don’t really care.

Like Ayende, I don’t have a fondness for tools that mask XML as a programming language.

Sidebar.Start()
Several years ago someone asked me what I thought of this “XML thing”. It was in conjunction with another question, which was, “How would you make the web experience more like a desktop experience?” My answer to the latter question was, “I’d rewrite browsers so they interpret real code (not just Javascript) so that we programmers can actually write useful apps with a browser as our application shell.” Then XML landed along with XAML and instantly we all saw that the opposite was happening: desktops were going to be more like browsers, and we’d all end up writing markup. I wanted to puke. Such is life. Sidebar.End()

I read on some blog comments that people already see Acropolis as an attempt at a .NET RAD tool. I’m not sure if that’s an accurate or fair comparison (I simply don’t know enough about it yet), but to me it seems a lot more like trying to VisualBasic-ize .NET and application development.

One of the most popular questions that aspiring programmers ask is always, “What language should I learn first?” And my answer to that is almost always, “Anything except VB”. I just feel like it hides too many details, and as a beginner you have to learn the details first. You’ve got to know what’s going on underneath the hood before you can be a racing crew chief. My concern with Acropolis is that it’s attempting to create a cookie-cutter solution to something that can’t be solved with cookie cutters. Are application developers going to end up making bad choices because of a tool that allows them to drag and drop an enterprise application?

Part III: Intrigue

On the one hand, I like the idea of evolving tools. I said as much last week. I like the idea of something like Acropolis, because maybe it’s a step in the evolutionary chain. Maybe it’s one tiny step closer toward Star Trek, where I can start worrying about more high level concerns.

I imagine a future where developers don’t have to spend their time writing skeletal code or wiring up events; where we can just tell the computer “hey, when the user clicks this button I expect X, Y and Z to happen.” And under the covers I expect proven patterns, practices and programming constructs to handle the code in a way that developer could instantly understand if they were to open up the guts to it and look. Just like I can look at a coworker’s code and know what’s going on, I’d expect to be able to look at any code generated by an abstraction layer and understand what’s going on.

But am I going to understand the XML spaghetti that Acropolis spits out? Hell, every time I run across an XML feed from Google instead of an actual web page I hit the back button as fast as if the offending image were capable of giving me rabies.

I just really don’t like writing code without code. It seems like there’s a whole mess of problems that could crop up. At least with a real programming language I have one degree of security: the compiler. At least there’s one checkpoint it has to get through; one test it has to pass before it gets to my unit tests.

Part IV: Acceptance

Acropolis is here; what does it do for me? The only thing I’m really concerned about is our current project, and as such the only thing I really care about is CAB. Does Acropolis affect us in any way? No.

As Glenn Block said, there are no plans for any more SCSF released. There’s no more new CAB. But that doesn’t really bother me for two reasons:

  1. CAB is pretty stable. It’s two year’s old. We feel like we have a pretty good grasp on it; we’ve invested the time and effort; we’re married to it. CAB might not be the best wife - she might frown when we watch too many sports events, or pitch a fit when we forget to take out the garbage - but she’s good enough.
  2. Glenn and Co. started the SCSF Contrib site, so people who are married to CAB, like us, can contribute to the CAB and extend it. If the CAB is important to people then it should continue to see people downloading it, using it, asking questions about it and extending it.

There’s nothing really missing from the CAB from our perspective. It’s a Framework that does what we need it to do. Anything it doesn’t do we can accomplish through other means (and as previously debated, some folks feel it does too much already). We can extend it where we need to; we can get stuff done. So not seeing any more updates from SCSF doesn’t bother me at all. I’m fine with that.

The other thing is this: we’re currently running Windows XP on all our workstations. There’s no imminent upgrade where I work and I suspect this is the situation for a lot of businesses. If all our workstations were Vista then maybe I’d have some research to do and a decision to make, but I don’t.

Part V: Closure

Acropolis might end up being a great Framework with some really neat tools to implement it with. Then again it might be XML Hell. I don’t know. But I’ll say this: I don’t think anyone currently using the CAB should feel one bit bad about this. If you’ve invested in the CAB and feel like it’s giving you what you need, then keep using it. That’s what we’re doing.

If/When Vista becomes the primary desktop in our environment and we feel the need to start developing in WPF, then we’ll do what we always do: research the available options, ask people’s opinions, and make a decision. But for us that time hasn’t come.

Posted in .NET, Software Development, CAB | 6 Comments »