Phoenix Game Development
P-0 Virtual World
19-1-2016
Introduction
The goal behind my main project (for which I also developed my Spherical Terrain) is to create a virtual world with unparalleled realism. I have done extensive research on and off over a number of years to this end, and I think there are a number of very important differences and changes that I will be implementing in my project.
At the moment, I am concentrating on a very simple kind of virtual environment, where the goal is mainly to just survive. By itself, this may not seem very ambitious, but I intend to model many more variables than I have ever seen modelled in a project like this before. I intend to create a realistic survival themed simulation, with dynamic and emergent content. The idea is to place new players in a random location in an open world, and see how, and how long, they survive. They will not have any equipment, weapons, or any tools. They will need to use their environment to make all of the items that they need, as well as find food, water, and shelter.
I am not certain yet whether I will set the game on Earth, using real-world raw materials, animals, and plants, or whether I will create a completely fictional world. I had initially planned to model the real world, however, this could allow players to “cheat” by using real world knowledge. For example, they could skip stone tools and move straight to bronze because they read online that bronze is an alloy of tin and copper. It took real life humans many many years to figure that out.
I will talk more about the setting of the world in later articles, this one will simple outline many, but not all, of the key changes I have made in my concept compared to other virtual worlds out there. The ideas below are all my work, however, to read more about the development of virtual worlds, and the concepts behind them, I would recommend an excellent book on the subject called “Designing Virtual Worlds” (New Riders, 2004) by Richard Bartle. This book covers almost every aspect of virtual world creation, and discusses many concepts which I hadn’t even considered. It has been out some time now, but it is non-technical, so the vast majority of the information will still be highly relevant, even though the actual hardware these games run on had advanced considerably.
Movement
The first change I intend to make, in comparison to most games, is a relatively minor one, but it is also fundamental. I am referring to how a player moves in a virtual environment. Most games use a “W,A,S,D” control system, with W being forward, S being back, and A and D being left and right “strafe”. Almost every game I have ever played allows the player to move at the same speed in all directions, including directly backwards and sideways. This is, of course, not how people move in real life. Even though it is possible to walk sideways and backwards, it is very clumsy and awkward, and it is not possible to move at any significant speed in this way. A much more realistic movement scheme would be for W and S to remain as they are, but for D (backwards) to be significantly reduced in speed. A and D should rotate the player left and right, but should not move them. Running and Sprinting should only be possible when moving forward.
Injury
The second change is related to injury and damage. Most games, even most modern games, use a very simple health bar system. Modern games often use an “invisible” health bar, where the only indication of damage is a rendering or sound effect (such as the screen suddenly turning black and white, or a red border around the screen), however, the players health is still just a number. 100 is alive, 0 is dead. Modern games often eliminate the unrealisitic “health pack” in favour of the even more unrealistic “regenerative health” with no attempt whatsoever to explain why taking a rest for a few seconds can heal multiple bullet wounds.
In real life, of course, this is not the case. People can suffer a multitude of injuries, some of them worsening, eventually leading to death, others gradually improving. Some are permanent, and can be debilitating, decreasing the persons physical abilities. You can’t run or walk with a broken leg, you can hold a weapon with a broken arm, and you can’t perform a great number of tasks if you have been blinded. These variables have never been modelled in a game, and this is just the beginning. Things like disease, poisons, even degenerative issues such as declining health due to age, failing eyesight, failing hearing, etc etc. There is so much that even “realistic games” completely remove and replace with a single integer value called “health”.
Of course, there are many injuries or diseases that cannot be modelled in a strictly visual and auditory medium such as a computer game. Simple things like headaches and colds, for example. However, most of the more serious conditions can be modelled in “real” terms, and even things like headaches and colds can affect gameplay, players may not be able to run as fast or for as long, for example.
Food and Water
Another point to talk about is food and water. Many games have food items in them, and some use them as simple health items, where eating will restore a portion of your health, but that’s about it. It would be very simple to use food and water realistically. Not eating for a while will reduce your stamina, you won’t be able to run for as long, then you won’t be able to run at all. After that, if you still don’t eat, you will find it difficult to walk, and then you will find it hard even to stand. Eventually, you will die. So, the player will have to keep looking for food to keep going, just like people have to do in real life. Food is not just “filler” or decoration, or an alternative to a health pack, it is a vital ingredient for life. The same is true for water. In real life, many people have died, and continue to die, due to lack of clean water, I have never seen this represented in a game before. Finding water, purifying it, carrying it, this could easily be modelled. Likewise, ingesting dirty water or salt water could be modelled by making the player sick, which would reduce their ability to walk and run, and in extreme cases, could result in death.
Time, Fast Travel
Handling of time in a virtual world is another deceptively simple challenge. The most common approach is to have some kind of time compression system, whereby one full day in the game world is, maybe, an hour in real time. The length of the game day (I would guess, at least) is chosen based on the type of game it is, and the length of an average play session. For fast paced action or driving games, generally, the time of day will change much faster, for immersive RPG games where players generally play for an hour or more at a time, the time of day will change less often.
A complex virtual world like mine, unlike many games where the time of day is just an aesthetic effect, will have many time sensitive features. Shops and places of work owned by AI characters, for example, will not be open at night. It will be a lot more difficult and dangerous to travel at night, etc etc. My intention is to create a world that is as realistic as possible, but simply using a 24-hour virtual day is likely not going to work well. This is because a lot of people in real life play games at certain times, an hour in the evening after dinner, a few hours on the weekends, etc etc. Due to the existence of time zones in real life, this means that if the length of the day in the game is the same as it is in real life, the player will always end up playing at the same time. If this time happens to be after the in-game shops have closed, then they will never be able to buy or sell anything.
Having said this, I feel that a short virtual day would be too jarring and unrealistic for players. Going from dawn to dusk in 20 mins is just going to break that all important suspension of disbelief. One thing that I could do to solve this problem would be to implement longer days in the virtual world, possibly around the 4 or 6 hour mark. This would feel realistic, but would break the connection between real time and game time (Ie, if the length of the days are different in the virtual and real worlds, the real world time will only rarely, and coincidentally, sync up with the virtual time). I could also, for maximum realism, make the virtual time only slightly longer or shorter than the real world time. If the virtual world’s day was 23 hours long, for example, it would feel almost as long as a real world day, because it is, however, because the real and virtual clocks are one hour apart, they would never sync up, which means a player playing at the exact same time every day would be experiencing the virtual world at least an hour later.
Speaking of time, I also need to talk about fast travel. This is going to be controversial, in fact, it may even be described as crazy, but I do not intend to have any fast travel at all in this project. Combined with realistic world sizes and movement speeds, this means it could take a very long time to get to places. The trend in modern games is to make things as easy as possible for players, everything is instant action, instant travel, instant respawn, etc etc. I am turning this completely on it’s head in this project. In reality, players are not capable of instantly travelling to distant lands, so they should not be able to do that in a game either. I feel that if it takes a long time to travel to places, it will change the dynamic of the game, making players much more careful with where they go and what they do. This will also increase the value of social interaction within the game, players can swap maps and stories of where they have been, to help other players. This will be vital, since aimlessly wandering around would not work in this game.
I also intend to model realistic time frames for healing, sleeping, eating, etc. For example, as discussed in a previous section, if a player breaks their ankle, they should not be able to just fashion a splint or a crutch and carry on as normal. That injury should take several weeks or months (of real time!) to heal. This will, first of all, create a brand new dynamic where there are long-term consequences for mistakes and battles. Most games don’t do this, you either survive and you’re fine, or you die and have to restart. The second thing it will do is it will make your game significantly harder. How will you hunt for food with a broken ankle? How will you escape predators? Just like in real life, in this kind of environment, a simple broken ankle can easily be fatal.
Carrying Capacity
Related to this, is the carrying capacity of players. It is common to see completely ridiculous amounts of equipment carried by players in games, especially in RPG games. Not only is the weight of all this a problem, but there is also no consideration given to where the player is storing all of these items, and there is no effect on their stamina or endurance. Some games limit the players movement speed if they carry more than a certain amount of equipment, but again, this is just an integer value. Carrying X Kilos of weight has no effect on your speed at all, carrying X+1 amount of weight reduces you to a crawl. In reality, the more weight you carry, the slower you will move, the more tired you will get, and the more food and water you will need (because you are performing more work). Modelling carry weight more realistically would therefore have a significant impact on gameplay: players would only carry critical items, and would be limited to a few days supply of food and water at best. This would also limit their range, and their ability to cross deserts, or open plains with no prey animals or water supplies. A single wrong decision or mistake could result in starving to death, in this kind of environment.
Communities, Player Interaction
This brings me to my next point. Throughout human history, people did not survive alone. They banded together in tribes. This allowed people to protect each other, help the sick and the old, specialise and divide labour (one person cooks for everyone, another person make all of the arrowheads, etc) and come to each others aid. This is the reason why humans survived for so long, the ones that tried to go it alone, died.
I wanted to model this in my world as well, and I was struggling to think of a way of doing this. I thought about having “Hubs” that players could fast-travel to and use as meeting points, I thought about having some kind of matchmaking or lobby system where players can meet up before the game and play together, etc etc. Then I realised that I don’t need to force the players to do anything. I don’t even need to encourage them. The whole idea here is to simulate reality, and the reason why human beings banded together in groups in ancient times is because it worked. I can simply model the variables realistically, and players should make the same decisions that people made in real life. It may begin by players sharing food in return for some arrow heads, or helping a sick or wounded player in return for help hunting a large animal, and it may develop into group of players forming emergent communities, constructing villages, and essentially forming self-sustaining societies together. This would be my idea of a complete success for this project, definitely.
This leads me to a serious problem however. In fact, it leads me to several problems. These problems are related to the inherent limitations of computer games as a medium.
Handling Player Absences
Some of these limitations have been discussed previously, such as the problem of representing to a player what their character is actually feeling (pain, hunger, etc). Largely, this can be accomplished by either text feedback or visible in game effects. I have also talked about the problem of time, and how to deal with virtual vs real time.
However, another issue with online games is that player do not live in the game. They login and logout entirely at will. This is obviously unavoidable, but causes some significant problems for a game like this. In a life simulation, such as this, it is possible to simply suspend all of the players variables (hunger, thirst, etc) when the player logs out, and resume them exactly as they are when the player next logs in. This means that the player will not die of thirst because they didn’t log in in a few days. This will work fine in most cases, but may cause issues if a player logs out for a long time. For example, with a realistic time of day and time of year system, a player might log out in mid-summer, and when they log back in again it could be mid-winter, and they may not have the equipment or food to deal with the change of seasons.
My intention in this project, however, is not to try to force people to play the game as often as they can. My concern regarding player absences is to do with the social element to the game. How will players form groups or communities if they are randomly logging in and out? How will players keep in touch with other players that they have met? In reality, members of a group would travel as a group, but in a virtual world, that can’t happen unless all of the players are online at the same time, every time, which won’t be the case.
Other virtual worlds would handle this by simply creating common areas, such as towns, where players can meet up and go questing together. Town may eventually form with this project, but even then, there will be no fast travel, so players will not be able to quickly meet up with other players, unless they stay permanently in that town. This could work, and would be very realistic, however, I suspect that it will be some time before towns form and thrive. How will two players who randomly meet, form a persistent group? This is a problem that I have not yet solved. The only solution that I can think of would be for both players to travel together only as long as they are both playing. I cannot see any way, at the moment, for a group of players to travel together between play sessions. This may change in the future. I could allow a player’s spawn location to move with the group, for example, so the player will spawn at the groups last location, not theirs.
Death
I have left the most fundamental, and arguably, the most important change until the end. This is, simply, how player death should be handled in the world. This has to be one of the most unrealistic aspect of modern games, regardless of genre. Players are able to restart levels, reload saves, and respawn, sometimes just seconds after dying. But how can a game implement realistic, permanent death? Even if you allow a player to restart the game from the beginning with a completely new character, what player will invest hours of time into a game, if one mistake can “kill” them, causing them to have to redo everything? Most players won’t accept this, however, this is exactly the way real life works! People spend years improving themselves and building a life for themselves, and it can all be gone in seconds. Removing the consequences for dying fundamentally changes the way the game is played, and completely changes a persons behaviour.
I don’t like the idea of permanent death in games, to be honest. When I invest time into anything, I don’t like to think that it could all be wiped out due to a simple mistake. Initally, for my virtual world project, I had intended to solve this problem by simply removing the player from the game for a certain period of time, and then allowing them to continue with their previous progress saved. My original idea, or should I say, one of my original ideas for this concept was a Sci-Fi themed game, and I could have explained this in-universe by creating some kind of advanced cloning technology or regeneration technology that could restore a deceased person to life, but took time to work. This would create a realistic penalty for death, while avoiding completely wiping the players character.
For my new project, I am strongly leaning toward some kind of permanent death. I want to experiment with a game that is truly as realistic as possible, and allowing the player to continue on after death is one of the most unrealistic things that could happen. I am considering allowing players to keep their game account after death, and create a new character to try again, but death means death, and will completely “kill” the character that they were playing with. This fits the objective of the game, which is to create a “life simulation” where the objective is to live for as long as possible. In future, I may not include this element, but I want to try it and see how it works out.
In addition, even permanent death will not remove a players achievements and contribution from the world. If players have built structures, written books, created art, or interacted in any other way with the game world, these contributions will still remain.
This has been a fairly preliminary discussion of my virtual world project, I will be posting much more in-depth information in the future, and I intend to start prototyping as soon as I can, although I can’t say at this point when that will be.