⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch17.htm

📁 国外的一本介绍java开发网络游戏的书
💻 HTM
📖 第 1 页 / 共 3 页
字号:
<HTML>

<HEAD>
   <TITLE>Chapter 17 -- The Basics of Multiplayer Gaming</TITLE>
   <META>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#CE2910">
<H1><FONT COLOR=#FF0000>Chapter 17</FONT></H1>
<H1><B><FONT SIZE=5 COLOR=#FF0000>The Basics of Multiplayer Gaming</FONT></B>
</H1>
<P>
<HR WIDTH="100%"></P>
<P>
<H3 ALIGN=CENTER><FONT COLOR="#000000"><FONT SIZE=+2>CONTENTS<A NAME="CONTENTS"></A>
</FONT></FONT></H3>


<UL>
<LI><A HREF="#TheRawappealofMultiplayerGames" >The Raw appeal of Multiplayer Games</A>
<LI><A HREF="#NetworkversusNonNetworkGames" >Network versus Non-Network Games</A>
<LI><A HREF="#GamingontheInternet" >Gaming on the Internet</A>
<LI><A HREF="#TypesofMultiplayerGames" >Types of Multiplayer Games</A>
<UL>
<LI><A HREF="#TurnBasedGames" >Turn-Based Games</A>
<LI><A HREF="#EventBasedGames" >Event-Based Games</A>
</UL>
<LI><A HREF="#NetworkGameProblems" >Network Game Problems</A>
<LI><A HREF="#NetworkGameSolutions" >Network Game Solutions</A>
<UL>
<LI><A HREF="#StateSynchronization" >State Synchronization</A>
<LI><A HREF="#InputSynchronization" >Input Synchronization</A>
<LI><A HREF="#AHybridSolution" >A Hybrid Solution</A>
</UL>
<LI><A HREF="#GameTheory" >Game Theory</A>
<LI><A HREF="#Summary" >Summary</A>
<LI><A HREF="#QA" >Q&amp;A</A>
<LI><A HREF="#Workshop" >Workshop</A>
<UL>
<LI><A HREF="#Quiz" >Quiz</A>
<LI><A HREF="#Exercises" >Exercises</A>
</UL>
</UL>
<HR>
<P>
In the past couple of days, you've learned what it takes to give
the computer the capability to match wits with a human player.
Although AI is very important and has countless uses in games,
it's hard to discount the human factor in multiplayer games. Today,
you learn all about multiplayer games and why they are important
in today's gaming landscape. The theory you learn today forms
the foundation you need in order to implement a multiplayer networked
version of Connect4, NetConnect4, later this week.
<P>
The appeal of multiplayer games isn't hard to figure out. Considering
how much people enjoy playing games together that don't involve
computers, it really was only a matter of time before the appeal
of single-player computer games carried over to supporting multiple
players. With access to the Internet rapidly extending beyond
the circle of techies and computer enthusiasts, the time has come
for multiplayer gaming to mature. Java has the potential to lead
the way in many regards because of its cross-platform nature and
built-in support for networking and tight security.
<P>
There are some obstacles, however, when it comes to implementing
multiplayer games in Java (or any other language, for that matter).
Network games bring with them their own unique set of problems
and challenges that must be dealt with at the design level. Today's
lesson exposes many of these problems and discusses various techniques
for solving them. By the end of today, you'll be ready to move
on to the specifics of network programming in Java.
<P>
The following topics are covered in today's lesson:
<UL>
<LI>The raw appeal of multiplayer games
<LI>Network versus non-network games
<LI>Gaming on the Internet
<LI>Types of multiplayer games
<LI>Network game problems
<LI>Network game solutions
<LI>Game theory
</UL>
<H2><A NAME="TheRawappealofMultiplayerGames"><B><FONT SIZE=5 COLOR=#FF0000>The
Raw appeal of Multiplayer Games</FONT></B></A></H2>
<P>
If you've been fortunate enough to play a multiplayer network
game with your friends, you already know how much fun it can be.
In many ways, outwitting a real live person is much more fun than
competing against a computer player. The reality of going head-to-head
with another person can change the whole perspective of a game.
I have yet to see a single-player game that evokes the same level
of emotion and excitement as is generated from the human factor
in multiplayer games.
<P>
Arguably one of the most popular multiplayer (and single player,
for that matter) games to come along in the past few years is
DOOM. DOOM provides a 3D world with previously unheard-of realism
and nonstop action. Add to this the ability to share the 3D world
with other real people, and it's not hard to see why this game
is so compelling.
<P>
Even though most of the successful multiplayer games to date,
like DOOM, have pitted human players against each other, they
don't necessarily have to. The benefits of human interaction in
a multiplayer game are just as significant if the human players
are working together. I know from experience how fun it can be
working together with another person to reach a common goal. One
of my favorite games is Super Contra III for the Super Nintendo
console game system. This game enables two human players to play
together against the computer. In fact, you can get much further
in the game with two people cooperating in multiplayer mode than
with one player on her own in a single-player game. This approach
rewards the players for their cooperation, and in doing so adds
another whole dimension to the appeal of the game.
<P>
<CENTER><TABLE BORDERCOLOR=#000000 BORDER=1 WIDTH=80%>
<TR><TD><B>Note</B></TD></TR>
<TR><TD>
<BLOCKQUOTE>
I know that the Super Nintendo game system is quickly on its way to becoming outdated. Although I'm not an overly nostalgic person, I find that there are many games on older game systems that are still very fun to play, even in their old age.</BLOCKQUOTE>

</TD></TR>
</TABLE></CENTER>
<P>
<P>
Although the discussion thus far has been limited mostly to games
involving multiple human players, there is no reason why you can't
have a mixture of human and computer players in a multiplayer
game. Consider a Poker game, for example. The participants in
the game could be any mixture of human and computer players. The
ability to have different combinations of players puts an interesting
twist on the AI in the game. Moreover, it would be interesting
to see how the human players respond to the other players, knowing
that some of them are real and some aren't. A few games out there
have taken this approach. The computer version of one of my favorite
board games, Risk, takes this approach by filling in for missing
human players with computer players.
<P>
There are endless possibilities for multiplayer games involving
both cooperation and competition among human players. Regardless
of the scenario, when real people are involved, a certain synthesis
of ideas takes place that just isn't possible with computer players.
It's then up to game designers like you and me to chart the course
and dream up new ways for people to interact with each other through
games.
<H2><A NAME="NetworkversusNonNetworkGames"><B><FONT SIZE=5 COLOR=#FF0000>Network
versus Non-Network Games</FONT></B></A></H2>
<P>
So far, the discussion of multiplayer games has avoided the issue
of where the multiple players are physically located. You've probably
assumed that I've been referring to multiple players connected
over a network, but that doesn't necessarily have to be the case.
Because of the relative difficulty in implementing network games,
many multiplayer games have relied on two or more players sitting
in front of the same computer. In light of recent advances in
network standardization and programming libraries, however, this
approach of having multiple players using the same machine is
losing its appeal rather quickly. It still works pretty well for
many console game systems, because they are specifically designed
to support two or more players with one set of hardware, but I
wouldn't expect to see very many new computer games using this
approach.
<P>
The point is that you simply must implement a network interface
for multiplayer computer games, even if you provide a non-networked
multiplayer option. When it comes to Java games, this point is
even more important, because Web users will expect to be able
to play against other players on the Web.
<P>
To better understand the relationship between network versus non-network
multiplayer games, check out Figure 17.1 and Figure 17.2.
<P>
<A HREF="f17-1.gif" ><B>Figure 17.1 : </B><I>A two-player game on a non-networked machine.</I></A>
<P>
<A HREF="f17-2.gif" ><B>Figure 17.2 : </B><I>A two-player game on networked machines.</I></A>
<P>
In Figure 17.1, a two-player game is implemented on a single machine;
in this situation, the players use different keys on the keyboard.
Of course, if you figured out how to get two mice working on one
machine, that probably would work too! Although this setup certainly
works in the confines of your own home, it doesn't help you much
when you want to play with a friend who lives halfway across the
world. The bright side is that the design for a game like this
wouldn't really be any more difficult than a single-player design;
you just process two sets of keyboard inputs rather than one.
Nevertheless, all the input still is generated on the same machine
and with the same timing. The key point is that although there
are two players with two different sets of input, only one instance
of the game is running.
<P>
Now consider the problems associated with this non-network approach:
You're requiring two players to squeeze together next to each
other and share the keyboard. Furthermore, this setup wouldn't
work for games in which each player needs to see information that
should be hidden from the other player, such as your hand in Poker
(or any multiplayer card game, for that matter).
<P>
The configuration in Figure 17.2 shows a two-player game implemented
through some type of network connection between the two machines.
There are two computers and therefore two separate instances of
the game. Although two instances of the game are running, they
effectively operate as one. Notice that there is some form of
communication between the two computers across the network connection.
This is the communication you must implement to keep the two games
operating in conjunction. Fortunately, as you'll learn tomorrow,
Java provides a lot of the functionality of establishing and maintaining
a network communication channel between players.
<H2><A NAME="GamingontheInternet"><B><FONT SIZE=5 COLOR=#FF0000>Gaming
on the Internet</FONT></B></A></H2>
<P>
Multiplayer games that can run together on different machines
also are known as <I>network games,</I> which means that the games
are capable of enabling multiple players to connect with each
other and play interactively over an external connection between
their respective machines. In the case of network Java games,
the external network connection is handled through the Internet.
<P>
<I>Network games</I> are multiplayer games that can run together
on multiple machines.
<P>
Even though the ultimate communication medium for network Java
games is the Internet, you have to contend with the fact that
different game players will access the Internet in different ways.
Actually, there are really only two Internet connection scenarios:
dedicated and dial-up. A dedicated Internet connection involves
a computer being directly connected to the Internet via a direct,
high-speed line such as a T1 connection. Actually, slower dedicated
lines are available, such as 28,800 baud, but they aren't as popular

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -