Beta Branch Update: Sky Visuals and Treasure Maps
Space and astronomy have been interests of mine since I was little. Those of you who played the first Salt game saw a bit of that passion shine through into my game development work with the realistic moon cycle mechanics. Not only does it add a bit of realism and depth to the world, but it’s also a teaching tool for our younger players. I remember getting a number of bug reports during the development of Salt 1 letting us know that the moon was out during the day.
A more mechanically deep night sky is something that I also wanted to have in Salt 2, but I hadn’t yet prioritized it over other tasks. I couldn’t stand it any longer so I spent a bit of time to make some updates.
Additionally, we have also added treasure maps that can be found throughout the world. These will hint at a location of a nearby buried treasure, so keep a shovel handy in case you run across one while adventuring.
These changes are now on the beta branch. Instructions on how to opt-in can be found here: How to access the Beta Branch
[h2]Stars[/h2]
First of all, the visuals of the background stars at night has been updated. Up until now, the stars image was a free placeholder sky that I threw in early on. It wasn’t bad, but it was a little sparse for my liking. Using a somewhat realistic distribution of star sizes and brightnesses, I generated a new one that has a much higher density of tiny, super-faint stars deep in the background. To me, this makes space feel way more vast and mysterious.
I experimented with making the stars more dense and bright along a line to simulate being inside a galaxy similar to our own Milky Way, but I wasn’t very happy with how it looked. Also, my generation process was suffering from some artifacts when mapping the stars to the skybox. So I decided to put that off for maybe another time.
The old skymap compared to the new.
[h2]Solar System Simulation[/h2]
I wanted the moon cycle to be very realistic; not only with varying phases, but also with its position and movement in the sky. Earth is tilted on its axis by 23.5 degrees, and the Moon’s orbit is slightly tilted relative to the ecliptic, the imaginary plane in which Earth revolves around the Sun. All of this adds up to fairly complicated positioning of the moon. Since I also wanted to make the angle of the sun more accurate as well as add in some additional planets, I decided to completely model a little solar system.
While I was developing the mathematical model, I created some spheres with simple textures to represent all of the celestial bodies to help me visualize if I was doing things correctly. This graphical representation of the model won’t show up anywhere in the actual game, but it helped me to ensure that the way things were working seemed reasonable.
A visual representation of the solar system model while I was working on it.
The solar system model gives me the ability to define orbits of any number of planets and moons. These orbits can be spherical or elliptical. The orbits can also be inclined to any angle. In addition, each celestial body can have a varying rotation speed and axis tilt. This gives me all of the tools that I need to make a simple but somewhat realistic representation of a solar system.
Note that the simulation is not completely accurate to real life orbits. Gravity of planets do not affect each other and the orbital speed vs distance of planets from the sun is not constrained to realistic physical values, but I was happy enough with it being a decent approximation.
[h2]Simulating The Sky[/h2]
The purpose of the solar system simulation is to figure out where to show these celestial bodies (Sun, Moon, and planets) in the sky relative to the player. To do so, I define a planet in the simulation that the player is on, along with their latitude and longitude on that planet. From there I can do a bit of math and figure out exactly at what position in the sky each other celestial body should appear.
A waning crescent moon and a planet in the sky just before sunrise.
The cool and intended side effect of using an actual solar system model to drive the position of these objects in the sky is that they behave in a manner more consistent with what we would see on Earth. Since I tilted the Salt planet on its axis and gave the moon a slightly tilted orbit, the way they move across the night sky from day to day will vary over time. Though there will be no actual winter in the world of Salt, if you pay close enough attention to the Sun, you can figure out what season of the year it theoretically is. The sun will rise and set in a more southward direction in the winter. The Salt year is 12 moon cycles of 8 days each, totaling 96 days.
For those who are curious, I’ve placed the player at a latitude of 20 degrees north (which is about the same as the Caribbean). Note that this latitude and longitude are currently fixed. Traveling will not change it at all.
This is how far north of the equator the player is for the night sky simulation.
[h2]The Planets[/h2]
Not only did I want to simulate planets in the night sky, but they also serve a purpose. With the recent completion of the sextant mechanics, the player is required to find a celestial object to take a proper reading of their world location. Previously, the moon would always rise precisely when the sun would set so there was always something out there to use for a reading.
With the introduction of the moon phases, this is no longer the case. Part of the month the moon will be on the same side of the planet as the Sun is, leaving the night sky without anything to use your sextant with. Players who love realistic simulation may not mind that constraint so much, but I didn’t want to introduce that much friction to a mechanic that is so often required. Especially for those of you who aren't as interested in the sky mechanics and just want to navigate to the next pirate cave.
So, a solution was to allow the sextant to take a location reading using planets as well. This was only a partial solution though. Since the planets have their realistic orbits, it is sometimes the case that all of the planets are on the Sun-side, leaving the night sky completely void of anything with which a location can be determined.
To solve this hitch, I made one planet that both has the same orbital angular velocity and is further away from the sun than the Salt home planet. This causes it to always appear directly opposite of the Sun in the night sky, so it will always rise as the sun sets and be available in the night sky for navigators.
There are four planets other than the Salt home planet. One is closer to the sun and the other three are further away. The only one I’ve named so far is Echo, the planet that always rises opposite of the sun.
The slightly brighter blue and orange dots are two planets on the horizon.
[h2]Shooting Stars[/h2]
One of my favorite childhood memories is lying outside at night at my Granddad’s house watching a meteor shower. These days I still try to catch them when I can. This sometimes means getting up really early before the sun rises, for the best chance of seeing some.
Meteors are now a part of the Salt night sky. There is always a chance to see one although not too many will fall on an average night. However, twice per Salt year, the planet passes through the debris trail of a comet, allowing for a night or two of showers when meteors will be very common.
Some meteors falling over the ocean.
[h2]Lunar Calendar[/h2]
If you want to keep track of the progression of time throughout the Salt year, you can now purchase a Lunar calendar from the Stargazer, a new NPC, whose ship can rarely be found out at sea. Once you've obtained one, place it on your ship and interact with it to open it.
Viewing the lunar calendar in-game
Since there are exactly 12 moon cycles (months) in one Salt year, it has been the practice of its denizens to use the moon's phases to mark the passing of time. Here, it is customary to celebrate the new year on the full moon of the summer solstice, so that is where the Lunar calendar begins.
Working on these sky updates has been a fun project. Of course that comes from my own love of space, but I hope it brings a bit of that same wonder and enjoyment to others as they play.
[h2]Treasure Maps[/h2]
Treasure maps can now be discovered rarely in various places throughout the world. If you find one, interact with it in your inventory to view the map. They hint at the location of a nearby buried treasure.
There are currently a total of 27 unique treasure maps to discover and more may be added in the future.
Viewing a treasure map in-game
[h2]Patch Notes[/h2]
Happy adventures,
John Gamble
A more mechanically deep night sky is something that I also wanted to have in Salt 2, but I hadn’t yet prioritized it over other tasks. I couldn’t stand it any longer so I spent a bit of time to make some updates.
Additionally, we have also added treasure maps that can be found throughout the world. These will hint at a location of a nearby buried treasure, so keep a shovel handy in case you run across one while adventuring.
These changes are now on the beta branch. Instructions on how to opt-in can be found here: How to access the Beta Branch
[h2]Stars[/h2]
First of all, the visuals of the background stars at night has been updated. Up until now, the stars image was a free placeholder sky that I threw in early on. It wasn’t bad, but it was a little sparse for my liking. Using a somewhat realistic distribution of star sizes and brightnesses, I generated a new one that has a much higher density of tiny, super-faint stars deep in the background. To me, this makes space feel way more vast and mysterious.
I experimented with making the stars more dense and bright along a line to simulate being inside a galaxy similar to our own Milky Way, but I wasn’t very happy with how it looked. Also, my generation process was suffering from some artifacts when mapping the stars to the skybox. So I decided to put that off for maybe another time.
The old skymap compared to the new.

[h2]Solar System Simulation[/h2]
I wanted the moon cycle to be very realistic; not only with varying phases, but also with its position and movement in the sky. Earth is tilted on its axis by 23.5 degrees, and the Moon’s orbit is slightly tilted relative to the ecliptic, the imaginary plane in which Earth revolves around the Sun. All of this adds up to fairly complicated positioning of the moon. Since I also wanted to make the angle of the sun more accurate as well as add in some additional planets, I decided to completely model a little solar system.
While I was developing the mathematical model, I created some spheres with simple textures to represent all of the celestial bodies to help me visualize if I was doing things correctly. This graphical representation of the model won’t show up anywhere in the actual game, but it helped me to ensure that the way things were working seemed reasonable.
A visual representation of the solar system model while I was working on it.

The solar system model gives me the ability to define orbits of any number of planets and moons. These orbits can be spherical or elliptical. The orbits can also be inclined to any angle. In addition, each celestial body can have a varying rotation speed and axis tilt. This gives me all of the tools that I need to make a simple but somewhat realistic representation of a solar system.
Note that the simulation is not completely accurate to real life orbits. Gravity of planets do not affect each other and the orbital speed vs distance of planets from the sun is not constrained to realistic physical values, but I was happy enough with it being a decent approximation.
[h2]Simulating The Sky[/h2]
The purpose of the solar system simulation is to figure out where to show these celestial bodies (Sun, Moon, and planets) in the sky relative to the player. To do so, I define a planet in the simulation that the player is on, along with their latitude and longitude on that planet. From there I can do a bit of math and figure out exactly at what position in the sky each other celestial body should appear.
A waning crescent moon and a planet in the sky just before sunrise.

The cool and intended side effect of using an actual solar system model to drive the position of these objects in the sky is that they behave in a manner more consistent with what we would see on Earth. Since I tilted the Salt planet on its axis and gave the moon a slightly tilted orbit, the way they move across the night sky from day to day will vary over time. Though there will be no actual winter in the world of Salt, if you pay close enough attention to the Sun, you can figure out what season of the year it theoretically is. The sun will rise and set in a more southward direction in the winter. The Salt year is 12 moon cycles of 8 days each, totaling 96 days.
For those who are curious, I’ve placed the player at a latitude of 20 degrees north (which is about the same as the Caribbean). Note that this latitude and longitude are currently fixed. Traveling will not change it at all.
This is how far north of the equator the player is for the night sky simulation.

[h2]The Planets[/h2]
Not only did I want to simulate planets in the night sky, but they also serve a purpose. With the recent completion of the sextant mechanics, the player is required to find a celestial object to take a proper reading of their world location. Previously, the moon would always rise precisely when the sun would set so there was always something out there to use for a reading.
With the introduction of the moon phases, this is no longer the case. Part of the month the moon will be on the same side of the planet as the Sun is, leaving the night sky without anything to use your sextant with. Players who love realistic simulation may not mind that constraint so much, but I didn’t want to introduce that much friction to a mechanic that is so often required. Especially for those of you who aren't as interested in the sky mechanics and just want to navigate to the next pirate cave.
So, a solution was to allow the sextant to take a location reading using planets as well. This was only a partial solution though. Since the planets have their realistic orbits, it is sometimes the case that all of the planets are on the Sun-side, leaving the night sky completely void of anything with which a location can be determined.
To solve this hitch, I made one planet that both has the same orbital angular velocity and is further away from the sun than the Salt home planet. This causes it to always appear directly opposite of the Sun in the night sky, so it will always rise as the sun sets and be available in the night sky for navigators.
There are four planets other than the Salt home planet. One is closer to the sun and the other three are further away. The only one I’ve named so far is Echo, the planet that always rises opposite of the sun.
The slightly brighter blue and orange dots are two planets on the horizon.

[h2]Shooting Stars[/h2]
One of my favorite childhood memories is lying outside at night at my Granddad’s house watching a meteor shower. These days I still try to catch them when I can. This sometimes means getting up really early before the sun rises, for the best chance of seeing some.
Meteors are now a part of the Salt night sky. There is always a chance to see one although not too many will fall on an average night. However, twice per Salt year, the planet passes through the debris trail of a comet, allowing for a night or two of showers when meteors will be very common.
Some meteors falling over the ocean.

[h2]Lunar Calendar[/h2]
If you want to keep track of the progression of time throughout the Salt year, you can now purchase a Lunar calendar from the Stargazer, a new NPC, whose ship can rarely be found out at sea. Once you've obtained one, place it on your ship and interact with it to open it.
Viewing the lunar calendar in-game

Since there are exactly 12 moon cycles (months) in one Salt year, it has been the practice of its denizens to use the moon's phases to mark the passing of time. Here, it is customary to celebrate the new year on the full moon of the summer solstice, so that is where the Lunar calendar begins.
Working on these sky updates has been a fun project. Of course that comes from my own love of space, but I hope it brings a bit of that same wonder and enjoyment to others as they play.
[h2]Treasure Maps[/h2]
Treasure maps can now be discovered rarely in various places throughout the world. If you find one, interact with it in your inventory to view the map. They hint at the location of a nearby buried treasure.
There are currently a total of 27 unique treasure maps to discover and more may be added in the future.
Viewing a treasure map in-game

[h2]Patch Notes[/h2]
- Added moon phases.
- Added planets that can be seen in the night sky and also used along with the sextant to determine your position.
- Added shooting stars that can rarely appear in the night sky.
- Adjusted the sun rise and set position that changes seasonally.
- Added a new Stargazer NPC that will tell you about the sky and sell a calendar.
- Added treasure maps to various places in the world.
- Updated the treasure dig sound.
- Fixed an issue with controller scrolling the UI too fast in some cases.
- Fixed clicking on a dialogue option sometimes choosing the first option no matter what you selected.
- The Vault Key can now be crafted at any forge in addition to the anvil in front of the vault entrance.
- Fixed a bug where the Breath Bar would show up when starting the game if you had an item or talent that increases your max breath stat.
- Fixed the vault key stone description wrongly saying you need three instead of two to craft a key.
- Fixed a lever being in the wrong position in a storage cave.
- Fixed some merchants having the wrong greeting sounds.
- Fixed an issue where using a sextant past the 1000 unit mark would not unlock the achievement.
- Fixed some discrepancies in commission quest descriptions and their actual requirements.
- Fixed some areas in dungeons where you could get out of the level bounds.
- Fixed rain coming through ship cabins.
- Fixed different pickaxes sharing the same appearance.
Happy adventures,
John Gamble