Universe Sandbox 2019 Retrospective

While there’s a lot to look forward to in 2020, we’re going to take a moment to celebrate the milestones we reached this past year.

 

1

New team member.

Brendan is a graphics developer from Australia and is joining Georg in making everything in the universe beautiful, awesome, and graphically performant. He’s already worked on improving random planet generation, fixing black hole issues on the Magic Leap, and is now creating visuals for our experimental liquid planets project, AKA smoothed-particle hydrodynamics (SPH).

 

2

Number of full-time developers on a new platform.

Magic Leap 1! We started a new journey into augmented reality in 2019 and we’re really proud of the work we’ve done to bring the full power of Universe Sandbox to Magic Leap as an undiluted experience. Dave and Jacob focused most of the year on Magic Leap with support from the rest of the team.

Universe Sandbox creator & director, Dan Dixon, working on Magic Leap with developer Dave Nelson.

 

4

New human-sized objects.

  • banana
  • watermelon
  • sword
  • sledgehammer

Everything you need to make a very bad fruit salad.

 

7

Significant updates to Universe Sandbox.

  • Revamped Vapor & Engine Experiments | Update 22.2 | April 10, 2019
  • A Big Day for Physics | Update 22.3 | May 30, 2019
  • Beyond the Milky Way | Update 23 | June 25, 2019
  • Galactic Clean-Up | Update 23.1 | August 20, 2019
  • Saturn’s New Moons | Update 23.2 | November 01, 2019
  • Surface Grids & Lasers | Update 24 | November 22, 2019
  • The Color in Space | Update 24.1 | December 19, 2019

This year had a mix of improving existing content and rolling out new features. While there were fewer objects added, several key systems got revamped (see Surface Grids), setting the team up for exciting additions in the coming year.

Image provided by Discord user Mangolia.

 

28

# of languages we now support, up from 22 last year.

A big thanks to our community for helping with our crowdsourced translation efforts! Want to help translate Universe Sandbox into your native language? Learn more.

Bulgarian Chinese Simplified Chinese Traditional Czech Danish
Dutch  English  Filipino Finnish French
German Greek Hungarian Indonesian Italian
Japanese Korean Norwegian Polish Portuguese
Romanian Russian Spanish Swedish Thai
Turkish Ukrainian Vietnamese

 

601

Highest number of concurrent users in Universe Sandbox in 2019.

This is higher than in 2018, and second only to our all-time high of 617 players in March of 2016, during our first big Steam sale. 

 

1,963

# of users in our Discord server.

Join us on Discord!

 

2,124

# of positive Steam reviews in 2019.

Seeing so much love for Universe Sandbox warms our hearts the way gravitational squishing heats Io.

Overwhelmingly Positive reviews. Wow!

 

2403

# of code commits (changes) made to the Universe Sandbox project in 2019.

A look at our GitHub commits activity since 2015. The gray section shows 2019.

 

14,893 

# of shared items in the Universe Sandbox Steam Workshop.

This is over six times as many as 2018! We can’t wait to see how this library of community creations grows in the coming year! To get through all of them in 2020, you’d have to check out slightly more than 40 per day. (Get cracking?)

 

103,541

# of messages sent on Slack (an instant messaging platform we use to communicate).

Giant Army is a completely remote team, with some dozen members on three continents. We also use Google Meet for our face to face video meetings but much of our work happens in text.

 

163,298 

# of units sold on Steam.

In 2018, we sold a copy just about every five minutes. In 2019, that interval narrowed to a little under 3 minutes and 15 seconds. 

 

474,811

Lasers equipped since our Surface Grids & Lasers release.

This is one of the stats we track using our built-in analytics.

 

The magic cold laser in action. Image provided by Discord user Anonymoose/BlueMarble.

 

8,093,789

# of views on most viewed Universe Sandbox video of the year.

We’ve been delighted to see GreyStillPlays make 26 videos featuring antics in Universe Sandbox.

 

10,485,760

# of individual data points we are simultaneously simulating on object surfaces.

This is our Surface Grid system, which is a foundation that we’ve been working on for years, and will enable us to skyrocket into the future with some pretty exciting features. More on that soon in the 2020 roadmap.

(with atlas resolution of 1024 × 2048 × 5 layers = 10,485,760  |  higher-end computers can simulate 2048× 4096 × 5 layers = 41,943,040 points).

Vapor content on the Moon as it is bombarded by icy asteroids

 

 

What’s next?

Improvements to heat and material simulation across object surfaces, new tools, life simulation, better performance, data analysis, Magic Leap, a completely revamped VR experience, SPH – it’s hard to list it all. The foundational work we did in 2019 sets us up to do amazing things in the coming year.

Stay tuned for a 2020 roadmap, which we’ll publish next.

Thank you to everyone, to both new players and those who have been playing Universe Sandbox for years. Whether you’re analyzing orbits, creating fictional worlds, learning about astronomical material properties, or just having fun throwing planets together, we truly couldn’t do this without your continued enthusiasm for our little astronomy simulation. And we’re just getting started.

 

The Universe Sandbox Team
Dan, Chris, Georg, Alexander, Jonathan, Dave, Rappo, Mat, Jacob, Erika, and Brendan

 


The Color in Space | Update 24.1


December 20: Update 24.1.1 is a small patch that fixes a handful of bugs, including issues with gas giant band order and lighting for custom star colors.

Run Steam to download Update 24.1, or buy Universe Sandbox on Steam where it is 33% off until January 2, 2020.

Customize Those Colors
Customize colors for just about every object in the new Appearance tab. Add dozens of bands to gas giants, turn Earth’s atmosphere red, or color your alien star purple. We aim for realism in Universe Sandbox, but that doesn’t mean we can’t also allow for creativity.

Dock Those Graphs
Graphs are now docked alongside the other view panels added with Surface Grids, making it easy to keep your eye on data for different objects and properties as graphs, maps, and surface views.

Launch That …Sword?
We added a sword. Don’t think about this one too much. Add > Objects > Longsword

This update also improves black hole visuals, makes it possible to view Surface Grids data directly on an object’s surface, and adds a bunch of smaller improvements and bug fixes.

The name of this update is an homage to the H.P. Lovecraft sci-fi short story The Color Out of Space. A film adaptation of the same name, starring Nicolas Cage and coming to theaters in January 2020, features a scene with a character playing Universe Sandbox. Catch a glimpse of it in the trailer at the 0:17 mark!

Check out a full list of What’s New in Update 24.1

Happy holidays!

 


SPH Fluid Simulation | DevLog


Video: Simulating a planetary collision using a new method called smoothed-particle hydrodynamics (SPH).

Hopefully by now you’ve had time to check out Surface Grids & Lasers | Update 24 of Universe Sandbox. If you haven’t, time to get out from that rock you’ve been living under and start terraforming all those other rocks floating through space.

We plan to continue to add to the Surface Grids feature with even more detailed surface simulation through next year and beyond. Surface Grids is a massive new feature that changes a lot with the core simulation of objects in Universe Sandbox, and so far we’ve just scratched the surface of what it can do. We’re excited to explore its possibilities even more.

But right now, let’s turn our attention to something our physics developer, Alexander, has been working on. Introducing… smoothed-particle hydrodynamic fluid simulation. Let’s just call it SPH for now.

SPH is NOT included in Universe Sandbox yet. This is a behind-the-scenes look at a feature that we are still working on.

 

What is SPH and how does it work?

For a deep dive into the mechanics of SPH, check out this paper from our very own physics developer, written back in 2010 (interestingly, not written in relation to Universe Sandbox, but for another project that was similar in many ways — there’s a reason why we hired him many years ago to help build this new version of Universe Sandbox, and it had more to do with relevant experience than it did with his propensity for typos… *wink*).

Or if you’re curious about SPH, but perhaps not curious enough to read 35 pages on it, here’s a crash course:

SPH is a computational method commonly used for modeling fluids (though it can also handle solids). That might make you think that we’d use this for simulating something like water flow on a planet’s surface, but “fluid” here actually has more to do with simulating much larger objects.

On an astronomical scale, many of the objects you can simulate, like stars and galaxies, behave like fluids. This is also true for planets, whether it’s a gas giant or a rocky planet with, or even without, a molten core. And even in the case of large chunks of solid rock colliding with each other, there is such intense temperature and pressure that the materials behave more like fluid rather than rigid solids: they’ll stretch and distort and be torn apart, rather than splinter, crack, and shatter.

So in short, SPH will help create more detailed, realistic simulations of collisions, fragmentation, and formation of different types of objects in Universe Sandbox.

How? First, the material, such as a planet, is broken into a number of “particles” that each have properties such as mass, temperature, velocity, and position. You can see these particles clearly in any of the videos in this post.

But the “smoothed” part of “smoothed-particle hydrodynamics” means that these particles are just sample points of what is actually a continuous material, where they each contribute to the properties at a given point based on a weighted, smoothed, average. Together, they describe the properties that exist at any given point in a flow of material, but they themselves are not the material. Think of it like buoys in an ocean: the buoys will each monitor the properties at their location, and they are distinct from the continuous fluid, ie the ocean, that they are monitoring. So for the future of SPH in Universe Sandbox, the current debugging visuals, where you can see individual particles, will ideally be replaced by something that better represents the continuous fluid that is actually being modeled.

By tracking how each of these particles move, and more importantly how they move in relation to their neighbors, you can calculate pressure and viscosity (friction) at any point in
the fluid. And then you can estimate how this will move over time under different forces. Combine this with gravity and you start to see a simulation with emergent behavior that matches what we observe in real life.

 

Why SPH?

Because you get accurate simulation with emergent behavior, rather than disparate modeling of phenomena that needs to be stitched together. For example, with SPH, material will collect under the influence of gravity, but it will not all fall to the center of mass. Instead, as more material collects, the pressure increases and starts pushing out material, preventing a total collapse. The result is a spherical shape, and not because we specifically told it to become a sphere, but because that’s what happens when you simulate physics on a more granular level.

Or look at the case of Roche fragmentation, where a moon may be torn apart from the gravity of its host object “pulling” more on its near side than its far side. In our current simulation, pre-SPH, where we model how single points of mass move purely under the influence of gravity, we need special handling to calculate when and how this should happen, according to analytical models. But with SPH, this phenomenon just happens as the result of forces acting on the moon.

Why SPH specifically and not another method? When simulating space, there is more literal space than there is simulated material. SPH is great for handling cases like this where material is sparse. Other methods instead require simulating each point of space, seeing how each of these points changes (versus tracking only points specifically in a material), which would be very slow for anything like entire star systems.

Universe Sandbox is a unique physics simulator because we aim to make it an accessible, real-time, interactive experience. When compared to non-real-time simulations run on supercomputers, this presents a lot of limitations, and SPH is not immune to these. The biggest issue we will need to navigate as we continue development is the resolution of the model — to be really accurate and demonstrate smaller, local changes, you need a lot of sample points. But each point comes at the cost of a good chunk of computing power. So as with all features in Universe Sandbox, we’ll need to find a balance, with enough points to model things in interesting ways, but not so many that it becomes a slideshow.

 

So… what does it do?

Technical explanations are fun (…did I get that right?), but what you really want to know is what does this SPH thing mean for me and my planets? That’s also answered above: it will help create more detailed, realistic simulations of collisions, fragmentation, and formation of different types of objects in Universe Sandbox. But what you really, really want is a bunch of videos of this is in action. Understandable.

Quick disclaimer: SPH is a feature in its early stages of development. Visuals are for debugging purposes. Anything shown many not be representative of how it’ll appear and behave when included in an official Universe Sandbox update.


Two equal-sized bodies showing pulsating behavior as pressure and gravity tries to find a balance.
 

Two earths spinning the same direction and colliding. The result is a combined body with non-zero angular momentum from the individual momentums adding together in the same direction.
 

Increasing the density and speed of Mars before it impacts Earth and shoots right through it.
 

The existing simulation “Earth & Moon x25 Offset” showing all Earths collapsing and combining.
 

Results of the Moon fragmenting around Earth.

Want to see more? Check out the full video from our physics developer, Alexander, on YouTube

So in short, SPH will improve or make possible simulations of the following:

  • Total fragmentation
  • Tidal deformation and Roche fragmentation
  • Accretion disks / object formation from debris
  • Giant-impact hypothesis (moon formation!)

And in the longer term, we hope to apply it elsewhere, including more accurate galaxy collisions and star formation.

 

What’s Next

As you can see, SPH is already working pretty well within Universe Sandbox. But you can also see that it’s not exactly integrated with everything else yet. The visuals right now are intended solely for debugging purposes, and the transition from our standard planet visuals to the SPH particles is a little rough. Making visuals that look more like molten planets being torn apart will definitely take time, but we have some ideas in mind that we’re excited to explore.

The visuals are just one component of what we’ll need to work on to integrate SPH with Universe Sandbox. Making it work with other complex aspects of the simulation, like the new Surface Grids feature, will be its own can of worms. But we’re no strangers to technical challenges. And since we think SPH is worth experimenting with on its own, we hope to release an early version of it using the debug visuals and let you turn it on if you’re interested in checking it out. We don’t know when this will happen yet, but hopefully not too long into next year.

And hopefully before then, we’ll have a small update ready that will add some oft-requested color customization…
 

 


Surface Grids & Lasers | Update 24

Run Steam to download Update 24, or buy Universe Sandbox via our website or the Steam Store.

Surface Grids & Lasers are here! This is a big update that adds new layers to the simulation and new ways to experiment with planets, moons, and entire systems:

Simulate Surfaces
Surface Grids is a huge, complex feature that simulates the surfaces of planets, moons, and other objects. Every one of these objects now has simulated water levels, water and vapor flow, local temperature, material states like snow and ice, and more.

Vaporize Planets with a Giant Laser
Did we mention that there are lasers now? Whether you want to melt some ice caps or vaporize entire planets, the laser is the right tool for the job: Tools > Laser

And More to Come
This is the first version of Surface Grids; we hope to release many improvements to surface simulation over the coming months.

Check out a full list of What’s New in Update 24

 


Surface Grids & Lasers | DevLog #12


Video: Saving an object and its Surface Grids data then adding it to the simulation.

Surface Grids & Lasers are not yet available in any official Universe Sandbox releases. But they are now available in the experimental version of Universe Sandbox! Learn how to take an early look at Surface Grids & Lasers.

If you haven’t seen them yet, check out the previous Surface Grids DevLogs #1, #2, #3, #4, #5, #6, #7, #8, #9#10, and #11. Keep in mind these DevLogs document a work-in-progress feature. Anything discussed or shown may not be representative of future versions of Surface Grids.

What is Surface Grids? It’s a big, complex feature still in development. It simulates the surfaces of planets, moons, and other objects, adding much more detailed, dynamic, and accurate visuals. And as a bonus, it makes it possible to add tools like lasers, which are essentially just a fun way of heating up localized areas of a surface.

Improving the Experiment

Since we released the first experimental version that included Surface Grids, we’ve released a few updates that have made a lot of improvements and bug fixes. Below are some highlights from the three major areas of the new Surface Grids feature, the interface, simulation, and visuals.

 

1. Interface improvements

  • Better design for map interface
  • New map legend

We moved around some buttons, turned others into drop-down menus, cleaned up some settings, and added a brand new color legend for all that wonderful data.

 

2. Simulation improvements

  • Reimplemented tidal heating
  • More stable heat diffusion (& new Thermal Diffusivity slider to adjust rate)
  • Better water initialization for random planets
  • Improved water flow

A lot of the individual simulation improvements, tweaks, and fixes can be harder to notice, because if everything’s working well, then they don’t draw much attention to themselves. Instead, they just work. But if you’ve been following along, hopefully you’ll notice that the surface simulation has been getting smoother and smoother.

 

3. Visual improvements

  • Improved coastlines
  • Improved lighting
  • Improved terrain and vegetation rendering
  • Improved visual noise (randomness) on ice edges
  • Reduced texture seams
  • Shallow water no longer fully opaque

Isn’t Earth looking georgeous? (…that’s what we call gorgeous things created by our graphics developer, Georg) On top of all of the visual beautification, which you can see with random planets as well, we’re pretty happy with how coastlines are now looking (these latest changes are not yet in the experimental build). They may not be as accurate as our real life home planet itself, but after lots and lots of tweaking and experimenting, we now have coastlines that are fairly accurate and work well with changing water levels.

Beyond the changes we’ve listed above, we’ve also added support for saving & loading objects, including retaining all of the Grids data (see video at top of post), performance improvements, and dozens of tweaks and bug fixes.

In the last update we also added a short, 15-second performance test that you’ll see pop up when you first run this version of the experimental build. Please run this test so we can learn more about how Surface Grids performs on different hardware!

If you want to stay up to date on the latest changes to the experimental version, join our Discord and check out the #experimental-build channel. We make announcements there whenever there’s an update.

 

What’s Next

As we continue to update the experimental build, we get closer to the official release of Surface Grids. Like before, this part of development is about balancing our work between continuing with all the other improvements and fixes we’ve had in mind and addressing community feedback as more and more people check it out — please let us know what you think!

Above are screenshots of some of Brendan’s newly generated heightmaps (detailed in DevLog #10) partially implemented in-game. There’s still more work to do on these, but we should hopefully have them in an experimental build soon.

We also are working on a tutorial about terraforming Mars. We’ve seen multiple users point out that terraforming is a lot more complex now, and that’s certainly true. This is easily seen when attempting to terraform Mars, which, it turns out, is a bit more involved than just spraying some water at it. Figuring out how to do it is part of the fun, but there are some tips and tricks that are good to know.

We’re super excited with how Grids is shaping up, and we hope that if you’ve been following along, you can see all the progress we’ve made. We look forward to sharing more. See you in the next DevLog!

 


Saturn’s New Moons | Update 23.2

Run Steam to download Update 23.2, or buy Universe Sandbox via our website or the Steam Store.

Introducing the new Moon Champion of the Solar System, with a total of 82 known moons, it’s the great ringed gas giant Saturn!

Take a tour through the discoveries of Saturn’s moons, from the first discovered moon, Titan, in 1655, to the latest discovery of 20 new moons in October 2019:

Home > Guides > Science > History of Saturn’s Moons

With 82 moons, Saturn now has the most known moons, surpassing the previous record holder Jupiter and its 79 known moons.

This update also includes a refresh of our database and Saturn simulations to add its new moons, plus a few smaller fixes and improvements.

Check out a full list of What’s New in Update 23.2

 


Universe Sandbox is 33% Off — Best Deal Before Price Increase

Universe Sandbox is now 33% off on Steam!

This is your last chance to get Universe Sandbox on sale before we raise the price on Tuesday, October 22 to USD $29.99 (localized prices will be raised accordingly). We’ll definitely be on sale again after we raise the price, but this will likely be the best deal for a while.

We announced our plans to raise the price earlier in the summer. This is slightly different than the original plan of raising it once we released Surface Grids & Lasers, but it still fits into the October timeline we mentioned. And while Surface Grids & Lasers aren’t available in any official releases yet, you can try them now in the experimental build!
 
What is Surface Grids?

It’s the next big, complex feature that is coming to Universe Sandbox. It simulates the surfaces of planets, moons, and other objects, adding much more detailed, dynamic, and accurate visuals.

And as a bonus, it makes it possible to add tools like lasers, which are essentially just a fun way of heating up localized areas of a surface.

Learn more about Surface Grids & Lasers in our latest DevLogs


Surface Grids & Lasers | DevLog #11

Surface Grids & Lasers are not yet available in any official Universe Sandbox releases. But they are now available in the experimental version of Universe Sandbox! Continue reading to learn more about how to try this version.

If you haven’t seen them yet, check out the previous Surface Grids DevLogs #1, #2, #3, #4, #5, #6, #7, #8, #9, and #10. Keep in mind these DevLogs document a work-in-progress feature. Anything discussed or shown may not be representative of future versions of Surface Grids.
 

What is Surface Grids?

Surface Grids is a big, complex feature still in development. It simulates the surfaces of planets, moons, and other objects, adding much more detailed, dynamic, and accurate visuals.

How? It uses a grid of data to keep track of thousands of points across an object’s surface. Each point stores local data, like temperature, elevation, and composition, for that spot.

It also simulates how this data changes and moves from one point to the next across the surface. This allows us to simulate water levels, water and vapor flow, heat diffusion, material states, and more. These are complex phenomena that we simulate with simplified models based on geophysical and climate science.

And as a bonus, it makes it possible to add tools like lasers, which are essentially just a fun way of heating up localized areas of a surface.

 

Time to Experiment

Surface Grids & Lasers are not yet available in official releases of Universe Sandbox. But you can now try them out in the experimental build! This experimental build has an incomplete version of Surface Grids & Lasers. You’ll see areas of the simulation and interface that are works in progress. And you’ll see plenty of bugs. Part of trying out the experimental build now is helping us make these features better as we continue development.

To opt into the experimental build:

  1. Right-click ‘Universe Sandbox’ in your Steam Library
  2. Click ‘Properties’
  3. Select ‘Betas’ tab
  4. Set dropdown menu to ‘experimental’
  5. Close Properties 
  6. Once updated, launch Universe Sandbox

Check out What’s New | Experimental Builds for an overview of changes, tips, known issues, works-in-progress, and other notes.

Recommended sims:

  1. Earths Around Sun x10 Tidally Locked
  2. Bombardment of Moon
  3. Earth & 50 Colliding Moons

Recommended experiments:

  1. Laser the Earth! (Tools > Laser)
  2. Throw water at a cold planet (Tools > Material)
  3. Terraform a Random Rocky Planet
  4. Tidally lock planets close to a star
  5. Dock Temperature and Displacement maps during a collision

We shared this experimental build recently on our Discord and we’ve had great responses so far, with plenty of feedback on what’s good, what’s broken, and what could be improved. Now we’d love for you try it out and give us feedback. The best place for feedback? Discord! Just keep in mind this isn’t the final version and there’s still work to do.
 

Keep an Eye on the Data

 

You’re welcome to enjoy Surface Grids & Lasers however you want, but if you ask us, we think the lasers are small potatoes compared to everything else that is now happening on object surfaces.

The Surface Grids map not only looks cool, but it also provides a lot of insight into what’s going on with Surface Grids. To see all of the available options, check out the very top of the Properties panel in the new Surface tab.

You can switch to Temperature, Elevation, Displacement (Impacts), Water Level, Lapse Rate, Vapor, and Ice, and you can dock multiple maps so you can watch them all at once. The most interesting data to watch depends on what is happening in the simulation, but you’ll also find that they’re all connected — for example, a collision will affect all of these as the temperature rises and craters form, which in turn changes the elevation and may displace or add water, depending on the composition of the impacting object.

 

What’s Next


Video: Surface Grids data, such as temperature and water depth, shown directly on an object’s surface (work in progress).

Moving forward with these experimental builds, we’re balancing our development between addressing feedback from the community and continuing with everything we had already planned for the release of Surface Grids.

One issue that has come up for some users is performance. Surface Grids is the first big Universe Sandbox feature that relies on the graphics card (otherwise known as graphics processing unit or GPU). Previously, the heaviest calculations were from the physics side of the simulation, and these were all performed on the processor (CPU). Now with more emphasis on using the GPU, not just for visuals but for running all of the calculations involved with simulating surfaces, we’ve better balanced out the simulation calculations across a user’s hardware. But this means that users with older integrated or mobile GPUs (usually found in older laptops) may see worse performance than before. We’re doing our best to squeeze out all of the performance we can get on older hardware, but ultimately there’s a limit to what we can do, and the unfortunate reality is that we’ll likely be raising our minimum and recommended requirements soon to include more dedicated video memory.

Beyond that, our focus is on fixing any bug that comes our way and improving the new interface, all to make these features as fun and easy to use as possible. Plus there are some of the more involved projects, like implementing Brendan’s heightmap generator for random planets (see our last DevLog), visual improvements and polish, the ability to see data maps directly on object surfaces (see video directly above), and more tools for surface interaction, all of which we’ll talk about more in future posts. See you then!

 


Surface Grids & Lasers | DevLog #10


Video: a Surface Grids data map of elevation displacement as fragments from a massive collision carve and crater Earth’s surface.

Surface Grids & Lasers are not yet available in Universe Sandbox! This post is a behind-the-scenes look at our work on these features. We don’t have a release date yet, but we’re getting closer every week.

If you haven’t seen them yet, check out the previous Surface Grids DevLogs  #1, #2, #3, #4, #5, #6, #7, #8, and #9. Keep in mind these are documenting a work-in-progress feature. Anything discussed or shown may not be representative of the final release state of Surface Grids.

A primer on Surface Grids for anyone not familiar:
It’s a feature we’re developing for Universe Sandbox that makes it possible to simulate values locally across the surface of an object. In effect, it allows for more detailed and accurate surface simulation and more dynamic and interactive surface visuals. It also makes it possible to add tools like the laser, which is essentially just a fun way of heating up localized areas of a surface.
 

How to Build a Planet

In our last DevLog we welcomed Brendan, our new graphics developer. Brendan is jumping right into helping Georg, our senior graphics developer, with work on visuals for Surface Grids. His first project is building new tools for generating heightmaps.

Our goals for this project: create a random heightmap generator capable of building known geological features in randomized configurations for planets, moons, and other objects. For example, it should be able to generate a heightmap for a planet that has features like large mountains and rifts, echoing what we’ve observed on surfaces in our Solar System, but ultimately unique in its configuration.

Additionally, it should be able to work with a combination of randomized and known data. For example, it should be able to sensibly fill in the missing gaps when we have limited data from real-life observations.

The trick with all of this is to find the balance between messy, randomized heightmaps that don’t result in any recognizable shapes or features, and clean-cut heightmaps that look overly designed and artificial.

So with these goals in mind, Brendan has come up with a recipe:

  1. Generate plates
  2. Generate large-scale features based on plate tectonics
  3. Add details
  4. Add impact craters
  5. That’s a planet

Plate tectonics: Please note that this does NOT mean that we are creating a simulation of plate tectonics within Universe Sandbox. We know this is a common feature request — and we agree it would be awesome to have — but simulating and showing the actual movement of plates over time is much more complex and is something for further into the future.

Instead, our plan is to use the concepts of plates and tectonics to generate sensible starting points for large-scale features in the heightmap. Then from there, we add smaller details like lakes or hills, pepper in impact craters for older surfaces, and voila, there is the surface of a planet. (Of course, this results in just the heightmap, which informs rather than is the surface visualization.)
 

Keeping Tabs on Your System

In DevLog #4, we shared some mockups for some of the new user interface (UI) that’s part of Surface Grids. The most important part is the new data map, which shows the Grids data in a nice and colorful 2D map of the surface.

The map is a gateway to understanding the benefits that come with the Surface Grids feature: instead of seeing a single value in a textbox for a property like Temperature, there are now thousands of color-coded points all changing and moving across the surface as heat diffuses and the temperature adjusts to the factors of the simulation.

But beyond helping with understanding what Surface Grids is doing, the map is also a powerful tool for monitoring the data. And sometimes, you want to view data for multiple objects at the same time, so you can keep tabs on how the planets and moons in your system are changing in the simulation.

With the new map UI, you can “pop out” a map from an object’s Properties panel and dock it to the left side. Then you can set it to view different Surface Grids data or the standard surface or composition view, and you can stack them for different objects. Chris has been working on implementing the mockups for the map and its docking functionality, which can be seen on the left:


 
Unrelated to Surface Grids, one of our other developers, Jonathan, has been working on some styling changes to the user interface, adjusting things like font size, colors, and margins. They’re smaller changes on paper, but we think the improvements really make the whole interface look and feel better. Just part of our constant quest to make Universe Sandbox better and easier to use.
 

What’s Next

This has probably been said in a previous DevLog, but it’s worth repeating: Surface Grids is a big and complex feature. We know we’ve been working on it for a while, and it may seem like progress is slow-moving, but we really are moving along at a good pace — there’s just a lot to do. Since the last DevLog, Universe Sandbox astrophysicist and developer Jenn has fixed a handful of temperature issues, so now planets are created at, and settle into, more accurate temperatures. There are lots of little issues like this that come up when building a complex simulation of something we know so well, like Earth.

So now we’ll continue with more fixes to the simulation and the visuals, more work on the UI, more improvements to the heightmap generation, and more of everything else that helps make Grids fully functional. Hopefully we’ll have an opt-in experimental build soon. We thank all of you for your patience!

 
 

Advice for Aspiring Game Developers

Whenever we put up a job posting, we get a handful of applications from younger fans who are aspiring game developers. They usually admit they’re not qualified, but they nonetheless write in because working on Universe Sandbox is their dream job.

While they may not have the experience we’re looking for (and some aren’t even old enough to meet the minimum employment age in the United States!), we definitely appreciate the enthusiasm. And for many of us on the team, we relate on a very personal level: we also dreamt of being video game developers when we were growing up. And it was only through some form and combination of self-teaching, mentorship, and lots of experimentation that we ended up as professional game developers working on a very cool project.

Recently, our graphics developer, Georg, put together some advice and suggestions in response to a younger applicant. But we realized there may be some nuggets of wisdom in here that others would like to see, too. So why not share it with everyone? So here they are, slightly modified to be relevant for any kind of video game programming role. If you’re more interested in game design, animation, music, production, quality assurance (QA), or any other aspect of game development, check out these suggestions anyway. The ideas can be applied to most things in life!

 

1. Download Unity and start working through programming tutorials. Don’t worry if you don’t understand it yet, you’ll get there.

Or choose any other game engine out there. We like Unity because it’s free for casual users but it’s still very powerful — it’s what we use for Universe Sandbox! Unity also has a bunch of really great, free tutorials on their site and elsewhere across the web, plus a big and helpful community at all skill levels.

If you’re feeling overwhelmed when you first start programming, don’t worry, that’s normal. You’re learning a whole new language!

 

2. Don’t give up if your code doesn’t want to cooperate all the time – nothing does, that’s part of the fun.

You’ll run into bugs, your game won’t start, you’ll bang your head on your desk, and you’ll begin explaining things to rubber ducks. Sometimes you’ll need to shave a yak. Don’t worry, all of this is also normal (…relatively). One of the best ways to learn how something works is to dive in, break it, then figure out how to fix it. And maybe go a little off the rails in the process.

 

3. Get inspired by your favorite games and apps. See something in a game you like? Find out if someone has written about how to develop it and see if you can recreate it.

Inspiration is a tremendously powerful motivator and driving force, and copying and recreating something is another great way to learn how something works. The best part? A lot of game developers (especially indie developers) love to share their knowledge in detailed blog posts and video devlogs. These devlogs dive into the technical weeds of projects the developers are working on, and they’re a great way to get inspired by developers you admire.

Just remember: when you’re first starting off, keep your aim narrow. Don’t set your sights on recreating a massive, AAA-style game. Instead, find one particular aspect you think is done very well or seems unique or interesting and begin researching it. Or see if your favorite indie developer or studio keeps a devlog of the projects they’ve worked on (we’ve got our own devlogs which lately have been talking about our work on the next big Universe Sandbox feature, Surface Grids, though they’re not quite as technical as others out there).

 

4. The community is helpful. There are no bad questions. Be kind and share your results with other students and teachers.

There are lots of people out there learning how to program and become video game developers, and everyone was once a beginner just like you. Don’t be afraid to ask for help or ask a question about how something works, even if it seems like something simple. Sometimes you’ll get an answer that explains a lot more about what’s going on than you’d realize if you had just brushed past it and continued on. As with all internet interactions, things will go more smoothly if you’re kind, you’re patient, you attempt to write clearly, and you provide context and details.

And while those who have been programming for a long time are definitely more qualified to give solid advice than someone who just wrote their first “Hello, World!” program, there doesn’t have to be a huge divide between the roles of teacher and student. Once you get your footing, it’s likely you’ll be able to help out the beginners with the very basics, even if it’s just pointing them to the resources you found helpful.

 

5. At some point, someone will call you a programmer. Much later, someone will pay you for that. And much later still, you’ll be working on something you love. Be patient, you’ll get there.

Hold on tight, it’s a long rollercoaster. With a little bit of patience, the excitement of seeing your skills grow and grow and using them in more and more projects will be plenty to keep you going.

 

6. Find others like you and do things together. Everything is better with someone to relate to. You’ll get further, faster.

Take a class, start a club, join a Discord server (and join ours while you’re at it), recruit your friends to your brand new indie game studio — do whatever it takes to find a community of people who are on the same path as you. The support and help of others who are interested in your wellbeing and success may be the exact thing you need at some point along the way to avoid giving up. Make sure to return the favor!

 

7. Never give up!

It’ll seem impossible at first, and then it’ll be hard later on, and then just when you think you’re progressing smoothly, you’ll run into another frustrating obstacle that makes you want to bang your head on the desk and start talking to the rubber duck again. Refer back to #5: Be patient, you’ll get there. If you’re stuck, take a break. Clear your head by doing something that’s not staring at your screen. Whether you step away from programming for an hour or a few days, it’ll help immensely.

Of course, it’s not all misery — far from it. We wouldn’t be doing it if that was the case. There are huge rewards in learning to program, like the joys of finally cracking a complex problem or creating a game with your name on it and seeing others love it as much as you do.

And if you want to take a more career-oriented stance, you can rest easy. Demand for software developers is already high and is expected to grow 21% from 2018 to 2028 in the United States, a rate much higher than in other fields. Learning to program is a safe bet on a path toward a stable, well-paying career.

 

We hope this helps! And maybe one day you’ll see one of our job listings and say, “I’m a perfect fit for that position.”