游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2952|回复: 3

【讨论】通用的网络游戏的服务器端应该是什么样子的?

[复制链接]

3

主题

13

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2006-12-8 10:49:00 | 显示全部楼层 |阅读模式
    接触网络编程也有一阵子了,但是始终没有下决心写一个比较大的程序,其实也不是没目标,主要是没有头绪,打开Visio就一片茫然,因为虽然现在被迫"开源"的网络游戏服务器端也不少,但是由于开发的年代都比较早,用c的和用C式c++的比较多,使用现成的比较成熟的网络程序库以及类库的比较少......从头开始造车轮。
    现在想和大家讨论一下,假设可以把具体游戏的逻辑处理部分抽象成一个模块暂时不去管它的话,剩下的与具体游戏无关的部分应该有哪些特征,分成哪几个模块呢?
    下面说几个最容易想到的当作抛砖引玉,希望大家能够踊跃讨论:
      1.高性能的并发访问
               Windows下自然是使用IO完成端口,Unix和Linux暂时不是很熟,但是听说在Unix和Linux平台下异步IO不是很完善
      2.无须重新启动服务器端就可以灵活配置
      3.通用数据库支持
               使用一定模式的话支持具体数据库与通讯模块无关也不是很难
      
     暂时就想到这么多了,希望大家可以一起讨论,请不要灌水,谢谢大家 [em13]

1

主题

117

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2006-12-8 16:19:00 | 显示全部楼层

Re:【讨论】通用的网络游戏的服务器端应该是什么样子的?

其实没有什么传说中的通用服务器实现。如果没有完整服务器-客户端架构的长期完善准备,客观上基本不太可能。

21

主题

120

帖子

129

积分

注册会员

Rank: 2

积分
129
发表于 2006-12-8 16:31:00 | 显示全部楼层

Re:【讨论】通用的网络游戏的服务器端应该是什么样子的?

ACE,ICE,VCE,不知道是哪个开源来着,研究一下吧

149

主题

4981

帖子

5033

积分

论坛元老

Rank: 8Rank: 8

积分
5033
QQ
发表于 2006-12-9 10:41:00 | 显示全部楼层

Re:【讨论】通用的网络游戏的服务器端应该是什么样子的?

UNIX和Linux在服务器领域还是很成熟的,可以使用epoll,不过我推荐使用libevent(http://www.monkey.org/~provos/libevent/),它封装了各个平台下的select、poll、epoll、/dev/epoll、kqueue等接口,还是很不错的,不过听说因为使用的模型与iocp不同所以其中没有iocp。
关于windows和linux的网络方面性能的比较,可以看tarkey的这篇文章:
http://blog.csdn.net/tarkey/archive/2004/09/09/98947.aspx
关于网络开发库,我也找过很多,不过最后发现要么不好用,要么学起来太费力,最后还是自己封装了一个简单的(当然是结合libevent)。我觉得网络通信时使用Command模式+对象序列化就挺不错了。

动态配置,可以考虑动态链接库,也就是从动态链接库里载入类的实例。

数据库恐怕没法通用了,毕竟其中表的结构与具体的游戏逻辑有关了,与其使用配置文件来生成表,不如直接用sql来建表了。

以上是个人观点~  ^_^
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 00:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表