2D网络游戏开发(网络篇)(一)

原创 2006年06月22日 11:32:00
2D网络游戏开发(网络篇)(一)
 
作者:akinggw
 
“2D网游开发”,我有时都觉得这个标题包含的内容太多,要实现起来也太难。于是,我决定将它分门别类,我按照我要实现的一个网络游戏将它分成下面几个部分:
 
l       客户端
l       网络端
l       服务器端
l       网页端
 
我们来讲解一下,我们分别要在每个端口完成什么内容:
 
(1)            客户端 劈开接受网络数据不谈,我们主要在客户端实现游戏界面的显示,游戏界面又包括那些呢?比如,游戏地图的显示,精灵的显示,UI(用户界面)的显示,还有就是一些游戏规则的制定等等。
(2)            网络端 网络端我们要做些什么呢?我想主要包括两个方面:在服务器端,从数据库中取出数据,然后将数据发送给客户端,从客户端得到数据,然后更新数据库;而在客户端,我们要干些什么呢?从网络中取出数据,然后更新游戏变量,得到游戏变量,然后将它发送给服务器。这里,我只是谈了一下网络端的大概内容,实际中可能还要修改。
(3)            服务器端 服务器端的主要内容,我想就是和数据库打交道。因为我们是通过网站来注册用户,所以,服务器端的主要内容就是取数据库内容,更新数据库内容。可能会涉及到删数据库内容,但这不常见。
(4)            网页端 网页端实现的主要内容,我想大概就是用户的注册,修改,信息的发布,玩家的交流和互动。
 
我在这里大概讲解了2D网游开发开发所涉及的内容,可能这些内容会随着实际开发修改,再修改。
我想我制作的这个游戏客户端用SDL,网络端用Raknet,数据库用mySQL,网站制作用JSP。
这些内容可能不能算作一篇文章,我想叫心得还可以。当然,我也希望我的这些心得不会让你误入歧途。
既然这篇心得叫“2D网络游戏开发(网络篇)”,我就不会写上其它的一些内容,我会在这以下的文章中写我在使用Raknet的一些感受,同样,我希望它对你有用。
反正,我觉得它很有用。
 
下面,我们就开始吧!
大概在这半年时间里,我接触了3款网络引擎,它们分别是:
 
l       openTNL (http://www.opentnl.org )
l       Radnet (http://www.rakkarsoft.com )
三款网络引擎都是为游戏设计的,下面我来谈一谈我对三款引擎的看法。
OpenTNL 来自于Torque 3D游戏引擎,关于Torque 的信息,请访问 http://www.garagegames.com/ 。应该说openTNL是Torque 的一部分。可以跨平台运行,也有许多丰富的文档和教程,但它却有一个致命的弱点——使用过于复杂。因为Torque属于那种早期的游戏引擎,所以在OpenTNL中,很多的编码方式都与你所学的不同,你需要花费很多的时间去学习它。我想这也是为什么OpenTNL没有做过许多项目的原因。
SDL_net 来源于SDL,也是一个跨平台的网络引擎。SDL_net使用C语言写成,学习起来也简单明了,但SDL_net太年轻了,只发展了短短几年时间。因此,SDL_net还存在太多的BUG(错误),另外缺少足够的支持文件也是它发展缓慢的原因,毕竟,它太年轻了。
Radnet 可以说是基于上述两款引擎的优点为一体。它既有OpenTNL的文档丰富,又有SDL_net的使用简单。
在接下来的日子里,我们将讲解如何使用Radnet,让你充分享受网络给你的快感。
 
Radnet是一个基于UDP网络传输协议的C++网络库,允许程序员在他们自己的程序中实现高效的网络传输服务。通常情况下用于游戏,但也可以用于其它项目。
Radnet有以下好处:
 
l       高性能 在同一台计算机上,Radnet可以实现在两个程序之间每秒传输25,000条信息;
l       容易使用 Radnet有在线用户手册,视频教程。每一个函数和类都有详细的讲解,每一个功能都有自己的例程;
l       跨平台,当前Radnet支持Windows, Linux, Macs,可以建立在Visual Studio, GCC, Code: Blocks, DevCPP 和其它平台上;
l       在线技术支持 RakNet有一个活跃的论坛,邮件列表,你只要给他们发信,他们可以在几小时之内回复你。
l       安全的传输 RakNet在你的代码中自动使用SHA1, AES128, SYN,用RSA避免传输受到攻击
l       音频传输 用Speex编码解码,8位的音频只需要每秒500字节传输。
l       远程终端 用RakNet,你能远程管理你的程序,包括程序的设置,密码的管理和日志的管理。
l       目录服务器 目录服务器允许服务器列举他们自己需要的客户端,并与他们连接。
l       Autopatcher Autopatcher系统将限制客户端传输到服务端的文件,这样是为了避免一些不合法的用户将一些不合法的文件传输到服务端。
l       对象重载系统
l       网络数据压缩 BitStream类允许压缩矢量,矩阵,四元数和在-1到1之间的实数。
l       远程功能调用 
l       强健的通信层 可以保障信息按照不同的信道传输
RakNet支持两种版权,如果你是做免费游戏,RakNet将是免费的。相反,你必须支付一定的费用。
 
从这里你可以下载到最新的RakNet:
 
关于RakNet的设置方式,我们将在下一篇讲解。
关于更多内容请访问金桥科普网站( http://popul.jqcq.com  )游戏开发栏目,如你需要游戏开发方面的书籍请参考金桥书城游戏频道(http://book.jqcq.com/category/1_70_740.html )。 如果你在阅读本篇文章时有什么好的建议请来信给我,我的E_mail: akinggw@126.com. 如果你在使用SDL时有什么问题,请到金桥科普网站(http://popul.jqcq.com  )游戏开发栏目,我将详细地为你解答。

网络游戏开发(一)

第一人称局域网游戏
  • qq_33747722
  • qq_33747722
  • 2016年12月19日 22:30
  • 524

开发新一代的网游——前言

前言: 狭义的网游这里讨论的网游,是一个狭义的网游,不包括网上对战、休闲游戏以及回合制角色扮演游戏,只是指类似传奇、奇迹等网游,也就是所说的即时对战MMORPG(Massively Multiplay...
  • kekeyuyang
  • kekeyuyang
  • 2006年05月28日 09:01
  • 2317

那些游戏开发牛人的博客和IT学习网站

游戏大牛的博客 1.吴云洋(Cloud),网名云风,毕业于中南大学,原网易游戏核心成员、杭州研究中心总监,是网易《大话西游》、《梦幻西游》等游戏的重要开发者。2011年9月5日宣布已从网易辞职。 博客...
  • liulongling
  • liulongling
  • 2016年06月30日 12:38
  • 3075

游戏网络部分开发

一个多人在线的棋牌类网络游戏的项目临近尾声,我参与了该项目的整个设计流程,并且完成了90%的核心代码。关于这个项目,有很多地方值得聊一聊。本系列不打算把这个项目将得多么详细规范,那是设计文档应该描述的...
  • xu_haiqing
  • xu_haiqing
  • 2006年04月15日 21:59
  • 686

2D网络游戏开发(网络篇)(一)

2D网络游戏开发(网络篇)(一) 来源: ChinaUnix博客  日期: 2006.05.26 11:16 (共有0条评论) 我要评论 作者:akinggw“2D网游开发”,我有时都觉得这个标题包含...
  • Aaronzzq
  • Aaronzzq
  • 2011年04月07日 12:07
  • 950

cocos2d-x商业级单机游戏和网络游戏开发系列

引言 接触coco2d-x已经一年多了,期间陆陆续续开发了很多的游戏,包括单机的小游戏和网络卡牌游戏。cocos2d-x是一个快速发展的引擎,除了经常的主引擎的更新之外,社区内也经常涌现出新的插件,...
  • hhk20042005
  • hhk20042005
  • 2013年09月17日 13:14
  • 1832

2D网络游戏开发(网络篇)(四)

2D网络游戏开发(网络篇)(四) 作者:akinggw 在上一篇中,我们只是讲解了如何建立一个服务器或客户端。这一篇中,我们将讲解客户端如何和服务器进行连接。 #include "stdio.h" /...
  • akinggw
  • akinggw
  • 2006年06月22日 11:36
  • 1620

2D网络游戏开发(网络篇)(二)

2D网络游戏开发(网络篇)(二) 作者:akinggw在上一章中,我简单的讲解了什么是Raknet,它有那些好处。在这一章中,我们将讲解如何在IDE中配置Raknet,并将测试一个程序。由于Rakne...
  • akinggw
  • akinggw
  • 2006年06月22日 11:34
  • 2286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2D网络游戏开发(网络篇)(一)
举报原因:
原因补充:

(最多只允许输入30个字)