游戏开发是编程技术与图形 技术相结合的一种流行的技术。 电子游戏已经深入人们的日常生 活中,俄罗斯方块是个老幼皆宜 的小游戏,它实现由四块正方形 的色块组成七种不同的形状,通 过计算机随机生成。用户使用用 键盘控制四个方向,让方块翻转, 堆叠消除。本文论术了使用JAVA 语言, 在WINDOWSXP 系统下, 以 JCreater 为开发环境,进行网络 化、多平台,B/S 结构的可人人对 战的俄罗斯方块游戏的开发可行 性,编程方向及实现方法。 【关键词】JAVA 网络化对战 俄罗斯方块 B/S 1 前言 随着人们计算机应用水平的迅速提高,社 会生活中依赖于计算机解决的问题越来越多, 当然,也越来越复杂。游戏程序的开发也随着 计算机的发展在不断的进步。早期的8 位游戏, 到现在的32 位甚至64 位游戏,游戏的发展与 计算机的硬件发展密切相关。 2 游戏网络化 现在的游戏越来越多的倾向于网络化, 单机游戏的越来越少,而且很多单机游戏都提 供了相对应的联机对战或都联机合作功能,这 也是未来游戏的一个发展方向。 我们都知道现在流行的游戏几乎都是使用 C++、Visual Basic 等语言开发而成的,并且为 了创造出极佳的2D/3D 视觉与听觉效果,还 必须搭配具有特殊支持的硬件(3D 加速显卡) 和函数库(Microsoft DirectX、OpengGL)。那 么Java 语言呢?似乎它在游戏设计这方面并 没有如此强有力的支持。 话虽如此,但并不表示Java 就无法被用 来开发游戏,也许没有了特殊的软件硬件支持 将使得Java 在声光效果上不尽理想,但也正 因为如此而使Java 语言在游戏设计的其他方 面更具特色,如跨平台和可以能通过网络下载 执行,而这也是我为何选择Java 来编写游戏 的原因。 网络化,这是相当重要的一个特征,Java 在被设计时就是希望能跨越各种不同设备的 平台,而当Java 和因特网相结合后这个理想 就被完美地实现了。使用Java 编写的程序可 以轻易的通过因特网以及与Java 兼容的浏览 器来执行,这意味着无论你使用的系统平台是 Windows、Linux 是Mac OS,都可以通过因特 网来执行Java 程序,当然也包括Java 开发的 游戏。 这就是Java 语言“跨平台”特点所带的 好处,并且更值得高兴的是您无须了解各平台 的细节,只要使用正确的Java 语法设计程序, 就可以保证在所有支持Java 的平台上都可以 正常的运行,而使用C++、Visual Basicrn 所 开发出的游戏就没有这些优点。 使用基于B/S 结构开发的网络游戏还有 一项重要的特征,那就是不需要安装程序。你 只要确定你的网络联机正常就可以玩Java 网 络游戏了。 当然Java 在运行效率和声光效果的呈现 上的确只能做到可以接受的程度。然而只要是 创意非常独特,就可以用创意来加强游戏的娱 乐性,那么即使在目前有限的运行效率与声光 效果下使用Java 所开发的游戏仍然可以借助 因特网的威力风靡全球。 网络化人人对战俄罗斯方块游戏主要的 设计目标是使用B/S 结构实现一个即时在线的 多人对战的网络化游戏。程序开发中只是使用 了简单的网络构架并没有使用到多服务器分担 处理技术。 3 Java程序开发设计 Java 不仅提供了一个丰富的语言和运行 环境,而且还提供了一个免费的Java 开发工 具集(Java Developers kits, 简称JDK)。编 程人员和最终用户可以利用这些开发Java 程 序或调用Java 内容。而且还有丰富的第三方 JAVA 开发工具可用,例如JCREATER。 现今的游戏发展非常快,游戏的网络化 也是游戏发展的历史必然。开发网络化的人人 对战俄罗斯方块游戏也是大有人在的。我们的 开发目标为:1. 系统基 于B/S 结构;2. 实现基 于Internet 的联机功能; 3. 能够完成联机后的用 户显示;4. 可以进行人 人对战俄罗斯方块游戏; 5. 提供足够的冲突检测 及错误提示;6. 提供足 够功能的用户操作介面。 程序实现以上功能, 一定要选择一种可靠的, 对于网络支持全面的语 言开发环境。见于以上 分析,选用Java 作为网 络化人人对战俄罗斯方 块游戏的开发环境是可 行的。 使用Java 来开发, 可以达到真正的网络化, 完全不受系统平台的限 制。这也是选用Java 的 主要原因,如图1。 就现在的情况来看, 系统平台很难统一。在 这样的环境下,Java 这 种平台无关性的程序, 也正是现在所需要的。 网络化、跨平台的 人人对战游戏,正是设 计的主要目的。 要使用Java 作为网 络化人人对战俄罗斯方 块游戏的开发环境,主 要是考虑到跨平台的实 现,这是本身Java 的特 点,所以是完全可以实 现的。 服务器端的实现,设计服务器为支持多 人对战游戏。服务器应该可以提供多人的登录、 多人的消息发送。当两人游戏时建立唯一的消 息通信。 游戏服务器的实现,使用Swing 包来提 供标决的应用程序介面。设定一个固定的端口 用来提供用户端程序访问。使用Vector 向量数 组存储已经连接的客户变量。使用多线程技术 为每个连接到服务的用户分配一个线程,用来 侦听已经连接成功的客户端所发来的消息,收 到消息后进行消息转发。 网络传输协议使用了TCP/IP,TCP/IP 连 接使用Socket 技术实现。俄罗斯方块游戏本 身没有多少数据发送量,所以使用TCP 这种 有确认连接的网络协议,数据发送的可靠性高。 对于网络错误的信息交互以及网络相关的消息 确认相对于UDP 都比较容易实现。 服务器接收到的用户消息中包括 (1)用户的相关消息:主要包括用户的 登录成功消息、Socket 套接字连接发来的用户 消息、退出消息。 (2)用户游戏时的数据:包括每个用户 游戏时的自己的图形状态、每个用户发给胜利 方的失败消息。 (3)用户确认消息:用户之间申请游戏 的消息、用户之间的放弃对战消息,用户之间 同意开战的消息,用户退出游戏自己断开服务 器的消息。 (4)用户的错误消息:用户使用重名的 错误消息,用户非法断开服务器的消息。 客户端的实现使用applet。使用applet 程 序可以使用浏览器来下载和运行,合乎B/S 结 构的要求。 客户端应该有全面的人机交互的提示,可 以用使用Java Swing 中提供的图形用户界面类 中的方法来实现。但是没有必要创建Frame。 因为这样的话就失去applet 的特点了。多使用 按钮、输入栏,这些常见的交互方法来提供给 用户输入确认消息。 进行游戏时,客户端能显示自己的游戏 状态和对方的游戏状态,当满足相应条件时给 对方增加难度,并能给出胜负的提示。能够把 所有的消息发送给服务器,能够接收处理所有 服务器发来的消息。 使用了B/S 结构的优点。其一,基于B/S 结构的应用程序,客户端不需要安装,没有了 固定某个机器才能使用的现象。其二,B/S 结 构的系统更集中,对于用户的管理更加方便。 Applet 是Java 的小应用程序,它是动态、 安全、跨平台的网络应用程序。Java Applet 嵌 入HTML 语言,通过主页发布到Internet,在 支持Java 的浏览器中运行。由于Java 语言的 安全机制, Applet 生成多媒体的用户介面和 计算不必担心病毒的入侵。虽然Applet 可以 和图像、声音、动画等一样从网络上下载,它 可以接收用户的输入,动态地进行改变。 Java 还提供了丰富的类库,使程序设计 者可以很方便地建立自己的系统。,Java 对于 这种硬件要求不高的网络游戏开发是非常的合 适的。象Java 这种语言,开发的跨平台游戏 也是,游戏发展的一个方向。 参考文献 [1] 荣钦科技.Java2 游戏程序设计[M]. 北京 科海电子出版社,2005. [2] 艾力江.Java2 范例入门与提高[M]. 清华 大学出版社,2009. [3] 殷兆麟.Java 语言程序设计[M]. 高等教 育出版社,2010. 作者单位 抚顺市技师学院计算机应用科 辽宁省抚顺市 113123 |