网络游戏的地图应该怎么搞?(100分)

  • 主题发起人 主题发起人 战鹰
  • 开始时间 开始时间

战鹰

Unregistered / Unconfirmed
GUEST, unregistred user!
最近要搞一个网络游戏,涉及到地图的问题,想向大家请教一下!
在游戏中打算采用棋盘式的地图,
地图大概应该可以分为两种:
1、互斥的地图,在地图上的任何物体,如树木、房屋、墙壁、人物等都是相互排斥的。
2、可共容地图,在地图上的部分物体是可以共容的,比如战舰,飞机等!

前者还是比较容易实现的,就是一个两纬数组就可以了。后面这个呢?总不能用三维数组吧!
我的想法是还是采用两维数组,但每个两维数组里面放的是一个一维变长数组对象类,不知道
这个办法是否可行?

或者您还有更好的办法,也请谈谈!


 
2 可以用3D建模工具制作模型,用DELPHI读入。
 
这里考虑的主要的是两个方面:
1、存储体积小,因为为了检索方便必须能够放在内存里面
2、检索起来速度要快,而且效率要高,且数据的变化比较快

在服务器端应为往往要同时处理几十个物体对象的数据,所
以不可能搞成一个一维数组然后进行检索,这样的程序同时
处理几百个或许没问题,但要在一台服务器上处理数万个物
体,且其中有30%是游戏玩家的情况下就有困难了!

所以我觉得可以采用我上面所说的方式!这样检索起来就比
较容易了,客户端只需要传递要攻击目标所在的格位坐标,
程序就可以很容易的从该坐标数据获得处于该坐标的物体属
性。好处是不需要动态的建立索引也不需要排序!
 
但是在这一格里可能有多个物体,你怎么确定要攻击的是哪一个呢?
我想还是要做成3维的。如果嫌定长的3维数组浪费空间,可以做2维数组,
每个元素是一个指针指向一个列表
 
这就要具体情况具体分析了!关键看游戏的机制是什么样的!也许需要将杀伤力分散!
也许需要根据具体的坐标来判断杀伤!也就是说游戏中的物体出了棋盘坐标以外还有绝对坐标!
这样棋盘坐标就变成了索引!
 
多人接受答案了。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部