游戏开发

专业和独立游戏开发人员的问答

1
如何为XNA演示创建安装程序?
我有一个使用VS2008在XNA3.1中编码的演示。我真的很希望能够将此内容发送给具有PC的任何人,并让他们安装并运行它,而无需他们安装VS或.Net框架等。 我以为会是发布选项,但对此有些困惑。谁能阐明这件事? 先感谢您。


5
如何确定路径的长度?
我有一款游戏,要求每个玩家沿着一条指定的路径移动。我使用贝塞尔曲线绘制路径。如何确定路径的总真实(非线性)长度和每个玩家的距离?(起点和路径上指定点之间的距离。) 更新: 路径以笛卡尔平面(2D)表示。

5
寻路中的态势感知
假设您必须找到穿过地牢的最短路径,其中只有在收集到某些物品(例如,锁着的门和钥匙)之后才打开某些通道。 单词“最短路径”的正常肠道反应显然是A *。但是A *在这种环境下会失败,因为我看到许多定义可靠启发式方法的问题,此外,很有可能必须多次访问一个节点,这在常规A *中也是不可能的,并且使启发式变得更困难。 我想到的只是在寻找一条从地牢开始到末尾的道路,而忽略任何被阻塞的门。找到此路径后,对于每扇阻碍我们前进的门,在到达门之前,都将寻找并遍历一条寻找适当钥匙并返回门的附加路径。将使用完全相同的系统来处理以下情况:打开门所需的钥匙路径再次被另一扇门阻塞,该门需要首先打开。 我在解决方案中看到的一个大问题是,在找到所有路径(包括用于物品获取的路径)之后,代理可能行进的总距离可能不是最小的,因为可能还有其他被挡住的门离目标更远但更容易获得其适当的密钥。在第一次通过时,A *会忽略这些门,而只是简单地忽略了被阻塞的门。 我确定我不是第一个尝试解决此问题的人,并且希望您对此问题有所投入。
11 ai  path-finding 

4
您如何制作Minecraft Mod?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 6年前关闭。 我是制作Minecraft Mod的新手,我想知道开始该怎么做。

5
为什么将实体配置放在脚本之外?
我见过很多在脚本文件中定义实体组件的游戏,但是当它们配置每个实体并指定其具有的组件时,它们会使用其他文件格式(例如XML)。他们为什么这样做? 我主要是想看看其他人对此的依据是什么。我还在脚本之外配置了我的实体(尽管我选择了JSON而不是XML)。我这样做的原因是使我更容易实现保存游戏,还因为我认为这种配置可以更好地组织为XML或JSON之类的东西。 // @ 克里斯托弗·拉森的答案: 太长了,无法发表评论 我担心您可能偏离了问题的主题。您所描述的问题与基于层次的实体更相关;在我提到的问题中,我提到我在谈论基于组件的实体。 这是我想问的一个例子。以下是配置实体的两种替代方法:通过脚本和通过外部JSON文件。我的问题是,为什么有那么多人喜欢在脚本之外配置实体? 基础实体类: class Entity: def __init__(self, name): pass def addComponent(self, comp): pass 脚本方法: orc = Entity('Orc') orc.addComponent(PositionComponent(3.4, 7.9)) JSON方法: { "name" : "Orc", "components": { "PositionComponent": { "x" : 3.4, "y" : 7.9 } } } 我已经说明了使用这种方法的原因,包括技术上和组织上的原因。我想知道为什么这么多其他人(根据我所看到的)使用它。

4
单人游戏引擎应如何有力地拒绝无效数据?
在单人游戏中,当尝试使用外部脚本中指定的组件构建实体时,您认为在其中一个组件格式不正确时会发生什么更可取: 引擎是否应该跳过该组件,而仅使用编写良好的组件让实体生活在游戏世界中? 还是如果其中一个组件的格式不正确,它是否根本不应该将该实体添加到整个世界? 请注意,我不是在谈论记录错误-不用说-只是关于实体应该发生什么。


1
在Linux游戏中查找资产文件
在开发和发行中存储3D模型,纹理,声音和脚本(例如Lua文件)的常用方法是什么?我正在和朋友一起主要使用C ++开发游戏;在原型设计阶段,我们只有一个纹理被GIMP保存为C头文件,但是,当然,这种方法的伸缩性不好,并且大大增加了编译时间。 在Windows下,通常的做法是将它们转储到%PROGRAMFILES%游戏可执行文件所在的子目录中,也许将它们安排在适当的树形结构中。但是,在Linux上,情况似乎要复杂得多。可执行文件通常驻留在中/usr/bin,而应用程序将其其他文件存储在中/usr/share,我认为将非可执行文件放入中是极差的做法/usr/bin。但是,开发过程中的目录结构完全不同。 我可以提出两种不同的可能解决方案: 让可执行文件找到相对于自身的资产文件,然后将游戏安装到/opt。然后将符号链接放置到/usr/bin。在开发期间,资产到二进制文件的相对路径与部署期间相同。 使用定义为预处理器符号的绝对路径访问文件。让构建过程(在我们的示例中为raw Makefile)负责适当定义它。 在一方面或另一方面,这两种方法对我来说似乎都很微不足道。在游戏开发行业中是否有与此相关的惯例? 我能找到的唯一相关问题是,确定磁盘游戏资产上已安装/在磁盘上的资产的位置以及资源和资产的目录路径,但是这些并没有解决“从源代码树”运行的问题。



9
有哪些好的jquery / javascript游戏引擎?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 6年前关闭。 因此,我决定尝试一些javascript / html5游戏开发(到目前为止与XNA / Unity协作)。想知道是否有人有任何建议。我目前正在研究影响力,gameQuery和Jaws。 (也有点担心我无法制作出像XNA那样强大的游戏……不过只能做2D)
11 javascript  html5 

5
动态音频分数/音乐[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我有兴趣开发一款游戏,其背景音乐会随游戏动作的气氛和场景而变化。当然,许多现有的游戏都可以做到这一点(例如Halo),但是我对任何有关开发此类系统的技术的资源/论文/文章都很感兴趣。 我有一些想法,我知道在代码级别实现同样具有挑战性,因为它会出现或获得适合该模型的音乐。他将对其中的任何链接或答案提出建议。 编辑:这是我正在寻找的信息类型:) http://halo.bungie.org/misc/gdc.2002.music/
11 audio 

1
四元数和围绕世界轴的旋转
免责声明:我是专业的游戏程序员,大多数时候都使用四元数,但对我而言它们接近于魔咒。我在数学方面相对在家,但是虚构的数字总是让我感到困惑。我倾向于将quats视为有用,并且最终会多次反转乘法。我试着像在有限成功的矩阵中那样对它们进行推理。 无论如何.... 以下是困扰我的事情。当我想围绕对象的局部轴旋转对象时,我将其旋转与代表要应用的旋转的四元数相乘。因此,它是局部空间中的旋转。 现在,如果要围绕世界空间中的轴旋转,我的推理将是:将世界空间中的旋转作为四元数。用四元数乘以对象旋转的逆数。这将使我的世界在局部空间中旋转。将我的旋转倍数与此新的四元数相乘。即:newRot = oldRot *(反oldRot * worldRot) 但是,我需要做的是newRot = oldRot *(逆向oldRot * worldRot)* oldRot。 为什么在与反quat相乘之后为什么还需要在应用它之前与自己的quat相乘?我知道一定有一个完美的正当理由,但我无法说出自己的出路,这让我感到沮丧。我尝试了各种常见问题解答,但大多数问题都涉及数学,因此我不太清楚。 有人可以像我5岁一样向我解释这一点吗?
11 quaternion 

4
如何使物体的速度降低而使其速度降低
我正在用Flash开发游戏,需要一些帮助。可以认为是数学问题。 我的物体飞速飞行,X我的物体可能与石头碰撞。当它与石头碰撞时,我需要我的物体打破石头并继续,但速度要慢一些。这很容易硬编码和写是这样的:myVelocity -= 10;,但我的主要问题是,我希望它输少的速度越高,初始速度。 例如:如果速度为300,我希望它损失10,如果速度为200,我希望它损失20。 可以用某种公式来完成吗?

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.