Many of you might have already heard bits and pieces about Player-Built Settlements, or PBS in short. As the name suggests, it’s our system which will allow players to create their own settlements, a place that they build with their own hands, shape to their own needs, and where they can really feel at home - basically a system which takes our sandbox to a whole new level. It’s a fairly complex system and we’ve been working on all the details for quite some time now. Today I’m happy to tell you that we have arrived at a point where we are confident enough to share our ideas with you.
Due to its complexity, this will be a series of blogs, likely at least a three-parter. We’ll start with terraforming, an essential feature and a prerequisite to building structures. Later on we’ll also take a closer look at the basic rules to building, and the various types of structures.
Shaping the ground to your liking should be a fun thing to do, but I’m sure you understand we have to set up some limits. The current alpha (and to some extent, beta) islands have too many interconnected systems which could be easily disrupted if we would allow you to create hills and holes wherever you like. Since the world of Perpetuum feels still rather small, the most efficient and future-proof solution is to create new landmasses with their own set of rules. So before I dig into terraforming, let’s have a look at gamma islands.
When creating the concept of new islands, one of the main conditions we set for ourselves is that their time to completion needs to be improved considerably. Although even our current islands have been all started by procedural heightmap generation (which can be done in a very short time), in order for them to be ready and usable they needed a lot of manual work.
With gamma islands, in many ways we have it a bit easier: we don’t have to worry about passability, since you are supposed to work on roads and paths with terraforming. We don’t really need to place decorational buildings either, that will be your job too. However, there is still the issue of mineral distribution and NPCs.
Currently all the mineral fields are hand-painted and fixed by location. This wouldn’t really work on a terraformable island, because they could easily get out of reach or be blocked by buildings. I think we have already hinted that random mineral fields are on our todo, and some of you have also suggested it on the forums. We already have a working version of it and it seems to work pretty well.
There was one interesting question regarding random mineral field placement - should it consider unreachable areas, or should we leave it to the players to terraform their way to the new fields? The latter sounds fun at first, but with time as players skim down hills to get to the precious fields, it would likely induce completely flat islands, which is... undesirable. It could also get a little frustrating if you already get the third epriton field in a row on top of Mount Doom. So, the current version of the mineral field generator neatly looks for passable areas and avoids tiles blocked by buildings as well. We think terraforming by strategic, construction or decorational purposes will give you enough work as they are.
An important thing to note here is that we will introduce random mineral fields not only to gamma islands, but to every existing island as well. Of course this will have the unfortunate effect that your current geoscan results will become obsolete, but we feel this will make the miners’ life much more interesting, and give geoscanning a real function. I’ll do a separate blog about this and other impending major industrial changes after the PBS series.
So, that should cover the mineral question, but what about NPCs?
As you can imagine, due to the ever-changing terrain, fixed spawn points would not be feasible. Even our current fixed-path roaming caravans could run into problems. This left us with the solution to have only completely free roaming NPCs on gamma islands, so Agents can experience the real wilderness there. Of course the spawn generator will have to check for passable and large enough areas so they don’t get trapped, but that’s pretty much the only limit for them.
In the end, random mineral fields and completely free NPC spawns should take off a lot of tedious configuration work from our shoulders, since we only have to set the type and amount of minerals on the island, the type and number of NPC spawns, and the island is pretty much a go.
Diggin’ up Nia
Now that we have covered where you can terraform, it’s time to see how you can do that.
The game has supported terraforming from the very beginnings, but so far it has only been a privilege to us devs. One issue that we had up until now was that terrain texture cover had to be regenerated after every modification of the terrain heightmap, in order to have rocky textures on steep walls, grass on plains and so on. This texture mask was then stored in a special bitmap, which had to be patched out to the live client. Even if we only modified one tile, we had to update the whole island’s map, so whenever you saw 100+ MB patches, it usually meant that we updated these maps.
But now that DEV BoyC is working on the complete revamp of our terrain-engine, he could come up with a solution that allows for real time updating of terrain textures based on slope and elevation. This means that when you start to raise a mountain, the ground texture will gradually change from grassy to rocky, all in real time. Not to mention that we can scrap those old island texture masks too, and that means less memory usage, smaller patches, and a smaller datafile.
The terraforming process itself will happen with help of a terraforming module of course, which will use different kinds of charges, depending on what you want to achieve. The basic raise/lower charges are self-explanatory, these will simply pull up or push down the targeted area by a fixed height value. Then there is the leveling charge, which tries to pull the surrounding tiles to the targeted tile’s level, within a small radius. Finally we have the smoothing charge, which can turn sharp edges and spikes into smooth ground, and also works on a small radius.
The terraforming module will also check for plants in the area, and will first try to kill them before modifying the ground. This however will be a very slow process (and a waste of terraforming charges), so plant bombs or “manual gardening” will still retain their importance.
Due to various position updating issues we had to make a rule which will not allow terraforming if anyone is within a 1-tile border of the terraformed tile or area (“safe area”). Unfortunately this rule (and some other factors) does not really make this kind of terraforming suitable for group efforts, and is only intended for smaller fixes or touch-ups here and there.
However we have plans for another, team terraforming feature. We’re still working out the details of this one, but the basic idea is that a player could use the same terraforming brushes like we devs can to create a kind of holographic terrain blueprint. Then, terraforming beacons need to be deployed inside that area, and a team of terraformers can start charging the beacons using special modules from outside the area. In effect, the terraforming beacons will start to “pull” the affected area towards the form of the blueprint.
There will be a few global limitations to terraforming, even on gamma islands. First and foremost, there will be a few predefined non-terraformable areas, which will generally mean the vicinity of fixed teleports. We don’t want anyone to get trapped on the other side, or allow to shut off complete islands from the rest of the world. Another important rule is that you won’t be able to modify the shoreline of islands. And lastly, there will be limits to how high or low you can dig, and the maximum steepness you can achieve.
In our next episode
Well, that’s pretty much all there is to the basics of terraforming. We’re still working on some of the details, and we’re of course eager to get some feedback from you as well. In the next part we’ll have a look at the basic rules of building structures and how you can connect them to each other.