typedef struct Vector3 { float x; // x coordinate float y; // y coordinate float z; // z coordinate } Vector3; typedef struct Stats { unsigned char Strength; // Physical attack damage + Equipment Load unsigned char Endurance; // HP + Dmg mitigation for physical damage, how much stamina you have unsigned char Intelligence; // Use/build steampunk gadgets + be able to read specific logical papers unsigned char Wisdom; // Number of magic / special attack / skills you can remember at one time. unsigned char Charisma; // how good you can talk, persuade, etc. } Stats; typedef struct Skills { unsigned char Artisan; // Crafting, visual arts, etc. unsigned char Culinary; // cooking, baking, brewing, unsigned char Ranged; // using guns/cannons, bows, etc. unsigned char Melee; // using swords, hammers, pole-arms etc. unsigned char Acrobatics; // being able to contort, move, dodge, etc. unsigned char Prestidigitation; // skullduggery, lock-picking, deceiving, slight of hand unsigned char Engineering; // creating and using contraptions, building houses unsigned char Metalworking; // obvious, but in this you can also use automatic stuff unsigned char Language; // ability to read/write a specific language unsigned char Medicine; // healing hp, getting rid of diseases, etc. unsigned char Alchemy; // Creating potions, creating alloys, creating chemicals, component based 'magic' unsigned char Fishing; // collecting fish unsigned char Mining; // collecting ore unsigned char Survival; // woodcutting, fire-making, hunting, collecting herbs, etc. unsigned char Gardening; // growing plants, herbs, etc. unsigned char History; // will give more information when examining some objects } Skills; typedef struct DerivedStats { unsigned char Hitpoints; // how many hits you can take, if it reaches 0 you ded! unsigned char Stamina; // How many strenuous actions you can take, i.e. swinging a hammer, attacking, fishing, etc. unsigned char Perception; // being able to observe some objects unsigned char Luck; // Get better probability rolls for things that matter for rolls unsigned char Stealth; // Probability of being discovered when hiding unsigned char Attractiveness; // based on your character you make in the creator. more attractive will have better outcomes with aristocracy and more 'ugly' will have better outcomes with working class. unsigned char Affluence; // same as attractiveness but can change with money char Holyness; // how attuned to the vision of Eru } DerivedStats; typedef struct Entity { char Name[24]; // Name of the entity Vector3 Vector3; // Vector3 of the entity in space Stats Stats; // Base stats DerivedStats DerivedStats; // Stats that are derived from skills and base stats Skills Skills; // Stuff that your character can do } Entity; typedef struct Item { char Name[24]; // Name of the item int BaseValue; // Default starting value of the item } Item; typedef struct Phenomenon { char Name[64]; // Name of the phenomenon } Phenomenon;