Children of Infinity

Kickstarter Launch Incoming!

On April 16th at 7am PT, we are excited to launch our Kickstarter for Free Stars: Children of Infinity. Sign up now to be notified when it goes live and help us garner more support! The more attention you can help us get and the more backers who join us, the more successful we will be with our entire campaign. Haven’t gotten a good look at the game in a while? Be sure to check out our Kickstarter trailer.

We’re using Kickstarter to raise funds which will help us see our game to completion and create the sequel to The Ur-Quan Masters that we dream of. There might even be a few things in it for you too…

Backer Rewards

Beyond some unique digital rewards, we’re also creating some cool physical collectibles. Whether you want to immerse yourself in our handmade art and stories, long for a beautiful starmap to hang on your wall, or simply wish to don your Captain’s regalia with pride, we have a variety of treats we think you’ll enjoy.

Collection of physical rewards for Kickstarter backers of Free Stars: Children of Infinity

We’ve entered full production mode only with the confidence that we can finish what we started and that we think we have something really cool. After nearly three years of self-funding, along with the help of our Patreon community we’ve assembled, we are asking for your support to take this project across the finish line and make it the best it can be.

We are grateful for all of you helping to keep the Free Stars universe alive all these years. We hope you’re as excited for this as we are, and we can’t wait to launch our campaign on the 16th. Hope to see you all on Kickstarter!

Kickstarter Launch Incoming! Read More »

Free Stars: Children of Infinity comes to Kickstarter on April 16th

Free Stars: Children of Infinity is coming to Kickstarter on April 16th!

We are excited to finally share some of our work with you and showcase what we’ve been up to in our Kickstarter trailer. Our Kickstarter preview page will be live soon, and more details will be available then.

In the meantime, the alliance still needs you, Captain! Spread word of this message, that there is life still out there, that adventure awairds, and that we’ll need all the support we can get.

Join us on Reddit, Patreon, or Discord to be part of the conversation.

Free Stars: Children of Infinity comes to Kickstarter on April 16th Read More »

Upcoming Livestream & Channel 44 Discussions

A slithering ur-quan masked by shadow

Big Things Coming in April

Last week, we shared a message with our supportive Patreon community giving them some teasers, information, and a request for feedback. For everyone, we wanted to announce that we will be hosting a live stream this Friday, March 22nd at 11am PDT on Twitch to have a discussion about the near future of Free Stars: Children of Infinity and how we’ll be planning to take it to completion.

In short, we’re preparing to launch a crowdfunding campaign next month that is focused on one-time payments for people who just want the game. We’re talking about it live because we enjoy it, my birds miss getting free attention on camera, and we want it to be more of a discussion than us just telling you all of our plans. Your input and questions matter too!

We know everyone has a life, a schedule, and maybe even a different time zone than ours. For those who can’t be there live, there will be a recording and notes shared afterward, so don’t worry if you can’t make it.

Humorous pie chart allocation for the Druuge
We model ourselves after the Crimson Corporation.

Channel 44 Continues on YouTube

If you haven’t been following Channel 44 on our YouTube, now is the time to jump in! New episodes will be released tomorrow, March 19th. As before, Patreon supporters will get access to all of them immediately. They will also be available in audio form on the Pistol Shrimp Podcast

Here’s the schedule for the next round:

  • March 19th: Christine Love from Love Conquers All Games (Digital: A Love Story, Get in the Car, Loser!, Ladykiller in a Bind)
  • March 26th: Andrew Hume and Richard Clifford from MinMax Games (Space Pirates and Zombies, Clanfolk)
  • April 4th: Chris Taylor from Kanoogi (Total Annihilation, Dungeon Siege, Supreme Commander)
  • April 9th: Richard Cobbett from The Curiosity Engine (The Long Journey Home, Sunless Sea, Nighthawks)
  • April 16th: Mac Walters from Worlds Untold (Mass Effect Series, Jade Empire)

Join us on Reddit, Patreon, or Discord to be part of the conversation, and we look forward to seeing you this Friday! We have a lot of exciting stuff in store.

Upcoming Livestream & Channel 44 Discussions Read More »

Dev Diary: Procedural Planet Art

A series of 12 procedurally generated planets sitting in space.

Today’s episode of our dev diary is about how we’re generating our procedural planet art. It’s a big task, but we want to share the journey so far and highlight some of the amazing work we’ve been doing in what is our biggest, most collaborative undertaking so far.

Our process for planet art is following the general model from The Ur-Quan Masters which we loved. Planets serve a particular purpose in our game, and we want to be able to satisfy that big goal by being able to make many of them. First, let’s start with what The Ur-Quan Masters did.

What’s Our Goal?

We like to think of planets as characters unto themselves. Though space is largely empty of actual life, we want the universe of Free Stars: Children of Infinity to have things which our living player will appreciate and have emotional reactions and relationships with. Planets, first and foremost, have types. Some of them are mundane, disappointing, and maybe even unappealing, but others may be more fantastical in name and appearance, like a gem world. We want players to be happy, disappointed, frustrated, and have myriad reactions to meeting these recurring characters over and over, so they need to have a little character to begin with.

Images of all the planet types from The Ur-Quan Masters.
Images of all the planet types from The Ur-Quan Masters. What a lineup!

Similar to The Ur-Quan Masters, there will be thousands of planets to explore in Children of Infinity. And similar to how we didn’t actually don’t know how many there were until The Ur-Quan Masters was finished and Fred wrote a program to calculate it way back in 1992, we actually have no idea how many are currently in the game despite the hundreds of stars in our galaxy. But we know the player is going to be seeing a lot of them.

Creating thousands of planets by hand would be disastrous for our budget and probably drive at least most artists insane. Procedurally generating the art is the only way, but far from piles of random planets is our actual goal: piles of planets with a distinct character. How have we gone about this?

From the Web to Godot

The short version of this story is that we forked a procedural planet toy which someone else had made, explained why we liked it and thought it might be a suitable start for our game, and asked if anyone was interested in trying to learn about it and mold it into something we could actually use.

The UQM Planet Generator web toy.
The UQM Planet Generator web toy.

Several members of our community just had fun making planets they thought had interesting features. A few expressed interest in trying to understand and shape the tool further. After some time spent iterating on the web version combined with announcing our shift into using Godot as our viewer solution, we asked if the planet art team wanted to make the jump with us instead of just proving more things in the web app for us to port later.

Since I had a bit of a Godot head-start, I started by building them an extraordinarily simple Godot test project which we could use as an addon in Godot, meaning it could be built and maintained on its own, and integrated later in Children of Infinity. I passed it off to the team actually doing the hard stuff, and they set about trying to rebuild the techniques they liked from the Javascript version while expanding on them or altering things to work better given the technological capabilities of Godot and the realities of how we wanted to use it in our game.

If you’re unfamiliar with procedural texture generation, I can give you a very high-level overview. If you’ve ever seen fun, mathematically driven artwork like the Mandelbrot set of fractals, we use algorithms plus randomness to generate what we call noise textures. By tuning the mathematical inputs of the noise, we can create interesting curves, dots, and shapes. We map the outputs to color values, height values, and material properties (i.e. is the surface shiny, rough, etc.), and we wind up with art as a result of controlled, designed chaos. Computers are doing what they’re good at, and our artists can hand-craft things to share the space with the generated objects.

Mosaic patterns generated by noise.
A simple noise texture making different shapes and grayscale values.

The last step is simply mapping it to a sphere properly for views in space while also supporting mapping it to a rectangular plane for Planetside. The team developed some of their own techniques on that, and we worked together to integrate it into Children of Infinity. The initial project went just as planned and was a success! The art team proved out how to make planets with base types, artistically (e.g. a rocky, mars-like planet but with different colors), how to create a planetside texture which matched the spherical view, and our workflow for integrating their changes while giving them a mini-planetside test bed where we could tune.

A test texture mapped to a rectangle and a sphere, showing how the texture applies to both places.
A test texture mapped to a rectangle and a sphere, showing how the texture can be projected to either.

Beyond the First Steps

A rainbow planet with rainbow rings.
Rainbow world experiment, with rainbow rings. Color overload!

In the beginning phase, the planet art team was mostly figuring out just how to get things off the ground, proving how it would be done and making something good enough. While the non-procedural art crew was learning how to build and light art in Godot, we eventually wanted to merge forces. Ben, our art consultant, worked with me to actually figure out an in-engine look for Planetside, which is, as far as our game is concerned, the place players will be spending the most time looking at the planet textures.

We had enough experience so far building ship art that we weren’t concerned about that, but what about this new, procedurally generated texture? As the only non-space gameplay experience, how would it sit alongside the necessary gameplay components of Planetside like creatures, minerals, and hazards? We didn’t just need to develop a Planetside texture but also a general aesthetic for Planetside, with representative lighting, camera angles, and strategies for supporting the fun we want players to have.

A lander vehicle driving and shooting on a blue planet's surface.
A few prototype dynamic elements help us understand light and scale against the planet texture.

Down on Planetside, there’s a lot going on besides the texture! Putting it all together taught us a lot about what we needed. Lighting helped the most, including different lighting configurations for different planet types. We imagined being able to play with the lighting values as well, adding bits of nuance to different Planetside experiences.

Animated gif of a lander vehicle on the surface of a dark planet, illuminating the ground with its headlamp.
Even the same type of planet being lit differently gives the experience unique character. Spoooooky.

Beyond that, we learned an important lesson: the planet texture which looked good in Orbit did not look good on Planetside. Put simply, Planetside is an abstraction of sizes done to satisfy its arcadey gameplay. It has an illogical size (it’s a rectangle) and objects are not represented at true sizes relative to one another. Having a very real feeling planet texture in Orbit didn’t make sense when we went to Planetside. Improving this is our current focus, but we only were able to learn what we needed to improve by bringing everyone together.

We’re by no means done, but we have our course charted!

A series of 12 procedurally generated planets sitting in space.
Some of the proof-of-concept planet textures being generated so far.

Our Destination

On this project, we’ve often used the phrase One Awesome <Insert Blank> as a goalpost. If we can prove that we can make one awesome planet texture, which is part of one awesome Planetside experience with all the components we’re using, we’ll know where the mark is. By actually trying to put all the pieces together, we truly see what works, what we need, and what we can consider polish or nice to have. This is crucial for game development, and it is always an iterative process to learn just what we have.

Working with an artistic sense of making something stylized, abstract, and emotional on Planetside alongside the programmers’ knowledge of what can actually be done and how is going to give us the best result. It helps to have many eyeballs and many disciplines contributing.

Back to the original goal: we want players to feel emotional connections with the planets. They’re exploring space, full of the unknown and surprises, but with familiarity in the different types and discovery in new ones. If each star system is a mystery candy box, the planets are the individual candies. Our game has a lot of candy boxes to unwrap, and it’s important to remember that, just like candy, they’re not supposed to be sustenance. Players will be scanning, landing, and taking off in rapid succession, all while trying to accomplish their own open-world goals driven by their own desire. Planets are a bite-size experience, and we want that experience to be satisfying in aggregate, with knobs to twist and progression on both the visual and gameplay sides to keep it interesting.

Animation of a planet texture surface being made through randomized settings.
The same planet noise with randomizing material settings for interpreting it.

With the goal in mind, once we have the setup for one planet, we’ll be able to move on to making Many Awesome Planetside Textures because we have our benchmark. The planet team has already done some of their own explorations on how to do more than just we originally wanted. They’ve built things like a crater-stamp generator, rings for planets in orbit, and even proofs of concept for how to do some of our more unusual worlds like Emerald Worlds. We’ve done experiments with other layered, procedural elements in-engine which will add variety like lights and fog. But we have to have our single benchmark before we can evaluate what’s really effective!

A gray planet with craters.
A test of crater ‘stamping’ on a planet’s surface to add even more variety.

Last but not least, one of the special things about the procedural planets work is that it’s almost entirely community-sourced! We’re looking forward to releasing it as its own standalone addon so people can use it even in their own projects or add to it themselves. We are extremely grateful to our community team of just three folks who have been involved in pushing this forward and will be part of taking it across the finish line. It’s really fun for us to work with them on this piece, and we wanted to take a moment to highlight their amazing work. Look forward to another episode when we get further along!

Join us on Reddit, Patreon, or Discord and let us know what you think!

Dev Diary: Procedural Planet Art Read More »

Dev Diary: Bringing Ship Art to Life

Deconstruction of the Chmmr laser with images for each layer.

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.)

Dev Diary: Bringing Ship Art to Life Read More »