Online and multi user games virtual worlds




















Around the same time that Club Penguin appeared on the scene, another highly influential online world for children debuted. With Webkinz World, Canadian toy company Ganz linked the world of physical toys to an online world that children could use. Even today, Ganz sells a line of plush animal dolls called Webkinz, each of which comes with a special code that the purchaser can enter into the Webkinz Website.

In the past seven years, World of Warcraft has amassed an astounding 11 million paid user accounts worldwide. The mythos, graphics, and quest system brought those players to the 3D online role-playing game, but the rich virtual world kept them coming back to venture on combat-rich quests with friends, collect rare equipment, and build the stats of their online alter-egos.

In that way, WoW is responsible for the creation of more online worlds than most of the worlds in this list. Shortly after the debut of Worlds Chat, Worlds, Inc. Whereas Worlds Chat specialized in graphical chat, ActiveWorlds focused on being a simulation of reality in which you could build your own home and environment. Its in-world economy, physics, and land management system blazed a trail for later worlds like There and Second Life, which owe a huge debt to this pioneering world.

ActiveWorlds, though not as popular as it once was, is still around today. In Ultima Online, players were free to pursue almost any path—from a combat-based lifestyle to a life as a thief to one as a baker.

Over time, UO also provided an influential and important platform for sociological studies of virtual world behavior especially of unregulated player-on-player violence in the early version of the game due to its open, free-form user experience that emphasized social and nonviolent trades as much as questing and combat. Its simulated weather system, natural food chain, and economy also attracted quite a bit of media attention in its day.

This wastes a lot of bandwidth and greatly increases the server loading. It is a bad practice to use polling in massive multiplayer applications and we should avoid it throughout the development of the virtual world.

When two players connect to the server and are ready to start playing tic-tac-toe together, player A is thinking where to put an "X" on the board. When player B is waiting, his machine asks the server if there are any updates from other players per second. After a while, player A put an "X" in the middle of the board.

Next when client B is asking the server, the server tells client B that there is an "X" in the middle now. Client B renders the "X" and now it is the turn of player B. The following figure shows polling in Tic-Tac-Toe:. During this process, client B keeps sending messages to the server and the server keeps responding to client B just to tell it that nothing happened. This dramatically increases the network loading and server loading. And this is just a two-players example. What if there are eight other players watching this game as spectators?

Every player sends a message to the server and get a response message from the server in every second. Imagine there are rooms and 10 players in each room.

Now we are talking about messages per second just for asking the server if there is any update. Moreover, there is an update latency problem in polling.

When player A updates the board, player B knows the update from player A next time when his machine asks the server. This latency depends on the polling interval. A short interval improves the latency problem while putting more load on the server and network. A long interval with large latency makes it unacceptable for real-time interaction between players.

Another disadvantage of polling is the bad scalability. A server needs to keep responding to the polling clients that use relatively lots of system resources.

This results in the server only being capable for a few concurrent connections. Usually a polling server supports up to concurrent connections. I had an experience on creating a Flash multiplayer virtual world with. Net web service backend.

Due to the limitation of the server, I had to use the polling approach and it would end up supporting less than concurrent players. The low concurrent players capacity of a server means it needs many servers to handle massive players' connections at the same time and makes it difficult to manage.

Therefore, polling may be suitable for very small-scale networks and it should be avoided in Flash virtual world. In contrast to polling, a socket-based connection establishes persistent connections to the server. The server sends messages to clients only when it needs and vice versa. There are no more redundant messages such as a client asking the server if there is any update because server will push updates to clients without clients initializing the requests.

This is also known as asynchronous socket or event-driven socket. Take the same Tic-Tac-Toe example with the socket-based implementation. The following diagram illustrates the data flow between player A, B, and the server. There are only three messages in the whole process, player A communicates to the server to put an "X" on the board, player B renders the "X", and a successful acknowledgment of the server to player A.

If there are eight spectators in the game, only around 11 messages will be sent to the network in this period instead of 18 messages per second.

The following diagram shows event-driven Tic-Tac-Toe:. The event-driven socket-based connection eliminates the polling interval latency. The very low server loading enables almost real-time communication between players for which the latency only depends on the client's and server's Internet connections.

It also allows more concurrent players than the polling architecture and is therefore easier to scale. Normally a socket server can handle thousands of concurrent connections. When a user starts up and connects to the virtual world, the machine that the user uses is a client. The place where the client machine connects to is the server. The server can be one single powerful computer or a cluster of networked computers interconnected within a high-speed local network.

The purpose of the socket server is to manage all client's connections and provide centralized logic and control to clients. It may also respond to provide and store persistent information for the virtual world such as user profiles or world state. Unlike developing an offline single player game where all logic and data are placed in a SWF file, logic and data are distributed into different places in a virtual world. Most critical game logic, such as business logic that handles virtual money transaction, is located in the server to enhance the security.

The server is also responsible to handle all users' actions and behavior, and provides each user the information they need. On the other hand, clients are in-charge to display the virtual world according to the client-side data and latest data that updates from server-side. Client-side data includes terrain, map, UI, and basic logic. For example, imagine that there is a player standing in front of a fountain and you can see him in the virtual world.

It is the client that renders the fountain sight according to your current position. And the client gets an updated message from the server that there is another player standing in front of the fountain and renders this player. The clients also gets the appearance of that player from the server in order to render it. There are several socket servers on the market that fit the development of Flash virtual world. Some are good at media streaming while some are powerful on user management.

It is a socket server for Flash that provides powerful tools and resource management to enable highly productive development of virtual worlds and multiplayer games. Net, Java, Silverlight, and even Ajax. It also supports media streaming function by embedded open source Flash media server called Red5. It also supports clustering through terracotta, an open source clustering software. The logic is distributed into clustered servers and enables the ability to extend the scalability and enhances the failure resiliency.

The server comes with fully-documented resources with lots of tutorials for beginners. There is also an active forum to get support. SmartFoxServer provides different licenses and connection options for developers. It provides Lite, Basic, and Pro options with maximum connections from to unlimited. The Lite version is free with maximum 50 concurrent connections and Basic or Pro version are free for up to 20 concurrent connections.

Similar to SmartFoxServer, ElectroServer provides powerful tools and fits the development of Flash virtual world server. ElectroServer also provides scalability by load balancing with multiple gateway servers.

ElectroServer also provides media streaming features. There are two packages with different media connections and concurrent player options available. The costs of ElectroServer can be expensive. The professional version is free up to 25 concurrent connections. Flash Media Interactive Server mainly targets real-time streaming and communicating technology that can stream videos with different popular codec and live stream. It supports features such as server-side ActionScript extension and server-side shared objects to make it possible for virtual world development.

Logic is kept in the origin server and clients connect to different edge servers, then edge servers connect to the origin server. It is like the gateway approach from ElectroServer. However, the lack of game room management and game-related features means that developers have to write their own game management scripts. It aims to become an open source alternative of Flash Media Interactive Server and thus it is more powerful on video streaming than virtual world resources management.

As an alternative of Flash Media Server, it also lacks server-side game management features. Hardcover: Available. E-Book: Multi-User License. OnDemand: Individual Chapters. Reviews and Testimonials. Portland, OR. Search this Book: Reset. October 19, at am. October 27, at am. October 27, at pm. October 30, at am. Chair says:. November 6, at pm.

November 13, at am. RobertPoodo says:. November 15, at pm. Cordoba Oro says:. November 28, at pm. December 13, at am.

December 18, at am. Bedfordshire says:. December 18, at pm. Computers says:. January 24, at pm. Cruz says:. March 14, at am. October 12, at am. November 20, at am. November 22, at pm.



0コメント

  • 1000 / 1000