Friday Dev Update: Creating Your Own Adventure

11:20 AM willsterling23 13 Comments

I love when video games give me the opportunity to create adventures and stories all on my own. A good example of this I believe are the Elder Scrolls games, particularly Skyrim. I have this memory of going about my travels and suddenly being interrupted by an enemy bandit, only to have a dragon come swinging by carrying a mammoth and dropping it in the midst of battle. It's moments like these that make me appreciate the openness and unpredictability of open world games.

We wanted to implement this same feeling in Salt. We want you to be able to create your own adventure and share your stories with others. Because of this, we've intentionally tried to design the game from the ground up with this element in mind.

Today I want to talk about some of the ways we are currently doing this, and ways we are going to continue to implement this feature in the future.


Minimal Hand Holding

To create your own adventure, you need to discover the world on your own. It's no fun if someone is holding your hand the whole way. For this reason, we've tried to implement a very minimal amount of hand holding in Salt. The world isn't explained to you and you are basically just dropped into it to figure it out. Questions such as "where do I go from here" or "what do I do next" are yours to answer and yours to discover. While this may add a little frustration in the beginning, the feeling of reward when figuring something out on your own is far greater. 

A Discoverable Story

Another way we want to leave the world of Salt open is to let you discover the story and lore on your own. As we implement the main quest line and story, we aren't going to force it upon you. The rabbit hole will be there for you to venture down if you please. Should you choose to ignore it, you are free to go along your way. We plan on implementing a lot of story and lore that you will have to intentionally search for to discover. This adds tremendously to the feeling of depth and constantly gives you something to be searching for. 

Randomization and a Dynamic World


Because the islands and the world of Salt are procedurally generated, each experience can be very different. You never really know what to expect and this adds to the feeling of openness and unpredictability. We want to ensure that many encounters are dynamic and random, giving you a new experience that you may never have had before. You never know if an island is going to have a Queen Spider on it or an albino deer, and therefore your experience can change from one island to the next. As we add in more island types, wildlife, and enemies, this will become even more apparent. 


We want Salt to always have a feeling of openness and always feel like a new adventure. No matter what kind of content we implement, we want you to have the ability to discover it on your own and experience something new and unexpected. 

If you have any ideas on how you think Salt could be more open or lend to you creating your own adventure, we would love to hear them! 


- Will Sterling (Game Design and Audio)


13 comments:

Friday Dev Update: Progress Towards the Cataclysm

12:53 PM Unknown 0 Comments

These last couple of weeks I have been delving deep into code. I want to give you all an update on what I have been working on.


New Terrain Generation Algorithm

The terrain generation algorithm has changed to give me better control over the parameters of what an island will look like. The intended effect is to have islands look very similar as how you are used to, except with the occasional more extreme and interesting island. With testing so far, I have seen a lot more islands with interesting features such as extreme cliffs, inland bodies of water, and large islands that are "split" into a number of smaller islands -- meaning pieces of the island's terrain are separated by water.

Also, each randomization of island content will now be separated (in general). This probably doesn't make a lot of sense right off the bat, so let me explain. An island is generated by a string of random numbers. Currently, a lot of the different potential island content uses the same string of random numbers in order to decide if and where to generate. As an unfortunate side effect of this, if logs on an island were generated before merchants, making a change to the number of logs that could spawn on the island my inadvertently affect if there is a merchant, where he is, or what he sells.

So, what I mean by each randomization will be separated is that the individual components no longer use the same string of numbers. With this, I can change the number of logs and be confident the merchant will stay right where he is. This will help improve world stability in a constantly improving game.

Another very exciting consequence of this is that it allows me to much more easily mine information from a particular island. Say for instance I wanted to make a randomly generated treasure map in the future. The map would need to know where some treasure was. I could write code to find a nearby island, get its generation parameters for buried treasure, and basically ask it if it is there and where it is buried. Since it is separate from all of the other generation, it would able to much more easily tell me that information.


New Island Spread

For the most ambitious of the Salt sailors, there is a slight annoyance. As you sail outwards, islands get more and more sparse until it takes a good while to sail between them. This will change with the new island placement algorithm. Once you get so far past the starting island, there are now both large expanses of ocean and island clusters. With this, you may have to sail a ways to find an island (which makes it beneficial to have a nice boat), but once you find one, you are likely to find more. The image here is a visualization of an island distribution generated by the new system.


Optimization

It makes sense that the game can't spawn the entire world of Salt at once. Every island with every tree, and every over-sized deer. It's too much on a poor little computer. That's why, as is very obvious while sailing, the game generates the islands on the fly as you get near them. This poses some problems. It takes a lot of computing to generate the islands. As the game currently is, you can often notice large lag spikes that causes the game to "stick" for a moment when an island generates. It'll scare you're little Salt character so bad that he'll fling your boat wheel out of pure shock.

There are a number of ways we reduce the lag caused by generating islands, but I have been working on improving it even more in hopes to eventually reach a more flawless experience where you don't even notice that islands are apparating out of thin air.

Currently, every time you enter a new grid location (an entire small island fits inside one of these), the game checks all grids around you for a certain distance and sees if there are any islands there that need to spawn. If so, it spawns the island in its entirety. The speed of the spawn is regulated in a lot of ways depending on the current frame rate, but it still has flaws that cause visible performance reduction.

In the new system that I am working on, the spawn radius is no longer fully grid-based, but instead radius based. This means that a whole batch of islands won't be triggered to spawn at the exact same time. Additionally, I am dividing the spawn sequence into two stages. The terrain is stage one, and everything else on the island is stage two. This allows me to set two different spawn radii. One for just spawning terrain, and one for fully spawning the islands. What this will do is allow for further islands to spawn just their terrain so that you can see its outline on the horizon without as big of a performance hit. 

While I was in there, I also changed some things that would retain some island data even after an island had de-spawned. This will help with creeping memory usage by the game.

All of this required a lot of code changes within the island placement and generation system, but I believe it will be worth the time being spent for a much smoother Salt experience.



The downside of all of this is that new content creation is slowed down during it, which tends to be the most exciting type of update for players. We hope that you will be patient and understanding that this type of "under the hood" work is a necessary part of Salt's development process, and we plan to often alternate between the more boring mechanics work and new content creation. In any case, I'm looking real forward to getting this update finished for you guys. I think it will be a nice improvement to the world.

If you want to see some of the new changes first hand, feel free to switch over to the Steam testing branch and give it a go! We'd love your feedback. You can find instructions on how to access the branch here. Note that all of these discussed changes are not yet on the testing branch, but you can look for it all to be there before too long.



- John Gamble (Lead Developer)

0 comments:

Friday Dev Update: Loot and the Feeling of Awesome

8:19 AM willsterling23 7 Comments

Have you ever come across a really rare item in a came that makes you insanely giddy inside when you get it? I get that way. At times it almost seems silly to get so excited about an object inside a video game but I just can't help myself. I have many memories of playing games like Morrowind and coming across that really rare item hidden in a stump and feeling like I'd struck gold. Or that feeling you get when a legendary pops up after grinding in Diablo slashing through demons and hordes of enemies.

The point is this: it feels awesome to get good loot. 

We wanted to take this loot based aspect of RPG's and implement it into Salt. When designing a system like this there are a lot of questions to keep in mind. What type of rarities will be there be? How hard will each one be to obtain? How many ways can you obtain it? We asked ourselves these questions and have tried to design a loot system that flows naturally into the world of Salt, but gives you that 'feeling of awesome' when you do finally find that rare item.

Today I want to talk about some of the design choices we've made behind this system and how we plan to expand upon it in the future.

Item rarities and item name color

In Salt we decided to split up items into five rarity categories: common, uncommon, rare, epic, and legendary. These types of rarities will be found in the world of Salt and are indicated by their item name color. This was a concept that we really liked in some RPG's where the moment you saw a different colored text you knew you had found something different and possibly better. It gives that quick and instant feeling of gratification even before you see what the item really is. 

Unique items

One thing we definitely did not want to do was to arbitrarily give rare items (by rare I mean anything above uncommon level items) stats that really meant nothing. We didn't want to randomize stats on items just to get more into the game. For us, the feeling of awesome comes when you find an item that is static and unique. We have intentionally designed each item as having its own unique stats and effects depending on the rarity type. This means that when you find an epic mace in the game, that is the epic mace. It's not a mace with better randomly generated stats, but rather it is a weapon with a specific set of stats and specific effects unique to that item. 

When you get an awesome item, it means something

I'm going to reference Morrowind again as it stands out in my mind when I think about having awesome gear in a game. In Morrowind, if you have a set of really awesome gear, it meant something. It wasn't as if you just bought the gear. Sure, you could steal gear and sometimes get lucky finding something rare, but in general nice gear was hard to come by. This is a game element that we wanted to implement into Salt. If you have an epic or legendary item, it truly means something. We want these items to be difficult to obtain and encourage you to show off your epic loot to other players. 

Rewarding Playstyles

One very important aspect of our design behind Salt is what we call playstyle focus. In short, playstyle focus is a way for us to let players play Salt the way they want to play. If you want to be a hunter and wear light armor then we will find ways to reward you for doing so. If you want to be an explorer and chart out the seas then we will find ways to reward you. This design aspect was important to mirror in item rewards as well. We don't want to force you into a certain playstyle in order to get good loot. We are constantly trying to evenly distribute item rarities among item types so that there are more epic items out there than just weapons and armor. We want you to be able to show off your awesome pickaxe or awesome compass as well! 

Going Forward

As we continue the development of Salt, we want to constantly be expanding upon and adding depth to the loot system. We plan on having a lot of unique and rare items in the game that can be obtained through various means, some of which are very challenging. 


We would love to hear your thoughts on the loot system and what kind of awesome items you would like to see in Salt! 


- Will Sterling (Game Audio and Design)

7 comments:

Friday Dev Update: Foretelling of a Cataclysm

4:12 PM Unknown 8 Comments

The world of Salt is largely randomly generated. The positions of the islands, their shape, type, and what they contain are all chosen by a sequence of random numbers. If this sequence changes, the entire world changes. This is why when you choose a custom world seed when starting a new game, the world is different. The seed changes the sequence of random numbers that tell the world what is where.

But what would happen, you might ask, if someone goes into the code that generates the sequence of random numbers and change some stuff. Why, a cataclysm of course!

It is something that lurks in the future. There are some changes that need to be made to the random number generation code, and it will change the world when it happens.

What does a Cataclysm mean exactly?

In short, after the change, it will be as if you had chosen a different world seed. All of your items, boats, and boat upgrades will be in-tact. The only change will be the landscape -- that is, where islands are and what they look like in your world.

 Bundling the Changes

Although it is a necessary part of the Early Access phase, we definitely do not like making such drastic changes to the geography of the world. This is why we will pack a few world-changing modifications into one patch. This includes:

- A new island type.
- Re-balancing of island type frequencies.
- Changing far away island distributions. Possibly adding island clusters in the far oceans instead of just very sparse islands.
- Upgrades to the robustness of the island content generation system.



The good news is, once this happens, it is unlikely that we will have to do another cataclysm of this scale for quite some time (maybe never). And don't worry, we will keep you informed and let you know ahead of time when we are going to make this change.



- John Gamble (Lead Developer)

8 comments:

Friday Dev Update: Looking Back on 2014

10:13 AM willsterling23 0 Comments

2014 was a great year for Salt. We had a lot of unexpected successes and we made a good deal of progress on the development of the game. Our player base grew, we pushed out updates, found crazy bugs, and had some achievements we didn't quite expect. Today I'd like to talk about the last few months and some things that have stood to out to us that make 2014 a year to remember.


The Release

We decided to release Salt as early access available from our website on August 22nd. We pretty much had zero expectations. Salt is our first game and we had been working hard on it for over a year. We knew that Salt was a fun game and we were really proud of it, but how would it be received? Early access is not necessarily looked at as a positive thing these days but we knew that was the best way to fund the development of Salt. 

So we pushed it out to the internet and went back to developing. The first month was as expected. Sales were fairly slow but we were thrilled to see anyone playing our game! We were lucky early on to have a few Twitch streamers play our game and have a positive response to it. For us, however, the major milestone came when Rock Paper Shotgun posted an article on our game. 

This was huge! Our little pirate sailing game had only been out for a few weeks and was only available on our website. When we saw the article on RPS, we were thrilled. It was wonderful and rewarding to see someone from a large website like RPS enjoying our game. 

The Greenlight

Around the middle of September, we began to look into the process for getting our game on Steam. We submitted our game to Steam Greenlight and told a few people about it, hoping to get it on Steam. The Greenlight process was very interesting for us. It allowed us to see some of the initial reception to a game like Salt and get valuable player feedback. After about a month on Greenlight, Salt was Greenlit! 

The Gaben

Once Salt was Greenlit, we knew that we wanted to put it on Steam as an early access title as soon as possible. Shortly after the Greenlight campaign, we launched Salt on Steam. This was huge for us and we were really proud to be at this stage. Steam has proven to be a really successful outlet for Salt and has enabled us to grow and communicate with a player base we wouldn't have otherwise. We were also excited to see a lot of positive reviews of Salt and have enjoyed getting to communicate with players about updates and suggestions. 

The Players

One thing that became clear to us pretty quickly as Salt grew is that our player base was awesome. We love each and every one of you who choose to support us and play Salt. It's extremely rewarding to see players communicate with each other about the game, sharing their charts, adventures, and sharing their tales of the sea. Our player base has also been very supportive of our decisions and has been quick to test out dev builds and give us valuable feedback. We could not do this without our players and are thankful everyday for them. 


As fun a year as 2014 was, we are even more excited about 2015. We have some really fun updates planned for this year and can't wait to see Salt and it's sailors develop!



- Will Sterling (Sound Design and Marketing)

 

0 comments: