Search Unity

Design a player stats for a sandbox survival game

Discussion in 'Game Design' started by hongwaixuexi, Jul 4, 2019.

  1. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    Any suggestion appreciated
    The background or the world:

    The ship sunk into the ocean during storm.
    When the player wake up, he found he was in a strange place. In fact, the player is in the center of the earth.
    Similar environment as the movie "Journey to the Center of the Earth"
    (Maybe I will add a NPC as the player's little daughter, it is used to balance the game if necessary)

    The player can find many crashed planes and ships here, so he can craft modern equipment .
    Of course, dinosaurs are here.

    In fact, Hades exist in the center of earth as well. The player place is outside Hades' kingdom, but adjacent.
    So his place has lot of evils' spirits, they are afraid to enter into Hades' territory. The player's spirit will leave his body when he sleeps, so his daughter. When they wake up, their spirits will return.

    The player need to survive in two states.
    Then I will begin to design player stats.
    timg.jpg
     
    Joe-Censored, Not_Sure and JoeStrout like this.
  2. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I will use simple mechanic as guideline to design the player.
    In fact, most important mechanics are in the player. I will make other things like inventory crafting modular, so these modules can be borrowed from asset store or other games.

    When the player stats is determined, the game play is determined.

    As a human stats:
    Health,
    Hunger,
    Thirsty,
    Disease,
    Mood,
    Scar

    As a human attribute (can't be upgraded, but affected by stats):
    Speed
    Jump

    As a human skills (can be upgraded, also affected by stats)
    Strength,
    Endurance,
    Melee weapon,
    Ranged weapon,
    Eyesight,
    Intelligence,
    Cooking,
    Crafting,
    Planting,
    Hunting,
    Building,
    Charm,
    Luck,
    Medical

    As a spirit stats:
    Sanity,
    Mana,

    As a spirit attribute
    Speed
    Jump

    As a spirit skills
    Precognition,
    Retrocognition,
    Charm,
    Luck,
    Fly,
    Mind read,
    Treasure Detect,
    telepathy,
    Psychokinesis

    I think designing spirit is a challenge for me.
     
    Last edited: Jul 4, 2019
  3. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    There is one interesting setting: when the body dies, does the spirit die too?
    The answer is no. Because the spirit doesn't need body here. While the body constrain the spirit when the player wake up.
     
  4. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    The relationship with NPC also important, So the player should have a Relationship class:
    The relationship has several categories.

    Normal category:
    Deadly enemy,
    Enemy,
    Prisoner,
    Neutral,
    Want to be friend,
    Friend,
    Good friend.
    Lover,
    Married

    Work category:
    No work,
    Employed

    NPCs have their own stats, they can work for the player.
     
  5. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    When the player stats, skills and relationships are determined. The outline of game play is coming up.

    As a human,
    The player will meet a lot of dinosaurs and big bugs. Meet other survivors ( can be friends or can be enemies). Meet tribes here (dangerous). Evil spirits have the skill to make destruction.

    Traditional sandbox game play : collecting, crafting, upgrading, building, planting.

    As a spirit,
    Meet evil spirits (very dangerous). These spirits eat new spirits for living.
    Meet Hades' soldiers (Neutral) . They hunt evil spirits.
    Sneak into Hades' territory for very useful information.

    Spirit survival is a challenge because I have no game as a reference.
     
  6. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I will use first person view ( 3rd person view as backup)
     
  7. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I forgot the player should have a career choice:
    Police officer,
    Carpenter,
    Burger flipper,
    Teacher,
    Doctor,
    Uber Driver,
    Salesman,
    Mechanician,

    Also some good traits and bad traits to choose

    Good Traits:......
    Bad Traits:......
     
  8. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    7,953
    Sounds pretty interesting!
     
  9. YBtheS

    YBtheS

    Joined:
    Feb 22, 2016
    Posts:
    160
    Agreed. Sounds good.
     
  10. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I want to make it my first game, and I think the process will be very tough, and I have no idea how tough it will be.
     
  11. YBtheS

    YBtheS

    Joined:
    Feb 22, 2016
    Posts:
    160
    Yah that is quite a lot of stuff that you plan to do. Try making a version that is a lot simpler first. And then work your way up from there.
     
    Antypodish likes this.
  12. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I will try. Maybe I can take "fail faster" as a comfort .
     
    YBtheS likes this.
  13. BrandyStarbrite

    BrandyStarbrite

    Joined:
    Aug 4, 2013
    Posts:
    1,136
    I just read your game idea. That's a really amazing idea dude.:)
     
  14. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    Thanks. I think I can generate a lot of good ideas. I wish I had such ability on coding.
     
    BrandyStarbrite likes this.
  15. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I decide to write some coding for the player. Then update or correct these stats.

    I like small size file, so I will have a lot of them. And I will attach a bundle of scripts on one gameobject.
    For instance, I create one file for Health. I decide to simplify names. I use PlayerHealth as the name before, Now I just use Health. Then the variable is so general, max, amount. You can't understand these meaning until you get the class name and namespace.

    Code (CSharp):
    1. using System;
    2. using UnityEngine;
    3.  
    4. namespace Player
    5. {
    6.     public class Health : Singleton<Health>
    7.     {
    8.         [SerializeField]
    9.         private int max;
    10.         [SerializeField]
    11.         private int amount;
    12.         [SerializeField]
    13.         private float criticalFactor = 0.3f ;
    14.  
    15.         public Action OnHurt;
    16.         public Action OnHeal;
    17.         public Action OnHalfDead;
    18.         public Action QuitHalfDead;
    19.         public Action OnDeath;
    20.  
    21.         public int Amount
    22.         {
    23.             get { return amount; }
    24.             set
    25.             {
    26.                 if (amount > value)
    27.                     OnHurt.Invoke();
    28.                 else if (amount < value && amount != max)
    29.                     OnHeal.Invoke();
    30.  
    31.                 if (value < criticalFactor * max && amount >= criticalFactor * max)
    32.                     OnHalfDead.Invoke();
    33.                 else if (value >= criticalFactor * max && amount < criticalFactor * max)
    34.                     QuitHalfDead.Invoke();
    35.  
    36.                 amount = Mathf.Clamp(value, 0, max);
    37.              
    38.                 if (amount == 0)
    39.                     OnDeath.Invoke();
    40.             }
    41.         }
    42.  
    43.         public int Max
    44.         {
    45.             get { return max; }
    46.             set
    47.             {
    48.                 max = value;
    49.                 if (Amount > Max)
    50.                     Amount = Max;
    51.             }
    52.         }
    53.     }
    54. }
     
  16. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    To my surprise, the Hunger script is much similar with Health.
     
  17. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    Disease script is a little complex, and I made a draft no optimization. For testing, only 3 types of disease
     
  18. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    Need to redefine attributes and skills.

    Primal Attributes
    and Secondary Attributes.

    Primal Attributes are about live or dead. Health,Hunger,Thirsty,Disease, Mood. When the number is 0, the player is dead. When the primal attributes are below critical number, they affect secondary attributes and skills greatly.

    Secondary attributes
    (body, can be upgraded) Strength, Endurance, Load, eyesight
    (knowledge, can be upgraded) Intelligence
    (relationship, can be upgraded) Charm

    Skills (related with work efficiency or quality, they can also called survival attributes.)
    Melee Weapon
    Ranged Weapon
    Building,
    Crafting,
    Cooking,
    Planting,
    Medical
     
    Joe-Censored likes this.
  19. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I get several likes, and I think it's a good start.
     
    YBtheS likes this.
  20. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    4,471
    Sounds cool, but way too much stuff. Trim off about 95% of those career choices and focus on making something really well done.

    Uber driver in Hades...?
     
    YBtheS likes this.
  21. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    Thanks for suggestions.
    These career choices are used for initial attribute points allocation . No other meaning. Uber diver maybe has better eyesight than other career.
     
    Billy4184 likes this.
  22. Serinx

    Serinx

    Joined:
    Mar 31, 2014
    Posts:
    514
    I just want to point out a few things around the workload this would involve:
    1. Human and Spirit characters/worlds - This is doubling the workload right off the bat, basically you're creating 2 games
    2. Survival systems - this would take a lot of time to create yourself. Even if you buy some assets you'll have to integrate them with your other systems, which leads me on to -
    3. Skills - you have a huge list of skills, each one I assume has a different purspose, allowing the player to do different things (building, cooking, crafting etc etc) - these would all be separate systems again taking time to build and integrate (nowmultiply that by 2 for your spirit skills)
    I could go on, but I think you get the picture.

    This game would take years to make even with a highly experienced and funded team.
    For your first game, I highly recommend you start small - you will learn a lot, and you can apply those learnings to your next game.
    I literally think it would be faster (and yield a better game) for you to make 10 small games and THEN this game, rather than trying to create this game alone.

    That said, you could be a secret billionaire with a team of 100 artists and developers ready to whip this amazing game out in a couple years and then I'll eat my hat!
     
  23. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    Thanks for your points. I really don't what ahead. I divided the game into many small systems, and I am working on one system now.

    Your point about skill integrating, and I don't think it a problem. Skill A only knows of itself, so does skill B. So the gamer choose want to do next, I won't author the gamer to do this or that. The gamer has attributes, and the gamer needs to balance his actions himself.
     
  24. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,615
    So your plan to deal with system imbalance is to... not balance systems?
     
  25. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    To some degree Yes.
     
  26. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,615
    So what do you do when this lack of balance leads to an obvious loop emerging that completely trivializes the rest of the content? What do you do if the balance skews too far in the other direction and the game is unplayable?
     
    JoNax97 likes this.
  27. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I will consider it when I need to. But now, it's no need to worry, because a lot of things ahead.
     
  28. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,615
    Then what exactly do you think game design is, other than coming up with feature ideas?
     
  29. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    Since the workload is huge, I have to choose priority. When the alpha comes out, then the focus will transferred to balancing. Not now, it's so early.
     
  30. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,615
    Or you could make a less gigantic experience as this is literally your first game.
     
    SirTwistedStorm likes this.
  31. hongwaixuexi

    hongwaixuexi

    Joined:
    Dec 11, 2017
    Posts:
    478
    I will consider it. Now I have motivation for this type of game. When I am almost exhausted, and still a lot unfinished. Maybe I can make some changes.

    About balancing game, I think rouge-like is also a good solution. The game will have a bigger buffer for balancing game after rouge-like elements are added. In some degree Rouge-like make unbalancing things look normal.