[技术][讨论]3D MMORPG 服务端讨论

52 views
Skip to first unread message

Michael

unread,
Dec 20, 2009, 8:36:40 PM12/20/09
to pon...@googlegroups.com
hi guys,
   这里面有对游戏服务端架构,设计有研究的吗?愿与之交流!
  最近在研究游戏服务端,其实算不上研究,尽管服务端代码不多(almost 10w lines),感觉是一头雾水!也许还是水平不过!


--
-- ----
 此致,
敬礼!
-----
Michae Zhou

L4

unread,
Dec 23, 2009, 4:49:32 AM12/23/09
to TopLanguage
这里有篇文章希望有用
http://hi.baidu.com/motadou/blog/item/82b21545a25cf645500ffe55.html
另外,文章中提到的那个mangos项目是个开源的,用来学习也还不错,起码比一些二流游戏公司的代码看起来舒服。

qing yin

unread,
Dec 23, 2009, 9:23:24 AM12/23/09
to pon...@googlegroups.com
再推荐你一个 arcemu

2009/12/23 L4 <sunzh...@gmail.com>

Qinglan

unread,
Dec 24, 2009, 10:56:58 AM12/24/09
to pon...@googlegroups.com
我不知道为什么转贴的人会起了个“百万级。。。”的名字

我从来就没有做出过百万级在线的项目,也没有提到过百万在线这个概念

那一系列文章也只是在一段空闲期里,对之前所做工作的一点总结,仅能作个参考


2009/12/23 qing yin <qing1...@gmail.com>



--
读万卷书,行万里路

孙卓识

unread,
Dec 24, 2009, 9:43:27 PM12/24/09
to pon...@googlegroups.com
哈,不好意思,误人子弟了
居然还把作者都引来了--
正好,以后交流更方便了:)


2009/12/24 Qinglan <helloq...@gmail.com>

Michael

unread,
Dec 24, 2009, 10:12:05 PM12/24/09
to pon...@googlegroups.com
一般服务端都会有客户端地图的一个镜像,最近在弄这个,
地图格式比较复杂,很多地方看想不明白,一头雾水!
比如地图结构组织,场景上物品(一般简化为一个长方形)等
有经验的同学,给点设计思路与建议!

2009/12/25 孙卓识 <sunzh...@gmail.com>

wang carl

unread,
Dec 24, 2009, 10:37:03 PM12/24/09
to pon...@googlegroups.com
可以分析一下客户端地图格式的。

首先是地图打包,一般客户端都会打包,要排除包格式干扰。

其次是地图格式,简单的地图格式是线性存储,比较简单,也非常常见。
在每个种属性之前,都会有一个标记(比如一整型),这个标记之后,就是这个字段的内容。

看一下从地图文件读取及向地图文件写入的地方,应该就明白了。
也有一些游戏地图用自己的序列化方式去做的,就得了解一下怎么序列化的。

服务器应该要去掉客户端很多东西吧,贴图,模型……留下阻挡点,包围盒什么的……导出成服务器关心的格式……

这方面研究不多,也想听听更多的意见。

PS: 向LF敬礼!Small world!


2009/12/25 Michael <zhong...@gmail.com>

Qinglan

unread,
Dec 25, 2009, 9:10:17 AM12/25/09
to pon...@googlegroups.com
如楼主所说,游戏的服务器确实并不复杂,不会超过10w行代码,而且现在游戏服务器端也都逐渐开始引入混合编程模式,大量的使用脚本来实现游戏逻辑,这样真正要写的代码就更少了

我也是从看别人的代码开始了解服务器编程,也知道一个经过很多人修改过的服务器代码是多么的难看 :)

我觉得,如果只是单纯的看代码会比较头疼,可以尝试着在代码上打断点调试,跟踪函数调用过程,比如在移动消息处理里,基本上就能找到地图有关的逻辑了,比如碰撞检测。不管是2D的占位格还是3D的碰撞mesh,原理其实都不复杂。顺着怪物的移动往上走,就能找到寻路有关的AI算法实现。技能的逻辑实现一般不会有太复杂的算法,就是一个顺序流程的处理,物品也是一样,交易等重点会在安全性的保证上。

底层的模块,如网络,数据库,定时器,属性同步,事件等,在用到的时候去了解,先从接口功能入手,这样可能会简单一些。

另外,不要纠缠于每个类的实现,不要具体细化到每个变量每个函数是干什么用的。只有在跟踪代码的过程中才去了解这些,这样熟悉起来会更快一些。

可以尝试一下 :)

谢谢楼上知道我名字的兄弟,敬礼就不需要了吧,呵呵。small world. 只是我从你的mail地址上没能看出来你是谁,非常抱歉


2009/12/25 wang carl <superw...@gmail.com>



--
读万卷书,行万里路

wang carl

unread,
Dec 25, 2009, 9:34:41 AM12/25/09
to pon...@googlegroups.com
回楼上,不好意思,我说的是“
sunzh...@gmail.com
不过都在这个邮件列表里,也问个好。

2009/12/25 Qinglan <helloq...@gmail.com>

Qinglan

unread,
Dec 25, 2009, 9:53:24 AM12/25/09
to pon...@googlegroups.com
不好意思,我名字简称也是LF,误解了 :)

2009/12/25 wang carl <superw...@gmail.com>



--
读万卷书,行万里路

wang carl

unread,
Dec 25, 2009, 10:21:27 AM12/25/09
to pon...@googlegroups.com
Small World!!

2009/12/25 Qinglan <helloq...@gmail.com>

L4

unread,
Dec 28, 2009, 8:33:40 PM12/28/09
to TopLanguage
嘿 真巧
这个圈子还真是太小了
我们要向作者敬礼哈

On 12月25日, 上午11时37分, wang carl <superwang...@gmail.com> wrote:
> 可以分析一下客户端地图格式的。
>
> 首先是地图打包,一般客户端都会打包,要排除包格式干扰。
>
> 其次是地图格式,简单的地图格式是线性存储,比较简单,也非常常见。
> 在每个种属性之前,都会有一个标记(比如一整型),这个标记之后,就是这个字段的内容。
>
> 看一下从地图文件读取及向地图文件写入的地方,应该就明白了。
> 也有一些游戏地图用自己的序列化方式去做的,就得了解一下怎么序列化的。
>

> 服务器应该要去掉客户端很多东西吧,贴图,模型......留下阻挡点,包围盒什么的......导出成服务器关心的格式......


>
> 这方面研究不多,也想听听更多的意见。
>
> PS: 向LF敬礼!Small world!
>

> 2009/12/25 Michael <zhonglia...@gmail.com>


>
> > 一般服务端都会有客户端地图的一个镜像,最近在弄这个,
> > 地图格式比较复杂,很多地方看想不明白,一头雾水!
> > 比如地图结构组织,场景上物品(一般简化为一个长方形)等
> > 有经验的同学,给点设计思路与建议!
>

> > 2009/12/25 孙卓识 <sunzhuo...@gmail.com>


>
> > 哈,不好意思,误人子弟了
> >> 居然还把作者都引来了--
> >> 正好,以后交流更方便了:)
>

> >> 2009/12/24 Qinglan <helloqing...@gmail.com>


>
> >> 我不知道为什么转贴的人会起了个"百万级。。。"的名字
>
> >>> 我从来就没有做出过百万级在线的项目,也没有提到过百万在线这个概念
>
> >>> 那一系列文章也只是在一段空闲期里,对之前所做工作的一点总结,仅能作个参考
>

> >>> 2009/12/23 qing yin <qing1952...@gmail.com>
>
> >>> 再推荐你一个 arcemu
>
> >>>> 2009/12/23 L4 <sunzhuo...@gmail.com>

Reply all
Reply to author
Forward
0 new messages