We wanted to share a little bit about the technical processes we are using to bring ships to life in Free Stars: Children of Infinity. If you’ve seen our development streams, most of our visible development effort has been in design, and we’ve recently been hard at work painting layers of content over it.
Lately, we’ve been working on ships. They’re not real ships, but we want them to feel like real ships to the player. As opposed to a painting or a video, game ships need to feel alive and present in the game world. Whether they respond to being hit by a weapon with a sound, bouncing off an asteroid, or simply to the player’s inputs, we want the player to feel like they can really inhabit the Free Stars universe. During Melee, they are the player’s (and enemy’s!) avatar, with control and agency to battle.
The most important thing is for a player to feel something. Ships aren’t just vehicles or objects, they are more like characters. They are not a part of the environment; they are its denizens.
So what goes into our ship art? How does a static painting become that character?
It’s Normal
Our work is based on a game which was built when there wasn’t really much distinction between “2d art”, “3d art”, or “pixel graphics”. In 1992, we were still dealing with CRT monitors, very visible pixels, and low resolutions. We’ve since moved on, technologically, and can support a lot of different graphical styles and techniques in different games. We could technically produce art any possible way, but we wanted to maintain some of the charm, whimsy, and stylistic liberties one can take with 2D art while still leveraging techniques to give the illusion of depth.
As a result, our ships are all pancakes. Or, strictly speaking, focaccia, waffles, or some other sort of square, flat thing. Using game rendering (aka shaders), we create 2 dimensional images which are interpreted to have meaning in 3 dimensions. The Chmmr, for example, starts with a simple square and then adds textures which describe its color, implied depth (aka normal map), and how it interacts with lights (aka specular map). See how we layer each component and how it accumulates into something which looks like a ship.
The Chmmr you see was actually an early experiment trying to make these textures by hand. We wanted to see if we could retain some of the artistic freedom of hand-painting while producing a 3D result. That technique turned out to be too laborious, so the Chmmr represents the output of a process that we have already learned from. Now, we actually do model our ships in 3D before exporting these specialized textures, since it reduces the workload while still allowing for handmade touches. In both cases, we gain the benefit of not having to deal with making complete 3D models, but we still get a result that has an illusion of depth and can interact with dynamic parts of the game.
Dynamics
If a ship were just a still model, it still wouldn’t have much life. We need dynamic elements based on the capabilities of a ship. At a minimum, we want them to respond to the player’s inputs and their own abilities. Our ship art is produced to sit alongside things like dynamic lights and visual effects to make, and they’re our best tool for making ships feel alive.
Some dynamic lights along with particle systems give us a simple thruster effect. We never made an engine powering the ship, but with the glow and jets of flame, we can imagine one is there inside.
Ships are nothing without their weapons, and anyone who played The Ur-Quan Masters may remember that the Chmmr is one of the most powerful ships in the Adventure game. Here’s what its mighty laser looked like back then.
It was an orange-red line, with some sparkly dots it left behind to imply a kind of ‘ionization’ effect. Hey, back in the day, this was an awesome laser. Weapons are already pretty cool because they directly impact the world, respond directly to the player’s button presses, and make some memorable sounds. Weapons give the player agency by default. For our new Chmmr, we wanted to reimagine “a red line” while still staying true to how the Chmmr laser should feel. Awesome, powerful, and lethal.
It’s gotten a lot more sophisticated than a simple, colored line! But, in many ways, it’s still quite simple. Especially since we only need to render in top-down 2D, we can use some clever tricks. The laser above can be dissected into its layers, just like the ship art.
All of these things draw together to produce an illusion!
- Scrolling textures (the red, wiggly bit) animate forward in the direction of the laser to make noise and add ‘motion’ to what would otherwise just be a red line.
- The center and glow provide a body for the laser, so the player can understand its size in space and thread area.
- The emission and contact VFX mask the otherwise funny-looking ‘hard edges’ of the textures.
- (not visible here) The emission area produces a dynamic light, which illuminates the ship.
The contact VFX are important for making the ship feel like a real inhabitant of the world. They not only tell the player they’re hitting something – important gameplay feedback – but also orient in the direction of what they’re hitting, reinforcing the ‘realness’ of the physical objects in the world. Here’s a demonstration of it sweeping across a simple, untextured sphere. (What the untextured sphere did to deserve this, we will accept any fan theories.)
Fun and Function
The final thing we want to share is that these bits of art are shown at the closest distance, if not much closer, than the player will ever see them in-game. Under scrutiny, we can always find problems and room for improvement. Our game art is there to serve a purpose, though. Melee should be fun, and ships should feel exciting, deadly, powerful, or all the other feelings we want. They are there to serve the player, and the player is playing a game!
A huge part of making games, much less making anything, is finding constraints and compromises as well as how the whole thing fits together. To use a metaphor, one might be the most amazing drummer in the world and love to play drums, but if the point is to listen to a 30 minute symphony, the listener is likely not there to just hear the sound of those drums. The sound of every instrument working together and balancing them all is one of our challenging jobs, but we never lose sight of what we want for our game and our players. Fun!
We’re going to shift gears next month with some Ur-Quan Masters anniversary activities, and we promise to be back with more exciting updates about Children of Infinity soon after. If you enjoyed this technical exploration of some ship art, please let us know on Reddit, Patreon, or our Discord. If you want more dev diaries like this, we have a few more waiting in the wings: let us know which ship you want to see!
(Ships are not to scale. Ships are not necessarily friends with one another. The Supox are still not sure about Juffo-Wup.)