Articles of 重播

HashTable是用C#存储重放数据的最佳方法吗?

我正在寻找在我的2D游戏中确定性的重播。 我想遵循类似的方法来编码, 每帧存储相关信息 (每秒60帧)。 我想知道存储这些信息的最佳方式是什么。 我的朋友建议使用一个哈希表 ,并且对C#来说是新手。我倾向于使用一个数组 ,但是我想看看是否还有别的想法。 我读过这样的post如何devise一个重播系统和这个“超级肉仔” -这是非常丰富的重播 ,但不是特定于C#和XNA。 我的游戏是二维的,并没有那么多的运动部件。 在任何时候,我可能需要less于50个的身体跟踪位置/旋转。 好奇听到你的想法。

Starcraft2中的成就系统

我正在玩星际争霸2,我对它是如何devise的着迷。 所以可以说你打了一场1v1排名的比赛,你在头320秒内抽了10名海军陆战队员。 你会得到一个成就。 我想知道下面的成果系统是如何devise的? 是的,它分析基于帧的重放文件,但是如何? 现在有1000个成就。

在游戏重播系统在角色上使用animation时无法正常工作

我创建了一个游戏重放系统,它基本上只是在每个FixedUpdate()存储每个对象的位置和旋转。 一旦触发了偶数,重播就会使用FixedUpdate()进行重放。 每个玩家都有一个根据他们的Google Play用户名命名的角色。 那个角色的游戏对象就有一个叫做“组件”的子组件,只要它被触发,animation就会执行它。 这是重播被抛出的地方。 由于某些原因,当animation被触发时,重播不被捕获,因为它应该是。 就好像animation从来没有在重放过程中发生,然后一旦重放后游戏场景被重置,角色就面临着一个尴尬的方向。 基本上一个玩家可以触发一个甚至使他们的角色翻转。 animation是处理翻转的。 animation操纵角色的“组件”游戏对象。 我跟踪角色的父GameObject以及“组件”游戏对象的位置/旋转,以保持所有内容的准确存储方式,但是某种程度上不正确。 这里是我用来存储我的位置和每个球员旋转的代码: static Dictionary<GameObject, Vector3[]> positions = new Dictionary<GameObject, Vector3[]>(); static Dictionary<GameObject, Vector3[]> rotations = new Dictionary<GameObject, Vector3[]>(); static Dictionary<GameObject, Vector3[]> compPositions = new Dictionary<GameObject, Vector3[]>(); static Dictionary<GameObject, Vector3[]> compRotations = new Dictionary<GameObject, Vector3[]>(); static int index = 0; public static int positionFillLength = […]

行动重演在团结3d

我试图logging最后5秒的动作重播。 我正在打一场保龄球比赛,并希望通过用不同角度的照相机进行拍摄来执行重放动作。 我不知道如何做这件事。 我是否必须在运行时为此录制剪辑,并在正确的时间播放以显示动作重播? 或者是其他东西? 下面是代码。 请参阅。 Replay.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class Replay : MonoBehaviour { public Text timertext; public GameObject pin1; public GameObject pin2; public GameObject pin3; public GameObject pin4; public GameObject pin5; public GameObject pin6; public GameObject pin7; public GameObject pin8; public GameObject pin9; public GameObject pin10; […]

我应该使用浮点数,双精度还是小数点作为统计,位置等?

float和double的问题在于它们不是确切的。 如果你要做一些类似商店的重播,那么这个值必须是精确的。 十进制的问题是它们大约比浮动和双打慢了16倍(通过search和个人testing证实)。 不能Vector2s是另一个问题,因为他们在所有的组件内部使用浮动? 其他游戏如何解决这个问题? 我敢肯定,他们必须使用浮动和双打,但不是不确定性跨平台和不同的架构? SC2等游戏的重放文件以线性方式运行,所以不能跳过,因此如何解决浮点数的确定性问题?

parsing.sc2重放文件

我如何parsing星际争霸2重播文件( .sc2replay )? 有没有API? 我知道Sc2gears ,但它不完全满足我的需求。

在浮点非确定性面前,确定性游戏是如何实现的?

为了让RTS成为一个networking游戏,我已经看到了许多答案,让游戏变得完全确定。 那么您只需将用户的操作转移到对方,并在显示下一帧之前将所显示的内容稍微滞后一点,以locking每个人的input。 那么像单位的位置,健康等等的东西不需要不断地在networking上更新,因为每个玩家的模拟将是完全一样的。 我也听到了同样的事情,build议重放。 但是,由于浮点计算在机器之间或甚至在同一机器上的相同程序的不同编译之间是不确定的 ,这真的有可能吗? 我们如何防止这个事实在整个游戏中造成玩家(或回放)之间的微小差异? 我听到一些人build议完全避免使用浮点数,并用int来表示一个小数的商,但这对我来说听起来并不实际,例如,如果我需要一个angular度的余弦,该怎么办呢? 我是否真的需要重写整个math库? 请注意,我主要对C#感兴趣,就我所知,C#在这方面与C ++有完全相同的问题。