We take a closer look at the beating heart of WildStar with Lead Software Engineer Steve Moret.
WildStar has a very hand-made art style, with painted textures and cartoonish models. How does that influence engine design?
The very obvious answer is that graphics programmers have to support artists in making their art look the way they want (e.g. implementing shaders that simulate various material properties, making new particle system types, etc). But the real answer lies in a story about an early build of WildStar that looked much, much different than what you’ve ever seen publicly.
When we started this project draw distance was the big thing. We wanted to draw out into infinity. There were grand ideas of starting off in space as you dropship down onto the planet Nexus; live rendering the game the whole time. We had implemented an awesome level of detail system that would guarantee constant pixel densities of the terrain system while blending the least used terrain textures into a custom color channel so the textures could be unloaded. It even super sampled terrain that was extra close to the camera (kind of the way anti-aliasing works). For the resources it was taking up, it looked great! And it had a near constant memory footprint. Programmers were high-fiving themselves all over the place.
Then one of our Lead Artists came to us, complaining that he couldn’t control what something looked like as it travelled from the foreground to the background. Of course he couldn’t! Our engine would pick the least used terrain textures, dump them to the color channel, and blend up the rest. It had a constant memory footprint!!! What didn’t he understand?! Did he miss the high-five memo?
Apparently, he didn’t want that. He showed us the concept art for his asset and said, “See this; I made something that looks like this.” And sure enough, his model and texture looked nearly as awesomely painted as the concept. “I want this to look exactly like this no matter where we draw it,” he continued. We said, “That’s impossible, when it goes further away we HAVE to make its textures smaller.” He said, “Well then I want to be able to control each MIP level, paint each one separately if I want. It has to look like this.” And it clicked with us. We needed to design a graphics engine where an artist can make sure his art looks right no matter where it is.
So we scrapped the terrain mipping and rewrote our graphics engine to draw things more “consistently.” It has certainly cost us in draw distance but everything you can see is exactly the way our artists intended, always (well, except when a designer places it).
There’s a lot of general talk around advanced graphics features such as DirectX 11 and PhysX. Are you planning to support these, and how important are they when developing an MMO?
Our renderer was written with DirectX11 in mind, but we also made sure to support DirectX9 (there may even be an unofficial OpenGL port in the works). WildStar is trying to target a large range of MMO players, from the casual to the hardcore. Some of them may have older machines; and not all of them can afford fancy graphics cards. While I can’t say what our min-spec will be at launch; I can say that I want WildStar to run on as many computers as humanly possible.
I’ll also say that one of our goals was to try to get a consistent look across all video cards and machines. Most of the DirectX11 features we take advantage of we use to make things run more efficiently, not to drastically change how things look.
How wide a range of systems are you planning to support? Will there be benefits from using a high-end system?
It’s hard to say at this point. WildStar has not gone through a significant amount of post beta optimization yet. We get our biggest benefits from 64bit systems (being constrained to 2GB of addressable space is no fun). And we try to take advantage of as many cores as we can. But our art style helps us look good even when we’re knocking the top 3 MIP-levels off of our textures. I’d say the benefits will be a higher frame rates, higher resolution displays, more detailed textures, more complex shading and lighting effects and, of course, a further draw distance.
I’d really like to thank Steve Moret and Carbine for revealing more about WildStar’s engine, and sharing a little of that awesome nerdy side! WildStar is currently in closed beta and aiming to launch in late 2013. To be in with a chance of getting into beta, be sure to sign up on the official site.