PGD Home

P-0: Virtual World Concept: Update 2: Primary Gameplay variable selection

by on Jan.29, 2016, under Astral Realms, P-0, Servers and Networking, Software and Games, Spiritus Astrum

I have done quite a lot of work lately on designing the Gameplay variables that I am going to model in this system. This is the most important part of this particular project, since the entire game will be limited by the scope of these variables. I need to make sure that I am modelling enough variables to accurately portray a realistic virtual world.

Modelling things like Hunger and Thirst are fairly easy, since they can just be integer variables. However, modelling things like injury, (broken leg, etc) disease, was more difficult. I also have to model object combinations, actions, and environmental variables and their effects on other gameplay variables (extreme heat will cause dehydration, etc).

I have, I think, come up with a good system to model this, but it is still in it’s very early stages. The main idea is to convert a real-life “states”, such as “Bleeding”, “Poisoned”, “Exhausted” etc, to a set of in-game variables. This is easy to do for some variables, but very difficult for others. By choosing enough variables, it should be possible to do this, however. I then modify the variables based on the state by using a “behaviour”. These behaviours will be static for now, but eventually, it should be possible for users to create their own behaviours and states, opening the game up to a huge array of user-generated content.

This system could even be used to model some very obscure “states”, such as, for example, a simple cold or minor illness. The real life state could be mapped to a set of effects, such as Headache, Nausea/Vomiting, Low energy, etc. I could then map “Headache” to a “Morale” variable, “Nausea/Vomiting” would have an effect on Hunger and Thirst (due to lost fluids/food) and “Low energy” could be mapped to a “Stamina” or “Endurance” variable, reducing the players ability to run, or perform strenuous actions.

Variables can be combined in complex ways, so if the “hunger” Integer variable drops below a certain value, both the players stamina and morale will also drop, which will have far-reaching effects on the length of time the player can walk or run, their speed, their ability to dig or swing a weapon, etc. Adding a new action to the game (which would need to be done, if a player created a custom object) could be a simple matter of mapping the action to a target, and using a behaviour to modify its variables. For example, a new object “Bandage” could have the supported action “USE”, and the effect “Stop bleeding”. The player could then write a behavior script that¬†implements the “Stop Bleeding” effect on the target object.

I have also modelled item combinations, and actions and effects in a similar way. Item combinations are often used in RPG type games, and my system is not massively different from current state-of-the-art systems, I am just breaking down the steps far more. In most games, you would combine maybe two or three items to get the final result. In my project, I am basing the entire combination system on what I am calling “atomic” raw materials. What I mean by atomic is that the raw materials should be exactly as you would find them in the world. All objects should be created from purely naturally occurring materials.

This is one of the reasons why I am basing the game in primitive times, for the moment. It will be much easier to model the simple technologies of this period. The most complex type of object would likely be something like a Bow, but even this will require many steps to produce.

For example, a bow could be made from a Straight, planed piece of wood, a string, and a cutting tool to make the notches and attach the string. It may also need some oil or fat or some kind to seal it. In most games you would just find these items lying around, however, in real life, you wouldn’t.
The straight, planed piece of wood would need to be found as a branch or piece of fallen wood and cut to size, then planed, and notched. The tool to cut the wood would need to be created first.
The string would likely be either animal gut (meaning the animal would need to be killed and processed) or made from stripped and boiled tree bark, both of these processes would have multiple steps.
The oil or animal fat would also need to be obtained from an animal that has been hunted and killed.

I have not seen a game model variables in such detail as this. Objects can also have “object types”, which can have shared behaviours. For example, a “Fine Oak bow” and a “Poor Yew Bow”, etc, are all “Bows” which all work in basically the same way. So, to allow the user to pick up and fire a bow (implementing the animations, dealing damage, using arrows as ammunition, etc) the “Shoot Bow” action only needs to be implemented once, and all bows can share that action.

I have also decided to make “skills” per object, not per type. So making a lot of bows will not make you better at “crafting” it will simply make you better at making bows. This makes sense, and it should also lead to the spontaneous emergence of skilled tradespeople. One person might specialise in bows, which means their bows will be superior (higher power, more time between failure) but their skills with axes might be rudimentary.
In addition, there may be many combinations of methods and materials for bow making, different lengths, different kinds of woods, etc. A common problem with crafting in RPG type games is that people just go online and download a list of all possible item combinations, which takes a lot of the fun out of the game. With my system, even if a user knows the combination for the perfect bow, they may not have the materials in the part of the world where they are, so they may have to improvise with an inferior type of wood, or length of bow.
Both of these factors will lead, hopefully, to the development of barter and trade in the player community. Swapping one item for another, and this is the foundation of a community or civilisation.

In this way, simple combinations of variables can lead to very immersive, realistic, and dynamic gameplay.

There is a lot of work to be done here, it has proven very difficult to visualise such a vast and complex system. I set up a test database in mySQL, and mapped out some of the tables and data types, then populated it with some sample data, but even after spending several days on it, I am still only beginning to  understand how this will all fit together.




Comments are closed.

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!