Dev Blog

Hi, this is the Stranded III development blog. What you see here are actually posts from the Stranded III Dev. Blog Thread at UnrealSoftware.de. There are currently 95 dev blog entries. Click here for an overview
94

Entry 94 - Lots Of Random Things - August 6, 2020

Website
I had to move to another webserver in June which is why I wasn't able to focus on Stranded III during that time.
We now have HTTPS though! Hooray! That upgrade was long overdue.
If you notice any issues with the website (e.g. broken links or images) please let me know!

Fog And Post Processing
I fine tuned fog and post processing effects. I think stuff looks much better now.
Of course these settings can be changed so the game looks (and hopefully performs) well on your system.
Here are some impressions:

IMG:https://stuff.unrealsoftware.de/pics/s3dev/landscape/palmtrees01_pre.jpg

IMG:https://stuff.unrealsoftware.de/pics/s3dev/landscape/palmtrees02_pre.jpg

IMG:https://stuff.unrealsoftware.de/pics/s3dev/landscape/trees01_pre.jpg


I'm using various standard Unity post processing effects like bloom, depth of field, screen space ambient occlusion and motion blur.

Diary aka Questlog
There will be a diary again.
It will work like the Stranded II diary but this time it will have 5 sections:
√ current quests
√ finished quests
√ failed quests
√ notes
√ encyclopedia

Quests will be used for the story. You can finish them but you might also fail to finish them. E.g. when there is a time limit or if there are different quests for the same task which just offer you different approaches to solve that task.
There are also notes which also can be used for the story and other stuff. The difference between notes and quests is that notes are not connected with any task.

My plan is to also add some quests to random maps.
These will be connected to special objects, characters or events which are randomly spawned on the map.
This should help to keep random maps more interesting over a longer period of time. Some quests and events may only take place after surviving a certain amount of days or after building a certain thing.

Encyclopedia
Why should I implement actual game play if I can waste time with implementing useless subsystems?! Yaaay!
I implemented a very simple encyclopedia system. It is entirely based on localization data and does not require any additional definitions.
You can simply define language keys with a special prefix/suffix to create new encyclopedia entries. There are even categories!

This is what the localization entry for a category looks like:
1
enc_stuff = Fancy Stuff

It creates the category stuff with the localized name "Fancy Stuff".
That "enc_" thing is a prefix which tells Stranded III that this is an encyclopedia category.

An entry for the encyclopedia requires 2 entries: A title and the text for the entry.
The title looks like this:
1
enc_stuff_rock_title = Rock


... and the text like this:
1
enc_stuff_rock_text = Rock and roll! Better don't try to eat this. Might be useful for crafting though.


That's it! We made an encyclopedia entry which can be looked up in the in-game encyclopedia!

Encyclopedia entries are invisible in the beginning. They need to be unlocked.
This will be possible via scripts. I did not implement this part yet but it will look something like this:
1
UnlockEncyclopedia("stuff", "rock")

A simple 2 paramter method which needs to receive the category and the internal name of your Encyclopedia entry.
The second parameter will be optional to unlock an entire category at once.

Encyclopedia unlocks are for the entire game and not just a session.
So if you start a new adventure you will keep all your Encyclopedia unlocks from previous play sessions.

The UI will also give you a percentual overview over how much stuff you already unlocked (in total and for each category).
This will give you a nice idea of how much content of the game you already discovered.

Surface Alignment
Objects on the terrain are now properly aligned to the surface.
You can define for each object how much it will be tilted depending on the terrain surface.
The value can be anything between 0.0 (0%) and 1.0 (100%). Some example values:

• min: 0.0 = 0% = Terrain steepness is ignored. objects will be upright to an imaginary plane surface.
• 0.5 = 50% = objects will be "50% perpendicular" to the terrain surface. So if the terrain has a steepness of 50% (diagonal), the objects will have an angle of 45° * 0.5 = 22.5° on the related axis
• max: 1.0 = 100% = objects will be 100% perpendicular to the terrain surface (50% steepness = 45° angle).

This allows me to make the generated world look more authentic.
While small plants can be fully influenced by steepness (100%) it makes sense to choose a much lower value (like 0%-30%) for big trees because those tend to grow upright.
Otherwise forests would look like there was a big storm recently which uprooted all the trees.

Fun fact: This is what it looks like when you DON'T get your surface alignment math right (and yes, I needed some attempts to get it right):
IMG:https://stuff.unrealsoftware.de/pics/s3dev/terrain/badsurfacealign_pre.jpg


Random Map Generator UI Progress
This is nothing super exciting but I also finished two new dialogs related to the random map generator.

The biome selection allows you to choose which biomes can be part of an island (this is a per island setting)
IMG:https://stuff.unrealsoftware.de/pics/s3dev/ui/rgen_biomes_pre.jpg

Note that biomes listed there are subject to change (like everything posted here).
The used dialog is an all-purpose solution. A list of checkboxes.

The entity list allows you to blacklist objects you don't want to have on your island (also per island)
IMG:https://stuff.unrealsoftware.de/pics/s3dev/ui/rgen_entities_pre.jpg

It even support filtering via a search input field and via category combobox/dropdown. Fancy stuff, right?!
That way you can easily and quickly find what you're looking for.

This dialog is of course much more specialized than the other one but it might also be used in some other places. Probably in the map editor when you have to select multiple entity types for some reason.
94

Disqus

blog comments powered by Disqus