Stranded Deep
James Mac Aug 1, 2015 @ 11:52am
Character Stat system
After working on it in my concept server project, I had the idea to suggest it here. A complex stat system for all characters, both player and npc. (Of course some stats would not apply to some or even all npc's.

A set of stats with base values, max values, regeneration values, and of course decay rate values. These would allow for both step changes and variations in rates due to skills and effects. Max values would be hard limits on how high a stat can go no matter what skills and effects are in play. Base values would be used for determining the current maximum values of a stat, using the (base value + skills/effects) * skills/effects.

Stats would be:
  • Health
  • Calories
  • Hydration
  • Body Temperature
  • Breath
  • Movement (Walking)
  • Movement (Run multiplier)
  • Movement (Swim Multiplier)
  • Accuracy

Those would be basic stats. That could be further enhanced by adding stats for crafting and building, scavenging, diving, etc. Once the basic system with handling is constructed then adding new stats becomes easier.

It's just a thought, and I know there is already a basic stat system in the game. Looking at expansion for more options and realism. Weather effects upon health, endurance, movement, and even how succeptable to becoming sick you are.
< >
Showing 1-7 of 7 comments
SoMeOnE_the_oDD Aug 1, 2015 @ 6:28pm 
What exactly would improving your walking do? Make you step with more confidence and a better posture? As long as things are kept behind the scenes, subtly increasing how long you can hold your breath or how quickly you can swim or how efficiently you burn energy while doing so or while heating yourself I'm fine with it. There was a big discussion about it awhile back when they mentioned looking into it but I don't know what their conclusions were.

Part of the problem is that several of the stats you're considering wouldn't be easy to balance until much later when there's enough content and gameplay to support it. Right now eating is sort of set aside to allow us to actually enjoy the game. The same goes for body temperature.

I would say that it might be interesting to expand your hit zone while spear fishing and do less damage to the fish in the process (meaning more food). That's what I imagined for "accuracy" at least.

Aside from that, the most important one is probably holding your breath. At the moment the game starts off feeling a bit cheap with how long you can hold it, especially while moving. I could believe it of someone who's been surviving a long time though.

The only other thing I would want to see implemented sooner rather than later is a correlation between energy consumption and physical activity. Ignoring the heating and cooling that goes on as you get in and out of the water, there should still be a significant difference between a day spent paddling and a day spent weaving baskets.
James Mac Aug 1, 2015 @ 7:09pm 
The idea isn't realy about walking, or maybe I should say any single stat or feature or effect. It's rather a system that both simplifies the stat handling and with it allows for simple calls and links to the stats to either change a stat or set of stats or have a stat affect a feature, item, or so on. It uses a single shared set of calculations for determining your stats, based upon the stat's name to make it simple. Think of it as a single "adding machine" at one end that all stats use, and at the other end a set of "switches" to trigger or change anything in the game at the other end.

That's a bit oversimplified but the general idea. This is a mechanic of the game, not so much a feature. It took me an hour to design the system, and a few hours a day for three days to build it in c++. Mainly because the at core of it is a fairly simple recursive addition/multiplication calculation. It calculations your crrent stats, by name. From there it is linked where you want it to causes changes in features and functions. It listens for changes in all of the features and effects that affect a stat. When a change occurs it automatically runs the calculations to determine the new value of the stat, which then triggers any required changes be it to cause a raft to sink or a shark to change to an aggressive state to you being thirsty or hungry on down the line. Even handles the effect of wind on your movement or maybe the movement of a raft or a bird.

And adding a new stat is very easy once the system is built. And later on it's very easy to fine tune. In the client these values can be stored in a json file, and with a simple edit and update of just one file you have changed it. Server side is even easier because these are values stored in the database. A quick edit of the stored values and running a refresh command allows changing the values while actively playing the game, so you can make a change, test it, and repeat to get just the right feel for it.
SoMeOnE_the_oDD Aug 1, 2015 @ 7:32pm 
One of the suggestions I made back when people were only shouting out ideas in shrill internet voices was to pay attention to the vocabulary that gives an impression of the stat systems we expect from video games. It's really difficult to see past standard terms like "experience" and "levels", at least for the players who take five minutes to come up with their systems. I'm glad you've avoided doing that, and especially impressed that you had the foresight to put a cap on the stats so their effect is never overwhelming (swing an axe at a tree and launch it to the moon).

I'll try to see if I can't track down my posts about it. For awhile I kept all my time consuming posts in my own thread so I could fish them out of the void again someday. It sounds like you're a lot more capable and willing to actually implement a system and since you're much more accessible than the devs I really ought to throw my posts out there in an attempt to influence you.
SoMeOnE_the_oDD Aug 1, 2015 @ 7:48pm 
My original posts were organized under the thread "Impression Logbooks and Speculations" if you wanted to look into it.

If you did, I'd suggest looking over Mail by Bottle, Journal Entries, Inhabitants, and Endgame Scenario as those were my favorites. The shorter, more concise ideas tended to be the better ones in the end. Ignore pretty much everything else because it's a mess.

And then the actual post on stat systems:
Originally posted by SoMeOnE_the_oDD:
These seem like the most difficult topics to talk about in a game that hasn't yet made the mistake of being every single other survival game out there. The only way to bring them up is to point out how easily they can turn a good game into a minecraft clone. Numbers are too numerical. Inventories aren't real. Survival is probably not likely.

So I thought I'd put a discussion out there to see if anyone had any thoughts on ways to include the intent of such features without dragging the unrealism of standard gameplay.

Stats
While there is really no need for any number that keeps track of abilities, I do think the game misses out on a lot of the desperation of survival by allowing the player to immediately and competently go about his way on this island. We're told that the main character has a private jet and drinks his own martinis! There's no way he could pick up a rock and a stick and lash it together in one try.

Instead of "levels" as we know and love them, I think this game needs some unrecorded measure of proficiency or competency. On your first few days on your island you should feel like you're going to die. Everything should go wrong. Your fire doesn't light, your shelter leaks and falls apart, bugs and crabs infest your supplies, your bottle washes away, you catch a disgustingly inedible fish, and you cut yourself on some sharp reedy grass. You absolutely should be at risk of not eating for an entire day or becoming exhausted while stupidly swimming around. If you survive the week then you can start feeling like you might be able to catch a fish without taking all day and start a fire big enough to cook it on.

In other words, think of basic skills as empty cups. They can't get beyond a certain point but you definitely need to try something more than once before you can get it right.

A last measurement that might also play out in the background is your general hardiness. Not throwing up everything you eat, not feeling miserable as your skin burns and peels, not getting sick from all the salt, maintaining a healthy body as you constantly get wet and dry off, etc. Having something like this running behind the scenes would give the early game a sense of desperation while relieving the later game for more creative outlets

The type of system I imagined was also good at creating a difficulty curve so that as you overcome the basics of survival, you are not longer wasting as much of your play time maintaining them. You shouldn't have to take an entire afternoon to light your fire beyond the first few tries. The speed with which we accomplish tasks in the base game is ideally how the game should flow once you've essentially become familiar with those tasks, freeing you up to explore and build and stockpile supplies.
Last edited by SoMeOnE_the_oDD; Aug 1, 2015 @ 7:52pm
James Mac Aug 1, 2015 @ 8:40pm 
The first thing to understand is stats and status. Not the same thing, to start with. A character stat is rather a statistic of the character. It doesn't matter if it is a player, an npc, a door, or a boat. They all have stats and some they share in common and some they do not. A common stat of a door is if it is open or closed.

Character status on the other hand is generally the current values of certain stats, conditions, etc. These are imporant and normally contained in a single system because these values are sent to the client or clients almost as frequently as location packets are, which is the most common packet sent to clients. Status updates are the second most frequent packets sent to the clients. Hence why these values are collected and organized as they are. (I reference multiplayer only because I can show just how important it is and how much it is used. Character status is used by the client in single player games as well and is just as important.

So, stats are not abilities although they often affect abilities, and vice versa as well. Some common stats in sword and sorcery games would be Strength, INT, WIS, DEX, blah blah blah. Or health, body temp breath, etc. Movement speeds. I've seen games where they code each one independent of the other, often with line after line of code copy/pasted from one to the other. Bulky and not very efficient, and the more lines of code the more likely are bugs and the harder it can be to find them.

In regard to your ideas, proficiency can be made a character stat, unique to the player character. Think on it this way: You start with a basic object in the game. You can extend that to be an item or a character for instance. But think of each as only an idea of an item or a character, not the actual thing. Now, working from the character "idea", we give the basic character certain stats and defined characteristics. We say that all characters have a model, animations, health, movement, a set of known objects, and a position. Next, we're going to extend the idea of a character into an npc and into a playable character. An npc has an AI, and a playable character has calories, voice, inventory, body slots, etc. Both the npc and the playable character are still just ideas, but they are ideas that extend the basic idea of an object in the game. With me still? Notice as the "ideas" are extended they become more complex and they gain more stats and characteristics. One thing that they do not have however is a status because at this point they are just "ideas".

Now however we can take the ideas even farther by making them "real" in the game world. We can make an npc called a BirdInstance, which is a unique "instance" of an npc in the game world. We add more stats and characteristics, such as birds can fly and walk on land and even swim. Animations are attached of course, and now we have a bird in the game world, not just an idea. We also extend the playable character into a PlayerInstance, adding more status, animations, skills, etc. We create an instance of a "real" player in the game world. All of these "real" characters, instances, now have a status.

One that I touched on but left out is that door I was talking about. Or maybe it's a tree, or a plant, or so on. They are "static" objects in the game world. They do not change locations or have an AI. But they do have some stats, can have animations, etc. Such as that door. We can create an instance of a door in the game, call it a DoorInstance, and now it's "real" in the game world. Or a PlantInstance that is a potato plant. You can use a seed that is an item, which when we make a unique "real" item in the game world we can call it an ItemInstance. You take your seed iteminstance and using an action with animations attached to "plant" it in the ground. The game world then starts a thread with a timer that after "X" amount of time spawns a PlantInstance that is a potato plant and it grows over time, produces potatoes which are an ItemInstance when harvested.

Does this help you understand how it all works? This is basic and there are many approaches to how this can be done.

SoMeOnE_the_oDD Aug 1, 2015 @ 10:39pm 
I'm not sure I was confused about stats and status (I assume you were referring to the vocabulary comment), or the concepts behind them, until you started explaining them in so much detail (which is helpful!). I do understand how class objects work in general and how the different pieces of a game are broken down into broader and broader categories that share more basic attributes with one another even as they lose individuality and become empty shells with slots for variables. Nonetheless, I'm not even going to try to use "stat" and "status" correctly because they're essentially "variable" and "equation" and I'm no mathematician.

Actually, I think the specific word I'm missing that sparked those original conversations was "skill tree", so we were talking about those equations and statuses.

What I meant to suggest was the sort of different vocabulary that implied your character was working towards a passing grade (proficient, competent) rather than towards total enlightenment (level 12). Most of the conversation at the time was jumping straight to breaking down the game into "level one" this and "level six" that. It was an unappealing system that would have interrupted the flow of the game which relies heavily on human ingenuity rather than character stats.

I started from the assumption that the current game has no gameplay stats (bear with me as I abuse the words you just explained) and that the game's believability would decrease dramatically if my character was any more capable than he already was (I work at about 0.2 sardines per second). Swimming and crafting upgrade trees were among the few areas that I felt could be extended beyond the game as it is right now and those only with careful limits (mithril potatoes provide more sustenance than iron potatoes!).

Since I also felt that the game was missing the panic of the first few days of survival, I described the skill/stat system itself as almost an obstacle that diminishes your ability to interact with the world until you've had a chance to experience the hardships. Rather than beginning the game at level 1 and working ever upward, I thought it should begin at level 0.1 and steadily recover back to level 1.

Most of all, I wanted to be unaware of the exact values of my stats and the precise ways in which they amplify my abilities. I'd rather notice that I can out maneuver sharks easier or hold my breath longer or start a fire with less mistakes or last longer on each meal or move faster while carrying heavier objects or row faster for extended periods of time or spear the fish beneath my mouse more often. I didn't really know which "stats" to use as the basic building blocks for these interactions.
James Mac Aug 2, 2015 @ 10:51am 
I am fairly sure that I follow you. Proficiencies would be the method that I would have gone with. And again, I am going to discuss this all from the perspective of multiplayer systems, but in this case for two reasons: 1) The cooperative game play systems are being added to the game and 2) It gives me more room to explain the ideas even as it applies to single player mode.

With coop there will need to be player models and some variations between characters in order to avoid having a group of, say 8 "clones" running around together. With that comes the option of customizing the characters as well. Visually there has to be differences, but we take that a bit further by tailoring the starting character. We have our physical aspects of course, where some are runners, some are construction types, some are office types, etc. Each of those tend to have a differet physical set of characteristics resulting in different stat levels such as strength, endurance, etc. But they also tend to have different skills as well. Use that to redefine the characters, fine tune them. Proficiencies would be the start of that. Strong in some areas, weak in others, and using proficiencies this makes them somewhat unique. It also means that the starting character(s) are more realistic.

So, doing this as "proficiencies" instead of a visible skill tree, and making the proficiencies part of the character's stat system we hide it yet also it provides a more realistic experience.

As for the initial panic, that is going to depend upon the individual. Some are not going to panic, due to experiences and training. Others are going to curl up into a ball and cry asking a higher power why they did this to them... at least until the instinct for self preservation kicks in. The learning curve is going to be steep, meaning that the first two weeks will either kill them or teach them the basics to survive in this environment. Coconuts will only last so long, and the potatoes are not something that many will even recognize. The same for other editable plants, although the Pacific islands do have a good range of fruit trees and shrubs that they will recognize. Some are not so edible but things like cherries and papaya's most will recognize. Proficiencies increase, but in the game mechanics and in the player's ability to recognize things.

Oh, one other thing. When proficiencies change over time in smaller steps, they tend not to be noticed as easy. Holding your breath for 90 seconds at the start and then suddenly you can hold it for 4 minutes would be noticed right away. But if after 30 dives you can hold your breath for 2 minutes, after 50 dives you can hold your breath for 2 1/2 minutes, etc etc is gradual like in real life and you dont' notice it so so easily.
< >
Showing 1-7 of 7 comments
Per page: 1530 50

Date Posted: Aug 1, 2015 @ 11:52am
Posts: 7