游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3980|回复: 7

求开发思路-捕鱼达人类游戏的网络版

[复制链接]

1

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2012-8-24 10:06:00 | 显示全部楼层 |阅读模式
公司要做一款多人捕鱼类的游戏,客户端是flash版的。

现在兄弟的问题是,鱼的运动轨迹由服务器端给出,当客户端发射子弹后,服务端如何去计算碰撞检测,如果每单位时间遍历所有对象,实在是不太现实,开销巨大啊。。

急求开发思路,多谢了!

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2012-8-24 11:53:00 | 显示全部楼层

Re: 求开发思路-捕鱼达人类游戏的网络版

如果是这样呢?随便画了个草图,不知道能不能表达清楚。


1

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2012-8-24 13:32:00 | 显示全部楼层

Re:求开发思路-捕鱼达人类游戏的网络版

没太明白您的意思,呵呵。

我现在的需求是,炮弹和鱼都在按不同的速度和方向运动,炮弹射出后,碰到鱼会炸开,没碰到鱼则继续走,而且炮弹的速度也不是特别快,不是瞬间就能打穿屏幕的。

我现在需要判断什么时候炮弹会击中哪几条鱼,还不想在服务器端写每几十毫秒遍历所有鱼和炮弹位置的那种。。。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2012-8-24 13:58:00 | 显示全部楼层

Re:求开发思路-捕鱼达人类游戏的网络版

首先,鱼的速度以及它的变化路径可以预先计算出来,比如:经过A->B->C位置

然后,子弹的路径和飞行速度也是已知,

那么,我在Time1发射的子弹,物理时间Time2所处的位置也是能预先算出来的,假设Time2在C位置

那鱼到达C位置的时间轴与子弹的Time2是否重叠,那就可以作为命中判断,

接下来要做的是前端(flash动画)表现一个子弹飞行,然后打中目标的过程,

可以理解为,在用户按下发射的消息到达服务器的时候,两秒后飞行子弹命中结果已经产生。

1

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2012-8-24 14:38:00 | 显示全部楼层

Re:求开发思路-捕鱼达人类游戏的网络版

我开始的思路也是这样的,但仔细想了下,有两大问题

1 所有对象的速度,路径曲线,方向都是已知的, 但很难通过一个公式算出炮弹和鱼在什么时间会碰撞, 只能是遍历所有时间单位 或 遍历所有炮弹经过的点, 然后判断当前炮弹走过此点时的时间,判断画面上其他对象有没有在此时间点经过此点的。。但对象数量太多,一局里4个玩家,上百条鱼。。会死人的,呵呵

2 我确实很想在发射炮弹的时候全计算出来结果,我们之前很多其他游戏都是这么做的,服务端算好,客户端再模拟。。但这次似乎真不行,因为有的较远的鱼在你的炮弹发出后,可能追上之前,已经被距离较近的玩家打掉了。。。

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2012-8-24 14:46:00 | 显示全部楼层

Re:求开发思路-捕鱼达人类游戏的网络版

有点难度了,

预先演算好每次发射,然后服务器不立即返回,等时间点到了,如果这条鱼没被其他子弹打中,再返回数据,不过不知道数据通讯的方式,我对flash页游的机制不熟悉。

另外,如果真的很需要实时演算,那可能需要考虑下其他服务器机制,比如用更高效的C/C++服务器。

1

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
 楼主| 发表于 2012-8-24 15:10:00 | 显示全部楼层

Re:求开发思路-捕鱼达人类游戏的网络版

嗯,貌似只好如此了,呵呵。。

71

主题

1330

帖子

2585

积分

金牌会员

Rank: 6Rank: 6

积分
2585
发表于 2012-8-27 09:21:00 | 显示全部楼层

Re:求开发思路-捕鱼达人类游戏的网络版

为什么不是客户端算弹道,服务器验证正确性?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-27 19:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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