请教高手:如何实现多人网络游戏的服务器的搭建

mattheww 2004-08-23 09:42:04
最近我们想把我们以前做的一个网络游戏改成多人进行的(以前的只能两人对打,主要是没有专门搭建一个服务器,是用其中一方来充当的服务器),现在准备实现多人参与的网络游戏,就需要搭建一个专门的服务器 ,请问如何搭建,怎样配置
谢谢
...全文
357 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
miaoliujun 2005-07-20
服务器是什么?手机吗?
假如不是,你就不要考虑效率了,那边你就是转到数据库中去,只要程序写的好,时间都比传输和手机处理的时候少的多。
服务器端没有什么好搭建的,你要搭的好,可以采用多层框架,模式;搭的不好简单的servlet也可以。
回复
xueyong1203 2005-07-20
服务器端一味采用ArrayList不太好吧

ArrayList虽然比Vector效率高,可是ArrayList的实现是抛弃了同步,而Vector也正是因为每一次操作都要进行同步也就是加锁解锁这么一个过程所以才效率相对较低的,所以个人认为在某些需要同步的情况下还是需要使用Vector,不必一味追求效率~~

举一个小例子吧,比如小型游戏可以有十个玩家同时在线,每一个玩家都要分配一个唯一的ID(0--9),当玩家离开游戏时归还这个ID,所以这时可以采用Vector unUsedID = new Vector(10);

如果用的是ArrayList,假设某一时间内同时有多个线程访问这个ID列表,有的是申请ID,有的是归还ID, 则很有可能会导致错误发生,而使用Vector则确保同一时刻最多有一个线程在访问它,就可以避免发生此类问题
回复
sbamdanb00 2004-08-26
通过socket就可以了,不过我怀疑它的实时性,正常情况下socket要1.5秒的延时,人多时这个数不止
回复
yg1982 2004-08-24
只需要写相应的服务器端程序就可以实现。
具体方法是:
一:在服务器端进行监听,响应客户端的连接并用ArrayList存储相关信息。(本来对Vector稍微熟点,但据说Vector在效能上不好)
二:将客户端传来的数据进行广播通信(可以是经过处理后的数据)。在传统的网络游戏中(如传奇),其客户端画面是靠服务器端传来的数据控制(自己角色的基本动作除外),客户端所进行的任何操作都只是向服务器端发送数据.

建立游戏服务器可以先看看聊天室服务器的实现,<<java2游戏程序设计>>与<<java游戏编程>>也有相应介绍。
回复
相关推荐
发帖
J2ME
创建于2007-09-28

1.3w+

社区成员

Java J2ME
申请成为版主
帖子事件
创建了帖子
2004-08-23 09:42
社区公告
暂无公告