Questions tagged «simulations»

模仿现实世界的过程或系统。

3
如何使用动态波创建2D水?
新版《超级马里奥兄弟》拥有非常酷的2D水,我想学习如何创建。 这是显示它的视频。说明部分: 碰到水的东西会产生波浪。还有恒定的“背景”波。当摄像机不移动时,您可以在视频中00:50之后的恒定波中看到效果很好。 我假定飞溅效果与本教程的第一部分相同。 但是,在NSMB中,水在表面上也具有恒定的波浪,并且飞溅看起来非常不同。另一个区别是,在本教程中,如果创建了一个飞溅,它首先会在飞溅的起点在水中创建一个深的“洞”。在新的超级马里奥兄弟中,这个孔不存在或较小。我指的是玩家从水中跳入跳出时所产生的飞溅。 如何创建不断波动和飞溅的水面? 我在XNA中编程。我自己尝试过,但是我无法真正使背景正弦波与动态波一起很好地工作。 我不是在问“ 新超级马里奥兄弟 ”的开发者是如何做到这一点的,只是对如何重现这种效果感兴趣。

3
如何在程序生成的地图中确定海湾和海峡?
我有一个使用Voronoi单元程序生成的地图,其中包含定义的海平面和可信的高度图。 到目前为止,我已经成功地标注了某些地理特征:土地,海洋,湖泊,河流,河口,汇合处,山脉和生物群落。生物群落包括苔原,北方森林,草原和温带森林。那里还有其他一些生物群落,但就我的目的而言,它们现在并不重要。 我想标记下海湾和海峡,但我对如何正确执行此操作感到困惑。海湾是一条凹陷的沿海水域,直接与海洋相连。 海峡是自然形成的,狭窄的水路,连接了海洋的两部分。基本上,两片土地几乎相接,两岸都是海洋。也称为“渠道”。 为了确定功能,我可以按以下类型遍历任何功能: for each (var feature:Object in geography.getFeaturesByType(Geography.LAND)) // loop through lands for each (var cell:Cell in feature.cells) // loop through cells for each (var neighbor:Cell in cell.neighbors) // loop through a cell's neighbors trace(neighbor.hasFeatureType(Geography.LAND));

7
模拟游戏世界中大量实体的绝佳方法
假设您有一个游戏,其中有许多实体(许多)服务于某些功能,但并非总是需要或需要在每个框架中都考虑所有这些功能。我正在研究的具体问题是存在一个包括器官在内的人体的详细模拟。 在游戏中,每个生物都有自己的身体,身体分成较小的部分(躯干,腿等),有时这些部分包含器官,这些器官在体内发挥特定的功能。器官的当前用途或作用是未知的。毕竟,动物可能肚子空了,因此不需要消化任何东西。当您在世界上拥有许多生物时,检查或模拟每个帧中的每个对象将是非常荒谬的,而且成本很高。因此,我正在考虑一种巧妙地区分需要更新的对象和不需要更新的对象的方法。 我想出的似乎是至少可以的解决方案。它创建了一个简单的队列/堆栈(本质上是每个元素在读取后即被删除;顺序无关紧要),称为“注意堆栈”,其中需要模拟的对象驻留在该堆栈中。需要注意的对象将简单地放在堆栈上或由其他对象放在那里。这些对象可能会实现带有Simulate()函数的简单接口。 应用于我之前的消化示例,这将意味着: 玩家从清单中选择要吃的东西(假设是面包),并将其放入角色的口中,然后将口放到注意堆栈中。在下一帧中,将嘴从堆栈中取出,并调用其Simulation()函数。由于是嘴巴,因此在这里模拟咀嚼是合理的。这可能会持续几帧,在此过程中,嘴巴会不断将自身放到烟囱上,直到它决定可以吞咽食物为止。在这种情况下,嘴巴将嚼过的面包放进胃中(我知道它不会直接进入胃中,但是为了简化起见,食管被省去了),然后也将其放到注意堆栈中。在下一帧中,开始消化过程的模拟。其余的必要器官等等。 可以预见的问题是空转对象。熟睡的动物就是一个很好的例子。可以通过将熟睡的动物放在堆栈上并每次检查是否需要唤醒来完成上述操作,但这似乎很浪费,因为这是唯一要做的事情。为了使闲置对象更有效率,我计划添加一种时间表,以存储要在特定时间执行的作业。如果动物入睡,它将按照该时间表进行工作,该时间表将在动物入睡后的一定时间内进行。然后,这项工作将负责将熟睡的动物再次放到注意堆栈中。现在,您可以说不在注意力集中的睡眠动物可能会因为没有模拟AI而错过被某物攻击的机会, 现在,老实说,由于缺乏经验,我不知道这是否可以完美解决该问题。我接近可用的东西了吗?通常这是如何完成的,或者有人有什么建议或更好的解决方案?

7
是否有用于汽车发动机声音模拟的开源项目?[关闭]
我一直在思考如何为汽车创造逼真的声音。主要声音是引擎,然后是各种风,道路和悬架声音。 是否有用于引擎声音模拟的开源项目?简单地调高样本听起来并不太好。理想的选择是允许我选择发动机的类型(即inline-4 vs v-8),添加诸如涡轮/增压器啸叫声之类的附加功能,并最终设置负载和rpm。 编辑:类似http://www.sonory.org/examples.html

2
太空战斗模拟中光信息传播的建模速度
我正在研究一个太空战斗模拟游戏,该模拟游戏发生在相对广阔的区域(一个侧面的空间约20光分钟),并使用(主要是)逼真的物理学。我要建模的关键要素之一是信息在战斗空间中的传播速度-也就是说,如果玩家A在战斗空间的一侧接合主驱动器,那么玩家B看到它就会有20分钟的延迟,然后可以对此做出反应 考虑到速度,即使是相对较小的战斗空间,这也是一个重要因素。一艘500m长,速度为30kps的船将在十分之一秒的时间内位移自己的全长,因此即使瞄准对手,也只有十分之几秒的距离会受到光滞后的影响。 我以前从未见过这样做,我想知道是否有一些最佳实践来对此建模。现在,我要为每个事件加上时间戳,并标记一个位置,将其放入队列中,然后对每个刻度进行检查,以查看游戏世界中是否有任何对象刚在光锥的边缘,并添加事件到他们的传感器队列。我将(但尚未)通过删除所有可能感知到它的对象已经感知到的事件来对其进行优化,但是,我仍然认为这将使繁琐的工作变得非常麻烦,并且会吃掉很多东西如果有数百个感测物体在播放(这是很常规的),则周期为。 有没有应该更适合我检查的数据模型?

3
团队如何防止覆盖源文件中的工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 4年前关闭。 在我看来,有一种可能性,例如由多个人同时处理游戏引擎时,如何防止覆盖? 假设开发者一在工作,Audio.cpp而开发者二也在工作Audio.cpp,这在大型团队中通常如何进行管理以应对覆盖?(换句话说,要阻止开发人员2打开文件,直到开发人员1完成)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

7
汽车游戏中的变速箱实现
我正在尝试通过手动换档创建一个简单的汽车游戏。但是,我在实施换档时遇到了一些麻烦。 这是我当前的“汽车”代码: int gear = 1; // Current gear, initially the 1st int gearCount = 5; // Total no. of gears int speed = 0; // Speed (km/h), initially 0 int[] maxSpeedsPerGear = new int[] { 40, // First gear max. speed at max. RPM 70, // Second gear max. …
23 simulations  car 

4
关于创建2D流体的一些好例子是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 任何人都可以使用C#或C / C ++共享任何好的示例,教程或代码片段吗?
22 2d  simulations 

1
二维水模拟的想法
我正在寻找相对于一个较大的(称为)阻塞/非阻塞数组(从侧面观察)在2D中模拟水的任何输入。我提出了以下想法: 细胞自动机 使用单元自动机在CPU上进行大规模并行仿真。使用简单的规则: 如果底部有一个开放的单元,则移至该单元。 检查左侧和右侧的单元格,从两个单元格中随机选择一个并移至该单元格。 优点 易于实现。 在多人游戏系统中有意义/确定性。 缺点 可能真的很慢。 不令人信服。 GPU上的流体动力学 针对如下所示的纹理在GPU上执行流体动力学的粗略近似: +------+-----+-----+-------+ |R |G |B |A | +------+-----+-----+-------+ |vX |vY |NULL |Density| +------+-----+-----+-------+ 优点 可能真的很快。 可能非常令人信服。 另一个像素着色器可以直接渲染它。 缺点 难以实施。 难以调整。 我无法为我的水平分配单个纹理。 我可以重叠网格区域,但这会增加进一步的复杂性。 粒子 使用粒子模拟水。在使用添加混合进行渲染的过程中,然后将乘法函数应用于Alpha通道以赋予水脆边缘。 优点 可能看起来不错。 易于实现。 易于渲染。 尽管在多人游戏系统中需要大量的带宽才能传输,但这仍然有意义。 缺点 粒子间的影响可能会很慢(邻居查找)。 可能导致水通过实心空间“漏出”(因为实心空间很小,例如1px)。 根据颗粒大小,可能导致水中出现奇怪的孔。 可以通过允许粒子比实际大小更靠近一起漂移来缓解上述两种情况,但是这会导致粒子间和粒子/横向性能出现问题。 还有其他想法吗? 注意:这是一个近似值,我在这里不是在寻找物理上正确的水-只是“足够好”的东西(快速和肮脏的加分点)。该游戏是多人游戏,因此不幸的是,整个关卡需要不断进行模拟。

6
您如何并行化二维Boids模拟
您如何以这样的方式编写2D boids仿真程序,使其可以使用来自不同来源(群集,gpu)的处理能力。 在上面的示例中,无色粒子四处移动,直到它们聚集(黄色)并停止移动。 问题是,尽管左上方的实体不太可能与右下方的实体进行交互,但所有实体都可能彼此交互。如果将域划分为不同的段,则可能会加快整个过程的速度。但是,如果实体希望跨入另一个段,则可能会出现问题。 目前,该仿真可用于具有良好帧速率的5000个实体,如果可能,我想尝试使用数百万个实体。 可以使用四叉树进一步优化吗?还有其他建议吗?

3
实际汽车的典型最大转向角
我正在Unity3D中构建汽车模拟。我正在尝试将汽车的属性设置为尽可能逼真的。我似乎无法在Google上得到直接的答案,所以我想到了在这里提问。 普通乘用车的典型最大转向角是多少?


4
不同插值公式的动画示例:有链接吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我记得曾经发现过一个链接到一个巨大页面的链接,该页面包含与非线性插值曲线不同的方程式,例如,如果您想平稳地停下汽车等。 有时在没有物理引擎帮助的情况下模拟某些真实世界的加速/速度行为可能很有用,这可以真正简化代码。 你知道这个页面在哪里吗?我无法为Google提供正确的关键字... 编辑:我只是搜索我以前的笔记本电脑书签,我发现它:http : //sol.gfxile.net/interpolation/

2
在游戏中如何进行结构分析(例如:桥梁建筑,挖掘或死亡以及3D)?
据我了解,典型的交互式桁架系统将需要进行大量计算,因为每个组件都会影响整个系统。我认为您可以在仿真中以准确性为代价随意停止给定的迭代次数,但是我不知道这些游戏是否使用了这种方法(桥梁游戏是桁架系统的一个示例)。另一方面,像Dig或Die这样的游戏具有非常复杂的结构系统,该系统还考虑了扭矩(我认为)和压缩,并且运行速度非常快,并且可以在非常广泛的系统上运行。我猜基本计算可能是相似的,但是如果没有,我对两种方法都感兴趣。 你们知道这些是怎么制成的吗?它们有任意限制吗?还是完全使用了不同的算法?另外,我想你们想出的任何方法都可以应用于3D系统,但如果不是,或者如果不明显,请至少提供一个有关如何将其用于3D的线索,因为我对2D和3D都感兴趣游戏。 我知道我不应该在这里感谢,但是我发现不至少要感谢您的时间是不公平的,我希望不要删除此段。 编辑:如果我要猜测,我会说Dig或Die为每个块存储矢量,然后运行一个迭代算法,直到模拟的额外精度对于系统的限制毫无意义(例如,系统太大而无法崩溃),因此受到半任意(因为它基于应用程序)迭代次数的限制。但是我可能是错的。

1
一个简单的飞行模拟器
在具有逼真的深红色水平的3D飞行模拟器中(例如,在街机水平而不是现实水平),您如何确定每个游戏时钟滴答声中飞机的运动? (深红色的天空是一个类似街机的飞行模拟器:http: //youtu.be/OWmYt0LZDnU?t=3m) 我假定游戏以固定的步伐前进,每一步中,每个移动的对象以恒定的速度从当前位置一直移动到下一位置。 您需要什么基本参数来确定质量,速度,油门等。另外,您将如何结合它们?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.