摘要
网络游戏开发是一项很大的工程,需要很多综合性的知识。这对于刚刚入门的开发者来说很难理解。本论文从研究开发一个模仿泡泡堂网络游戏的例子出发,讲述网络游戏开发中用到的一些最基本的知识和设计思想,使大家清晰的理解〖本文来自:毕业设计论文网www.paper51.com〗游戏开发的过程。
整个设计中利用java中的swing编程,结合游戏的操作流程,对整个游戏进行精心的设计和大量的测试,实现游戏软件服务器端和客户端的开发,为玩家提供一个友好美观的操作界面,并添加聊天等功能以增加玩家之间的互动性,此外实现了可编辑场景地图的功能,使得游戏内容的更加丰富,玩家交互性更好,确保了游戏更具有趣味性、灵活性,以满足玩家对这款网络游戏的要求。
关键词:消息传输;java-swing;网络游戏;线程;场景
TheDesignandImplementationof“PaoPaoTang”NetworkGame
Abstract
Networkgamedevelopmentisabigprojectthatrequiresalotofintegrationofknowledge.Itisdifficulttounderstandforbeginnerinthisfield.ThisthesisbaseontheresearchanddevelopmentofaGamenamed“PaoPaoTang”,asanexample,itdescriptthedevelopmentoffundamentalknowledgeandtheorywhendesignanetworkgame,sothatwecanmoreclearlyunderstandthegamedevelopmentprocess.
Thewholedesignusesthejava-swingprogramming,combineswiththeoperationofthegame,designstheentiregameanddoesnumeroustests,realizethegamesoftwarerunningatserverandclient,provideafriendlyandaestheticallypleasinginterfaceforplayers,andaddchatfunctionstoincreasethecommunionbetweentheplayerseachother.Inadditiontodesignsthescenemapeditingfunctionstomakethegameforrichercontentandbetterinteractivewithplayers.Finallytoensurethatthegameismorefunandflexibilityitcansatisfythenetworkgamerequirementsforplayers.
Keywords:messagetransfers;java-swing;networkgame;thread;scene
在2004年全世界最火爆、在线人数最多的网络游戏,不是《传奇》、《奇迹》等深受欢迎的传统MMO,也不是《梦幻西游》、《剑网》、《巨商》等一大批后起之秀,而是盛大旗下的一款休闲游戏—《泡泡堂》。
《泡泡堂》是韩国第一人气网络游戏,拥有多达2500万的注册用户。它以简单趣味征服玩家。有专家将玩家区分为临时玩家、中间玩家和忠实玩家三类。而《泡泡堂》的服务对象大部分都是临时玩家。对于这一概念的定义为:年龄层从10岁〖本文来自:毕业设计论文网www.paper51.com〗到20岁甚至35岁左右,每天平均游戏时间约为2小时,希望选择可以即刻得到结果、界面简洁的游戏。临时玩家是互联网娱乐初级阶段的玩家层,对数字娱乐有一定渴望,对上手较难的游戏有畏惧感。他们比忠实玩家要更广泛,而且还是最有开发价值的目标人群。有资料统计,在美国临时玩家和忠实玩家之间的比例大约是50:1,在中国这种差距可能会更高。
而休闲游戏恰恰抓住了这些临时玩家对互动娱乐的需求。休闲游戏简单轻松,趣味十足,临时玩家们在短时间内就可获得游戏所带来的互动趣味和成就感。这些其实是休闲游戏成功的最大法宝。开发商非常清楚的认识到了这一点,他们以红白机的《炸弹人》作为原形,针对市场开发出了《泡泡堂》。使游戏操作简单,极易上手,富有乐趣,充分吸收了《炸弹人》的诸多优点。在保留精髓的同时,《泡泡堂》还开发了一些有创意的玩点,加入一些很有影响力的娱乐元素(Avatar),使产品线更丰富,满足了临时玩家多方面的互联网娱乐需求。
本课题研究的意义
本课题以开发该游戏为平台,综合运用网络编程,数据之间的通讯,程序中算法的实现,线程的分配,程序运行中的内存使用情况的控制等。通过这些技术的综合运用,更深入的了解计算机程序方面的相关知识,熟悉游戏开发的理念和流程,了解整个游戏项目开发的关注点。
该课题属于研究性的一个课题,不考虑商业上的应用。只是对技术研究的并不是游戏本身的娱乐性。
本程序需要解决的主要问题:
1.游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不〖本文来自:毕业设计论文网www.paper51.com〗久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。
2.网络计算机之间的数据通讯:用socket进行编程,同时由于对人同时游戏,要尽量减少网络数据的传输量,提高传输效率,防止堵塞。
3.算法的设计:算法是游戏的核心,要设计很好的算法,提高游戏运行的效率,运行速度要高,并且资源占用的要少。
4.线程的控制:由于涉及到对个玩家,并且要即时的将数据进行网络传输,因此可以用多个线程来并发执行这些操作。线程之间的同步和调度上要很好的控制。
5.双缓存:在图片之间相互调用转换时,图像的画面要流畅,不能有停顿和闪烁
6.游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,这里使用了QQ堂游戏里的一些截图来美化界面,同时对解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。
以上相关技术细节和整体流程将分别在以下小节阐述。
系统设计
本游戏开发采用C/S结构,分为服务器端和客户端两部分。
处理流程
服务器端主要处理各个客户端发过来的消息(Message),并根据消息的类型,对消息进行不同的处理,然后将处理后的消息转发或者直接转发消息到所有玩家。
客户端则监听用〖本文来自:毕业设计论文网www.paper51.com〗户的输入动作,包括键盘和鼠标动作,对于不同的动作做不同的处理,并根据玩家动作的类型,把所有信息封装为一个消息的实体(Message),然后发到服务器端。同时要监听服务器端的回复过来的消息当收到一个新的消息,将对消息进行解析,根据消息的类型作不同的处理,从而改变游戏场景或者状态等。
目录
论文总页数:21页
1引言1
1.1课题背景1
1.2泡泡堂游戏简介1
1.3本课题研究的意义1
2开发的环境及相关技术的介绍2
2.1开发环境2
2.2JAVA语言的特点2
3需求分析2
3.1游戏的操作流程2
3.2应该解决的问题4
4系统设计4
4.1处理流程4
4.2数据流5
4.3部署方案6
5系统实现6
5.1代码结构6
5.2公共类的介绍7
5.3服务器端的开发8
5.4客户端9
5.4.1模块设计9
5.4.2游戏入口程序10
5.4.3登陆10
5.4.4游戏大厅11
5.4.5对战场地13
6测试18
结论19
参考文献19
致谢20
声明21