WildStar dev blog

As most of you know, I’m a video game developer when I am not inflicting my political views on my friends and family. I’ve been working on Apollo, the UI engine for WildStar for  almost 6 years now, and we just announced its existence (the UI engine, not the game) on the game’s website.

Here’s the first (potentially of a series) developer’s log that I wrote:

Hello future WildStar players! My name’s Jon Wiesman and this is the developer’s blog for those of you who will one day be writing (or using) Addons for WildStar, as well as for anyone who just wants to find any news they possibly can about our game.

Before I get too far in, here’s a quick intro: I’m the Lead Client Engineer on WildStar. I’ve been working in the game industry for 13 years now. I started at a little company called Verant, who were just a couple weeks short of releasing a game called EverQuest when they offered me a job to be a user interface programmer for a new MMO they were developing. Verant was soon bought by a big company and became Sony Online Entertainment. Although the game I was hired to work on was eventually canceled, (Sovereign anyone? Anyone?) the XML-based user interface engine that I developed became SUITE (Sovereign Sony User Interface Template Engine) and was integrated into EverQuest in 2002.

For the last 5 ½ years I’ve been working here at Carbine on Apollo, the user interface engine for WildStar, which will not only be an XML-based engine that allows you to change the look and layout of the user interface, but is also a Lua-based engine that supports fully customized functionality for that UI. I’ll have much more to say about the hows and whys of the decisions I’ve made in architecting Apollo as this blog continues, but first I’d like to share a recent story that reflects on some of the choices that were made.

A few weeks ago I made a handy little tool to make pretty charts of polling crosstabs. This is what I do for fun. I know! Exciting!

When I shared some of these graphs online, I received some requests from people for a version that they could use themselves, so I made the app ready for distribution. Since I’m a native code programmer, I used MFC to write the app and literally wrote the entire thing in about half a week of my free time. Then I made an installer for it and made it available to anyone who asked for it.

I started looking into how I could turn my little app into a browser-based app. Should I try doing something in HTML5 using Canvas and JavaScript? I started asking around. I’ve been a professional programmer now for over 21 years, and this is not exactly what you’d call a difficult project. (Again, maybe half a week in C++ and only that long because I was making it suitable for distribution; the initial graph algorithm took just a couple hours.) Yet I couldn’t find a suitable or straightforward answer as to how one gets a version of this chart tool into a web-based app that people could just run in their browsers.

(Bear with me, I’ll explain what this has to do with WildStar and Apollo soon, I promise.)

A friend of mine who knows Ruby suggested I try that, so I found a tutorial and dove right in. I spent about 3, 4 hours with it and never saw a single line of code. I had to download source control software from one site, then I had to download a certain editor from another site. I had to register usernames and passwords on at least three different sites. Then I had to set up a command-line environment with certain environmental variables. It was tedious and frustrating.

After following the tutorial instructions exactly, I was ready to “publish” my first Ruby project. I typed in the command to publish and was told, “Unknown error something something yada yada.” This was not exactly what I had in mind.

Look, I enjoy programming. No, strike that. I LOVE programming. I’m a nerd. I love learning new programming languages. I love looking at a problem and devising an algorithm to fix it. I love the ins and outs of creating forms and handling events and making things happen in response. What I don’t love is spending hours tinkering with configuration settings and switching between text editors and command line prompts and web-based publishing portals in order to accomplish less than the typical “Hello World” app that I wrote in BASIC on a Commodore 64 when I was 12. (Yes, I’m old.)

Unfortunately, while my experience with Ruby was extremely frustrating, developing Addons or customizations for other video games in the past has often been nearly as arcane. Much of the required information is often completely undocumented and the tools are rudimentary or even non-existent. While a percentage of people are able to push through this steep learning curve and produce usable customizations, many people give up after several hours of frustration.

Obviously, not every player will have the desire to develop Addons, but if you can program at all, I promise you’ll be able to make an Addon for our game. Our commitment is to make sure the process is documented, clear, and accessible. Promise.

In the following months, we’ll be sharing more information describing how you can get involved in WildStar’s Addon program. We’re really looking forward to working with you. And it’s going to be fun*.

* As a nerd, my idea of fun is… nerdy. Your mileage may vary.

Some of you may recognize our Crosstabs Grapher pic. I’m pretty excited about what we’ll be doing with Apollo for WildStar. We are setting out to set a new standard for MMO user interface engines, which sounds really ambitious and a little bit presumptuous, but I hope we’ll pull it off. I’ll be cross-posting here. I know some of you probably just come here for the political stuff, but I figured some people might be interested.

Author: Wiesman

Husband, father, video game developer, liberal, and perpetual Underdog.

One thought on “WildStar dev blog”


Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s