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       SDL_net (http://www.libsdl.org/projects/SDL_net/ )
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:
 http://www.rakkarsoft.com/raknet/downloads/RakNet.zip
 
关于RakNet的设置方式,我们将在下一篇讲解。
关于更多内容请访问金桥科普网站( http://popul.jqcq.com  )游戏开发栏目,如你需要游戏开发方面的书籍请参考金桥书城游戏频道(http://book.jqcq.com/category/1_70_740.html )。 如果你在阅读本篇文章时有什么好的建议请来信给我,我的E_mail: akinggw@126.com. 如果你在使用SDL时有什么问题,请到金桥科普网站(http://popul.jqcq.com  )游戏开发栏目,我将详细地为你解答。

C# Socket编程笔记

看到这个题目,是不是很眼熟?在博客园里搜下,保证会发现关于这个东东的文章实在是太多了~~~真得是没有写得必要,而且我也有点懒得去琢磨字句。(看到这,肯定得来个转折的了,不然就看不到下文了,不是吗)但是...

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

2D网络游戏开发(网络篇)(三) 作者:akinggw 在前面的章节中,我们已经讲解了Raknet是什么,如何在DC中配置Raknet,并测试了我们的第一个程序。在这一篇中,我们将讲解Raknet的函...
  • akinggw
  • akinggw
  • 2006年06月22日 11:35
  • 2156

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

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

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

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

3D网络游戏开发实践

  • 2010年05月26日 10:50
  • 182KB
  • 下载

Unity3D游戏开发之网络游戏服务器架构设计培训(如何做一名主程)

如何做一名好主程

Android网络游戏开发实战.part2

  • 2017年06月08日 12:56
  • 54.3MB
  • 下载

FSM:网络游戏开发中的有限状态机(实践篇)

上一篇文章《FSM:网络游戏开发中的有限状态机(理论篇)》中,讲解了FSM的基础知识。这里,我结合图形及具体例子,讲解下FSM在实际开发中的运用。 首先,图解下上篇文章中提到的各种action。 1....

cocos2d-x 开发网络游戏(http post&socket)

猴子原创,欢迎转载。转载请注明: 转载自Cocos2D开发网--Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=274 最近开发...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2D网络游戏开发(网络篇)(一)
举报原因:
原因补充:

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