找回密码
 注册
X系列官方授权正版
搜索
楼主: Cesrate

KSP再度逆天,NASA喷气推进实验室一半人在玩的游戏

[复制链接]
发表于 2013-6-26 12:48:50 | 显示全部楼层
本帖最后由 TimChen 于 2013-6-26 12:52 编辑
bxht1990 发表于 2013-6-25 18:42
啊。。我的一句牢骚话竟然引发了一阵关于游戏引擎的讨论。。。

我不懂游戏引擎,但是我感觉现在这个游戏的 ...


你说的调高衔接的强度和把整个火箭作为整体去计算,其实这个机制比现在这种方式在开发上容易很多,现在的这种部件单个计算肯定是为了更加真实的目的出发的。

关于加强筋的确有点鸡肋,如果能提供衔接部位衔接强度调整功能,调高强度的代价就是这个部位的零件重量增加就完美了。


还有关于各种晃,我猜测(纯属猜测),在Unity中物理引擎计算用的数据类型是float(单精度浮点数),这个类型的优点之一是内存占用少,缺点就是精度低,可能在做一些计算时由于进度上面的问题导致了计算误差,以至于舰体晃动。
回复

使用道具 举报

发表于 2013-6-26 13:09:39 | 显示全部楼层
TimChen 发表于 2013-6-26 12:48
你说的调高衔接的强度和把整个火箭作为整体去计算,其实这个机制比现在这种方式在开发上容易很多,现在的 ...

很有可能,最简单的例子是,一个不用支架固定的火箭竖直摆放在发射台上,静置一段时间后就会发现它自己晃了起来,甚至可能莫名其妙的就倒了。我不认为目前KSP模拟了随机变化的阵风,个人感觉完全就是物理模拟上的精度误差带来的扰动逐渐发散后导致的。
回复

使用道具 举报

 楼主| 发表于 2013-6-26 15:06:52 | 显示全部楼层
HoneyFox 发表于 2013-6-26 13:09
很有可能,最简单的例子是,一个不用支架固定的火箭竖直摆放在发射台上,静置一段时间后就会发现它自己晃 ...

这个,确定不是因为火箭底部各引擎不在一条水平线上挤压导致的么……用直棒型火箭测试发现摆动幅度维持在0.03度左右……
回复

使用道具 举报

发表于 2013-6-26 15:42:22 | 显示全部楼层
Cesrate 发表于 2013-6-26 15:06
这个,确定不是因为火箭底部各引擎不在一条水平线上挤压导致的么……用直棒型火箭测试发现摆动幅度维持在 ...

就是个一根棍子没有捆绑助推器的构型。。。
回复

使用道具 举报

发表于 2013-6-26 19:53:55 | 显示全部楼层
本帖最后由 8749236 于 2013-6-26 22:37 编辑
TimChen 发表于 2013-6-26 12:42
哈哈哈,前面的就不回复了,我就回复最后一个ADD,哈哈哈,祝你考个好成绩。 ...


考完了~
继续~
不过呢~挂科预定!

*** Add ***

HoneyFox 发表于 2013-6-26 13:09
很有可能,最简单的例子是,一个不用支架固定的火箭竖直摆放在发射台上,静置一段时间后就会发现它自己晃 ...


可以考虑增加一个误差检测。
原先我曾经把我以前做的游戏里所有的计算用数值都改成用float。只在刷新屏幕时才整合到系统要求的整数。
虽然没有静止状态下晃动累计的问题。不过在移动时是有一些轻微的晃动,虽然很小,但很频繁,能晃瞎眼的说>_>
没换到float之前则没有,不过没换之前运动十分的僵硬……例如运动方向和指向不一致这类情况十分常见……


*** Add ***


bxht1990 发表于 2013-6-25 18:42
啊。。我的一句牢骚话竟然引发了一阵关于游戏引擎的讨论。。。

我不懂游戏引擎,但是我感觉现在这个游戏的 ...


可以做到。
而且十分简单。
不过那样的话就没法实现例如火箭受力弯曲。或者结构强度不足而出现一些灾难性后果这些情况了。
因为你把整个物体组合出的火箭当作一个整体来看。
一个整体之间是没有相互的作用力的。(在程序里)只有一个整体与一个整体有作用力。

*** Add ***
居然没挂科……不科学啊!!我考试前都没复习呢!


*** @TimChen ***
“还有你有没有注意到假如你一个火箭200个零件会卡,你把10枚20个零件的火箭放在一起,只要不接触他们就不卡了,这个我也在Unity做了测试,上面说到的10*20*5=1000立方体在一起会卡,我把它拆开成10*5*1=20堆放,分开不接触堆放20个,机器就不卡了,这也就说明Unity的物理引擎在大规模处理中能力的确不行,大量的小规模处理表现很优秀。”

这个,我一直在想。
会不会计算过程是这样的。
假设一个火箭有5个部件相互叠加。
1-2-3-4-5
每次运算时,先算1的力,然后再计算从1传递到2的力,2到3,3到4,4到5……累加
然后算5的承受力,4的承受力,3的承受力,2的承受力。
算回馈力,各种各样的……
每个关联都算一遍这样呢?
虽然不多,但是要注意的是这些计算是以每秒几十次的速度运算的……还不能有延迟。

如果是这样的话,当部件增加一个的时候增加的计算量可不止是双倍那么简单了……


*** Add ***
Dev将来应该会调试下物理特性的。
当前的物理特性很明显没有经过调试的说。
例如静止于地面时的稳定性。
在那种情况下所有的力应该都等于0除了Fn和Fg。(不包括风)。但Fnet也应该永远等于0.
这应该是测试时的一个标尺。
不过不知道什么原因,这个标准没达到。可能是因为Dev想的是能工作就行了。毕竟从整体上来看,对游戏的进行和开发,并没有太大的影响。而且大部分导致的问题都是Minor的,可以避免的,而且Dev在开发时估计根本做不到会导致Bug出现的程度,所以,Dev就放缓了这方面的调试了吧。
回复

使用道具 举报

发表于 2013-6-27 12:37:30 | 显示全部楼层
8749236 发表于 2013-6-26 19:53
考完了~
继续~
不过呢~挂科预定!

祝贺你不挂科。


你说的那个1到5传来传去,非常有这个可能性,不过应该内部的工作原理会复杂很多,本人还没能力侵入Unity使用的Physics引擎内部一探究竟,我也无法确定KSP的火箭链接使用的是Fixed Joint还是Configurable Joint,或者他们重新编写的。
回复

使用道具 举报

发表于 2013-6-27 23:16:40 | 显示全部楼层
TimChen 发表于 2013-6-27 12:37
祝贺你不挂科。

谢谢……

and。你可以试着做一个演示程序。
用不同的算法,掐运算时间。
将数量设置与你的KSP里会卡的火箭的部件数量一样。
虽然会有点误差吧,而且还是个本办法,但应该能试出来。前提是你想的话。我还没入坑UT3D呢。我才刚入坑DX9……
回复

使用道具 举报

发表于 2013-6-28 08:56:34 | 显示全部楼层
8749236 发表于 2013-6-27 23:16
谢谢……

and。你可以试着做一个演示程序。

我也刚入 UT3D的坑,所以很多还不会啦,呵呵呵。从一个坑跳出来进入另一个坑,到处都是坑,大坑套小坑。
回复

使用道具 举报

发表于 2013-6-28 09:22:05 | 显示全部楼层
TimChen 发表于 2013-6-28 08:56
我也刚入 UT3D的坑,所以很多还不会啦,呵呵呵。从一个坑跳出来进入另一个坑,到处都是坑,大坑套小坑。 ...

放心啦,我的D3D坑比较小~很快就会来和你一起坑UT3D的>=D
回复

使用道具 举报

发表于 2013-6-28 09:53:34 | 显示全部楼层
UT3D的坑怎么看也不可能比D3D的坑大啊。。。D3D那里水太深了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|DeepTimes.NET 太空游戏站