[[start]] Emry's Virtual World Project

Route:

Editing Guidelines Register Discuss the Main Page Side Projects




Welcome to My World... Well, Eventually

This Wiki space is to be devoted to a project that I have wished to make a reality for some time now. That project is to create a virtual online world.

In many ways this online world if ever created would be the ultimate (in some people's opinions of course) online game. The level of detail and interactivity would be amazing.

This is eventually; I realize I will have to start out small. An important starting point however will be planning, organizing, creating a team, and keeping people motivated.

One might ask why for such a project would I use such an open forum as a wiki on a public server to start such planning. The answer is simple, and has to do with my philosophy. When the finished product is complete, I wish for the protocols used by the servers and clients to communicate to be open. This openness will encourage improvement on the protocols which I could use myself in future versions of the main "game" server, or perhaps more importantly, it would allow motivated gamers and programmers to create their own clients to make game play better, or easier for people using them. Most importantly it would allow motivated programmers to create clients for platforms that the development team didn't yet cover.

As I have more time over the coming weeks, I will fill in more details on what I wish the project to become. This is to be a cooperative effort between myself and whomever else is interested.

Eventually, I do foresee a possibly commercial project developing from this, for the completed game server. I see no reason why an open project cannot succeed and be profitable at the same time. I feel that it is possible to achieve many goals at once, if one puts their mind too it.

Project News
2007年 10月 14日
I am thinking about starting a Source Forge project. If I do, then I will probably get it started arround December. I will probably use the Link BSD license, at least for the communications libraries. I will discuss the reasons and implications of this further in the neer future.

For now, here is a link to what will become the page to discuss the Possible Sourceforge Project.
Concepts
There are a few broad concepts that will need to be covered in some depth.
I will go ahead and start listing some of those here.
If there is anything else that you feel should be included, feel free to add to the list.

  1. Game World
  2. Game System
  3. Server Functions
  4. Client Functions
  5. Communication Protocols

The concept of Game world is probably one of the simplest, in theory at least. This is the details of how the world at large works, and the details of what is in the world.

Game System is a little more complicated. This is the way that everything works together. This is partly abstract, and partly code. This is the numbers behind the scenes. A basic playable system is a good foundation, but it is only the start for a project like this. That leads to the next section.

The Server Functions. What does the server do? How does it do it? How does the server take a virtual world, and organize it into functional pieces. How does it use the numbers presented to it by the Game System to make everything flow?

This leads to the Functions of the Game Client. How does the client behave. How does it display the information given to it by the server. The client is the end users window into the world.

Finally this comes to the question of how dot he Server and the Client communicate. This is handled by communication protocols. The simplest answer of course is TCP/IP. The more complicated answer is a listing of what the machines actually say over that TCP/IP connection. What information do they send to the user, the world server, and even other machines that are connected into the system to make things run?


Game World

The world that I envision would start opening day with a lush detailed environment, animals, plants, and weather systems. It would be a true three-dimensional world. Travel from one side of the world to the other would not happen instantaneously, and a cave would have a real "physical" location within the world and not simply be a portal to random map somewhere else in memory.

If a character had the ability to fly, they would only be able to fly so high before either flight became more difficult due to breathing, or they reached the edge of the world's virtual atmosphere. If they began to dig into the ground, an actual opening would be left that would either stay, or eventually erode away or cave in. It would not be simply a mark that disappeared in thirty minutes because there was a "system tic" or an hour had passed.

Animals would "spawn" or reproduce according to a realistic algorithm. They would only appear within appropriate range of a "female" member of their species, and would start out in a "young" possibly weakened state. From there they would grow, develop, and eventually age. Egg laying creatures of course spawn from eggs, which must be laid by a "female" of their species, and are destroyed when the creature hatches. Some eggs will leave shells; others will merely dissolve and fade away.

When the game server first starts, the world will have a number (probably three or four) semi-randomly placed NPC "villages" that will consist of a healer, and a merchant. The merchant will sell only the most basic of supplies, in exchange for resources that the players collect, or coupons that they start out with. They would be able to acquire basic tools, food, and weapons in this way.

Anything more advanced will require a character of the appropriate skill levels to create it.

Player characters can from that point, lay claim to land; which they may have to fight to keep, and build buildings, farm the land, or create other facilities.

Land that a player claims becomes theirs. If someone else comes along, and there is nothing on that land, then they may claim a chunk of it as well. This means that just claiming large chunks of land is useless. You need to build buildings on that land, farm the land, do something to keep the land active, productive, and attracting other people (PC's or NPC's) to the land.

<more to come>


Game System


The game system, most simply put, is the set of numbers and descriptions that describe characters creatures and things within the world, and the rules for making those numbers work together.

Since it is obvious already that the game system will take up a lot of discussion space early on, so I am already creating its own page.

Game Server

On the network side, the game will be run by a group of servers.
How many servers will actually be used isn't known for sure yet.
Each server need not necessarily be on it's own physical machine,
but it should at least have it's own process. In this way, some
of the less resource intensive pieces may actually share a machine.
The following servers will likely be needed to maintain the world:

  1. Login Server
  2. World Server
  3. NPC/AI Server
  4. Creature/AI Server

Another thing that will need concideration is a database format for
the system. Every persistant world needs a database to store
information about the world, and about the creatures, objects and
characters in that world.


Other things may be needed as well as the concept grows.

Game Client

Communications Protocols


start, Rev. 25, Last changed on 2007-10-14 11:32, 1528 page hits
Wiki hosted for free at wikihost.org || RSS-Feed || GeboGebo 1.3.3 || 00.953 seconds || || PAGERANK TOOLS