How Void Eclipse: Empires at War Tames InfinityJeremy Peel on | games
“I’ve always been into sci-fi, so I knew my first game would be a sci-fi game,” say Tau Ceti Studios’ Jesse Dannenbring. “I wanted to take the exciting battles and strategies you get in an RTS and put that in a game that lets you span across the galaxy, going from star system to star system.”
No small task for a first-time developer not keen on the idea of too much coding. Though space is a perennially popular setting for turn-based strategy, it poses unique problems to those wishing to work in it.
Vast star systems must be navigable in seconds. The inky vacuum must be properly lit. And huge planets, barely perceptible in their movements, must somehow appear to be living worlds rather than art assets. Over the course of Void Eclipse’s development, though, Dannenbring has become a sculptor of galaxies.
A void with a view
Unreal allows for custom camera work, so it’s been possible for Dannenbring to set up an overview of an entire galaxy - rather than simply what’s in front of your nose.
“Definitely I had to do a bit of research about how to get the camera to work and the controls right, and what kind of Actors to use,” remembers Dannenbring.
An Actor is any object that can be placed into a level - while an Actor that can be controlled by players or AI is called a Pawn. Dannenbring chose to work with Unreal Engine 4’s Spectator Pawn, which offers a no-gravity flying style ideal for galactic overview.
His camera is best thought of as a camcorder attached to a long pole that can collapse in on itself, like a telescope: “So if you want to be up close it’s just a few feet long, right in front of your planet. And if you want to be way out, you telescope that pole to 100,000 km in the engine.”
Using Unreal’s input framework, which converts player controls into data that Pawns can understand and respond to, Dannenbring was able to set up his camera so that it collapses with a ‘mouse wheel up’ command, and unfolds with ‘mouse wheel down’. Voila: a zoom function.
“You can pretty easily create your own camera work for a top-angled view,” he says.
The big bang (or how to make things ‘pop’)
Dannenbring is a software engineer by background, and has done a lot of work in UI: “So I have a feel for layout, and how things should look in that sense.”
But to make Void Eclipse really ‘pop’ - that is, to lend the game a visual appeal that isn’t necessarily tangible to the player but translates as overall polish - has been a challenge.
“I’ve definitely had to learn a lot in the Material Editor and Substance Designer to really create materials that are going to look realistic enough but also capture people’s imagination,” Dannenbring explains.
It tends to be small things that make a huge difference to visual polish - and for Void Eclipse it’s been procedural animation in particular. When Dannenbring began building star systems, his planets were static.
“That looks OK, and once you get your controls moving it’s starting to look good,” he says. “But as soon as you get just a little bit of animation, it really brings the scene to life.”
The developer added animation to planetary bodies, so that moons orbit planets, and planets orbit the sun.
“I didn’t overdo it - they’re not spinning around super fast,” Dannenbring notes. “But just that little bit of animation brings the scene to life, more so than you would expect.”
Light in the dark
Getting the lighting right in the blackness of space is, as Dannenbring puts it, “interesting”. Just as physics middleware tends to assume it’s working with Earth’s gravity, conventional lighting solutions expect a certain, usually room-sized, scale. Entire star systems throw off their calculations somewhat. Thankfully, Unreal Engine 4 is open source.
“Definitely, there’s some aspects where you throw in a directional light or a point light and everything works,” says Dannenbring. “But in other cases, especially since the engine is made to show everything at a scale that people are used to, I had to break it a bit and change some of the parameters so it’s not 100% accurate. It’s a good way to get the appearance of starlight on the planets as they orbit.”
Dannenbring has incorporated renders of raw Hubble footage into his backgrounds - and is particularly proud of the city lights and lava fields he has brightening up the dark side of his planets.
“It’s nice to light that up and have some emissive glow coming from it,” he enthuses. “Doing that required a little bit of math, a little bit of understanding of vectors and vector normals. But once you have it set up it’s just a few nodes in the Material Editor, so that’s really great.”
Generating a galaxy
Void Eclipse uses a “semi-procedural” system to put together its galaxies.
“I cooked in things so that I’ll be able to make it fully procedural if I want to,” explains Dannenbring. “But in this early stage of balancing how your forces are expanding and gaining resources I wanted to have that manual control over what planets are in each system and how they’re connected.”
The developer has a blueprint for how star systems are generated in, er, Blueprint - the UE4 tool that uses a node-based display to make scripting accessible to non-programmers. The creation of a new galaxy begins with popping that blueprint in the Unreal level editor and letting it run.
“I have a bunch of variables and settings for how many planets there are, what their types are, how many moons they have, any other astronomical objects and what their distances are from the star,” says Dannenbring. “So then when you start the game, the blueprints take all that info and they generate the models and the materials and the animations and the locations at runtime.”
From there, Bannenbring is free to fiddle with the procedural galaxy so that it becomes more playable and entertaining as a turn-based strategy proposition.
“Let’s say I have a map and I only want 40 stars, and I want them to be connected in a particular grid with choke points and areas of conflict, I can go in and edit that,” he finishes.
“I have had that thought - that it would be great to put [the Blueprint] out to the community and let them make their own. At this point I don’t have concrete plans, but I definitely think if people are industrious enough and they have a copy of Unreal, it would be easy for them to make a map.”
Editor's Note: PCGamesN selects fantastic Unreal Engine games and interviews developers of their choosing for the long-running "Making It in Unreal" series. Epic has no influence on the editorial process.