Upload
gueste832a8e
View
377
Download
0
Embed Size (px)
Citation preview
Web Game Design
授課教師江素貞
Web Game Landscape
Web game A web game is a game hosted on a website and played
through a web browser.
With tens of thousands of them on the Internet, one thing
is clear: web-based games are tremendously popular.
In this chapter, we briefly explore client technology,
typical goals of web games, and how this all relates to
multiplayer games.
Client-side Technology Web-base games are created using a number of different
platforms.
The platform provide you with a programming language
and a way to compile it into game content publishable to
the web.
A virtual machine is software that your web browser uses
to know how to run compiled content. Adobe’s Flash
virtual machine is just called Flash Player.
Flash for Client-side Flash is the most-used platform for creating web-based
games.
Flash bridges the gap between artist and programmer very well.
DeveloperLearning Curve
Run-timePerformance
Virtual MachineInstallation base
Ease of Development
Java High Fast Medium Moderate
Unity Medium Fast Small Moderate
Flash Low Moderate Large Easy
Typical Goals This section classifies most web games into some general
categories that attempt to answer the question, why was
this game made?
However, you should keep these goals in mind when
designing a game, so that your game design supports what
you are trying to achieve.
Typical Goals A multiplayer perspective is added that can help support
the goal.
Generating banner ad revenue
Making your site even stickier
Marketing
Driving Downloads
Education
Providing subscription value
Because I can
Generating Banner Ad Revenue You try to attract as many people to your site as possible,
and keep them on it as long as possible, to generate a large
number of ad impressions.
If keep users around longer is the goal, then giving users
the ability to chat adds a new layer to tour site that will
give users another reason to stick around.
Making Your Site Even Stickier Sometimes games are created and put non-game websites
in an attempt to get visitors to stay longer.
If a user stays on tour web-site to play a game, then maybe
that user will exercise other aspects of the website when
not playing the game.
The goal is to get users to use the game for a while and
then browse the site.
Marketing Games are often created to promote things like movies,
TV shows, consumer products, and events.
Sometimes this approach is mixed with ad banners.
Mattel’s Rebellion Race game
(www.hotwheels.com/games/rebellion/index.aspx), which
allows the real-time multiplayer car-racing game to
promote the company’s toy cars.
Driving downloads The casual game download market is huge and very
successful.
Site like Real Arcade (www.realarcade.com) and Big Fish
Games (www.bigfishgames.com) promote many of their
downloadable games with free lightweight web games.
The web game is a sample of what you would download.
You get hooked with the web game, and then download
and pay for the full game.
Education Educational games can greatly benefit from multiplayer
concepts. There are many possibililies here such as
driving the desire to learn more through competition
giving learners assistance in real time
providing one-on-one creative training approaches
Providing Subscription Value By paying a monthly subscription, users gain access to
regular new features and content.
Most site like these are virtual worlds.
Club Penguin (www.clubpenguin.com)
Faraway Friends (www.farawayfriends.com)
One of the most attractive parts of a virtual world is the
social aspect.
Because I can This is one of the most common motivations for creating
games─developers just want to create something.
Connecting Users
Introduction How do users get information about each other?Are they
directly connected to each other, or is something else
going on?
Here will describe the most common way this interaction
is handled.
Connection Techniques Typically, clients can interact with each other in one of
two primary ways:
Peer to peer. Information is transferred between clients
without the use of a server.
Client-server. A clients sends information only to the server.
The server then transfers information to clients.
Peer to peer A server may have been used to allow then to find each
other in the first place, but is not used after that.
fully connected topology
ring toplogy
Generally speaking, peer to peer is not used much in
gaming. However, peer to peer is alive and well for file-
sharing networks, and is also being used successfully to
distribute patches for games like World of Warcraft.
Peer to Peer In a fully connected peer to peer setup, all clients connect
to each other.
Client-Server This category has two primary approaches:
polling
persistent socket connections
A persistent socket connection, through the use of a socket
server, is the most common approach.
Client-Server In a client-server setup, clients communicate with the
server to exchange information.
Socket Servers A socket server is a program running somewhere, listening
for connection attempts.
Socket server exist at an IP address or hostname and listen
for connections on at least one port.
When a client establishes a connection with a socket
server, the have opened up a persistent socket connection
with the server.
Updates in a socket-server application are event-driven
and real-time. (Internet latency is still something to be
dealt with in some games)
Polling Polling is an approach that rarely makes sense to use.
Polling is the act of a client making a request to the server
on a timed interval to check for updates. (A client is never
connected to the server)
Polling A client is polling the server
repeatedly looking for
updates, and usually there are
none.
Where Decisions are Made
Concepts In multiplayer games, logic can be found on both the
client and on the server. But if game logic can exist in
both places, which has the authority to make important
decisions? And why?
Games that have most important decisions being made on
the client are called authoritative client, and those that
have most important decisions being made on the server
are called authoritative server.
Authoritative Client The server is used simply to route messages between the
clients.
We’ll see one example of when decision-making on the
client works and one where it doesn’t.
Authoritative Client An example: consider a two-player, turn-based game of
pool.
Good choice for a simple game of pool.
Authoritative Client An example: consider a two-player, real-time tank-shooter
game.
Not such a good choice for a real-time tank-shooter game.
Authoritative Server Tank game is an example of an authoritative client that
leads to a disagreement between the clients. The solution
to this problem is to move that important decision-making
to the server.
In an authoritative server, the server is the single decision
maker, so there is never any confusion about what is going
on.
Authoritative Server The same real-time tank-
shooter game, now controlled
on the server.
When to Use Which Model A turn-based game where all of the information is know
will most likely fit into an authoritative client model.
(There is nothing left up to chance and nothing left to be
revealed.)
Some games that fit these criteria are chess, checkers,
Connect Four, and pool.
When to Use Which Model Most real-time games (games where there are no turns)
will automatically need to be authoritative server.
Texas Holdem Pocker
Monopoly
Car racing game.
ElectroServer Plugin Concepts Extensions are used to extend the functionality of the
server. Three types of extensions:
Managed objects.
Event handlers
Plugins.
A plugin is custom code run on the server. If your are
going to write an authoritative server game, you need to
write a plugin.
A plugin can be conceptualized as a class.
Talking to Plugins Since games take place between users in a room
together, the plugins that are most useful for our purposes
are room-level plugins.
Once the room is created, the client can communicate with
the plugin through the API.
Custom information is passed from the client to the plugin
or from the plugin to the client through the use of
EsObjects.