游戏开发

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

7
用于脚本的领域特定语言
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 众所周知,Lua和Python等语言的嵌入式解释器被广泛用于编写游戏逻辑脚本,但是我没有看到有关使用特定于领域的语言编写脚本的人们的大量信息,例如构建一些逻辑脚本“方言”。在游戏其余部分使用的语言之上,使用宏或流畅的编程等。 所以我的问题如下: 您在现实游戏中看到过哪些此类DSL的示例? 遇到什么问题? 您会在其他情况下向其他游戏开发商推荐这种方法吗? 您是否认为随着游戏开发向更易于元编程的语言(例如Boo)发展,这种情况变得越来越普遍?
12 scripting 

3
衡量游戏病毒性的好方法是什么?
我在iPhone游戏中添加了一些社交功能(如果您很好奇,请使用Lexitect),例如电子邮件,Twitter和Facebook集成,以分享高分。除了这些功能,我还测量了用户完成每个步骤的次数。这些功能的目的是使游戏更具病毒性,而我正在尝试衡量游戏的病毒性。 我认为游戏病毒性指标会产生一个基于1.0的数字,其中1.0 =零病毒增长,而1.01表示在某个时间单位内病毒增长1%。 病毒性通常是如何测量的,以什么为单位?指标的时间上限如何?也就是说,如果我给每个玩家一年的时间来确定他们提出的建议数量,那么从我开始追踪它的那一年起,我就不会得到任何真实数字。是否有任何以有意义的方式跟踪病毒传播的标准?

1
我应该在哪里托管Flash游戏?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我正在将我的Flash游戏托管在Kongregate或NewGrounds等网站上,但是有这么多种选择,我想知道各种选择的利弊是什么? 我对......感兴趣: 吸引最大的受众 赚钱(例如,我知道Kongregate分享广告收入) 网站的其他功能/优势(例如,用于高分,小额支付等的集成API)

5
网络层库
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在寻找免费的或独立游戏价格合理的任何可添加到我的游戏中的网络层。 网络层是指我可以与之交互的某种库,可以将消息发送到该库或从该库接收消息,并且该库将自行处理所有低层信息。 我特别在寻找: 高质量的库可以理解和处理网络拥塞等复杂问题。 可扩展的库,这将使我有很多玩家一起玩。 最好是对等解决方案,而不是基于服务器的解决方案。 优选地,具有对高级语言(诸如Java或C#)的绑定的库。 我要寻找的示例是Grapple,但是我知道还有其他可用的库。

4
手势识别策略
与Wii一起工作时,我经常发现必须识别简单的手势,到目前为止,我主要能够研究加速度的大小,以便识别游戏设计文档中要求的手势,但是我想创建一个更强大的系统,允许“记录”示例手势并识别复杂手势。 您过去使用过哪些策略?他们为什么工作?他们为什么不工作?你将做点什么不同的?

6
虚幻引擎3与id技术3与Unity
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 8年前关闭。 我正在尝试确定应该开始使用哪个引擎来开始构建游戏。 我选择了Unity,但是当听说Unreal Engine 3变得可以自由使用时,我发现自己在质疑自己的决定。 从技术上讲,虚幻仍然是商业上最昂贵的,其次是Unity,然后是ID Tech 3(免费)。 但是,它也可能是最快运行的吗?或只是功能最强大的,但Unity实际上为您做了很多事情,因此使用它并使其对性能/调优(如Java / C#)产生重大影响是最有意义的。 请想一想,任何人都可以从这三个方面的经验中发言吗? 自厄运之日起,我就拥有改装的经验,然后是雷神之锤1和半条命。我也有3DS Max的经验。在这一点上,我并不希望真正陷入C ++动画和渲染问题的棘手问题,我宁愿快速启动并运行一些东西,看看是否有可能。但是虚幻的经验极大地吸引了我。
12 unity  unreal 

5
API不可知的桥梁(即OpenGL / D3D /任何)。您是否使用它们,如何制作它们。专业人士和骗子[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 您正在制作3D引擎。您想要最好的多平台世界。突然您意识到,如果要在Windows机器上使用Direct3D,在OSX / Linux上使用OpenGL,则必须牺牲这两个最小公分母的支持功能。 有些人可能会在三个OS上使用OpenGL,因为它本身似乎是最小公分母。一切都很好。然后,您必须将图形API后端移植到Nintendo的GX,还必须创建PS3和Xbox360路径。 你是做什么?您是否设计自己的API(本身是最不常见的),并为每个平台编写后端实现,还是为每个平台编写自己的分支? 如果您选择设计自己的API,是使用网桥模式还是自己的伏都教?疯狂在哪里停止,您意识到一切都停止了,厨房水槽方法也必须停止,并且基本上每个平台都有一个单独的引擎作为分支。或者,您坚持一切和厨房水槽,并在每个平台的后端模块专业化中保留平台特定信息。

2
为什么Unity使用反射来获取更新方法?
为什么为了不统一使用反射来访问MonoBehaviour像信息的方法Awake,Update,Start,...? 使用反射会不会很慢?为什么不利用其他方法Template Method呢?它可以在MonoBehaviour基类中简单地将方法定义为抽象,并强制子类实现该方法。
12 unity  c#  performance 


3
为什么在Lerping函数中使用Time.deltaTime?
据我了解,两个值(之间的线性插值内插功能a和b使用第三值()t之间)0和1。在t = 0处返回值a,在处返回t = 1值b。值为0.5时,返回a与之间的中间值b。 (下图是一个平滑的步骤,通常是三次插值) 我一直在浏览论坛,在这个答案上,我找到了以下代码行:transform.rotation = Quaternion.Slerp(transform.rotation, _lookRotation, Time.deltaTime); 我对自己说:“真是个傻瓜,他不知道”,但是因为它有40多个投票,所以我尝试了一下,果然成功了! float t = Time.deltaTime; transform.rotation = Quaternion.Slerp(transform.rotation, toRotation, t); Debug.Log(t); 我之间的随机值0.01,并0.02为t。函数不应该相应地插值吗?为什么这些值会堆叠?我不明白勒普是什么意思?

1
什么是屏幕空间导数?何时使用它们?
我偶尔看到着色器代码中出现了ddx和ddyglsl函数以及hlsl等效项。我目前正在使用它们来进行不切线或不切线的凹凸贴图,但是我基本上是复制粘贴了代码。我不了解这些功能的实际含义,作用以及何时使用它们。 所以问题: 屏幕空间派生函数是什么? 这些功能做什么?输入值和输出值 它们最常用于什么效果? 什么样的效果需要您关注这些功能?

3
进攻VS防守,谁是赢家?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我正在用手机创建一个新的简单游戏,并且在以下部分上花了几天的时间。 为了简单起见,假设我有两个战士。他们的唯一属性是攻击和防御。第一次进攻时,唯一重要的是他的进攻和对手的防守。反之亦然。 他们没有设备,物品,耐力或健康。只是进攻还是防守。 例: 战斗机1: 进攻:50,防守:35 战斗机2: 进攻20,防守:80 战斗过程将只取决于一次攻击即可确定获胜者。因此,没有多重攻击或回合。我不想使其具有确定性,而是添加一个意想不到的简单版本。具有较低攻击力的战斗机将能够赢得具有较高防御力的另一架战斗机(但并非每次都可以) 我的第一个想法是使其线性化,并调用统一的随机数生成器。 If Random() < att1 / (att1 + def2) { winner = fighter1 } else { winner = fighter2 } 以进攻50和防御80为例,进攻战斗机将有大约38%的胜率。但是,在我看来,意料之外的事情太遥不可及,最差的战斗机将赢得很多。 我想知道您如何处理类似情况。 PS:我在此QnA和其他资源中进行了大量搜索,发现相似的问题对于SE来说范围太广。但是它们具有许多属性,武器,物品,类等,可能会使它变得过于复杂。我认为我的版本要比SE的QnA风格简单得多。

2
在单独的线程中更新和渲染
我正在创建一个简单的2D游戏引擎,我想在不同的线程中更新和渲染精灵,以了解其完成方式。 我需要同步更新线程和渲染线程。当前,我使用两个原子标志。工作流程如下所示: Thread 1 -------------------------- Thread 2 Update obj ------------------------ wait for swap Create queue ---------------------- render the queue Wait for render ------------------- notify render done Swap render queues ---------------- notify swap done 在此设置中,我将渲染线程的FPS限制为更新线程的FPS。此外,我sleep()经常将渲染和更新线程的FPS限制为60,因此这两个等待函数不会等待太多时间。 问题是: 平均CPU使用率约为0.1%。有时,在四核PC中,它会上升25%。这意味着一个线程正在等待另一个线程,因为wait函数是一个带有test and set函数的while循环,而while循环将使用您的所有CPU资源。 我的第一个问题是:是否有另一种方式同步两个线程?我注意到std::mutex::lock在等待锁定资源时不要使用CPU,因此它不是while循环。它是如何工作的?我无法使用,std::mutex因为我需要将它们锁定在一个线程中并在另一个线程中解锁。 另一个问题是;由于该程序始终以60 FPS的速度运行,为什么有时它的CPU使用率会跃升到25%,这意味着两个等待中的一个正在等待很多?(两个线程都限制为60fps,因此理想情况下它们不需要太多同步)。 编辑:感谢所有答复。首先,我想说的是,我不会在每个帧开始渲染新线程。我从一开始就开始了update和render循环。我认为多线程可以节省一些时间:我具有以下功能:FastAlg()和Alg()。Alg()既是我的Update obj又是render obj,而Fastalg()是我的“发送渲染队列到” renderer”“。在一个线程中: Alg() //update FastAgl() Alg() //render …

3
Unity是否允许您使用Java编写代码?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 2年前关闭。 我对Unity3D的经验还很陌生,但是我对Java和Android开发非常了解。我真的很困惑,如果开发Android应用程序完全需要Java?我在Unity文档中的某处读到,在Unity中向对象添加行为需要使用脚本,并且unity仅支持C#,.Net和Boo脚本。根本没有使用Java吗?

1
什么时候四叉树优于空间散列?
我正在同时制作具有很多对象的2d平台游戏。它们都是AABB碰撞检测到的。我首先尝试使用四叉树来减少要检查的对象的数量,尝试了几种不同的配置,但事实证明它并没有达到我所需要的效果。我实现了空间哈希,而且效率更高,每次碰撞要检查的对象数量大大减少了。 是否存在使用四叉树进行2d碰撞检测优于空间散列的情况?根据我的测试,似乎空间散列总是以较少的要测试碰撞的对象结束? 我尚未对算法进行计时,但是例如在C语言中进行编码时,哈希只是非常昂贵或难以实现吗?值得一提的是,我使用javascript编写游戏,其中的哈希是“免费”的。 这是比较,我是否忽略了某些内容?http://zufallsgenerator.github.io/2014/01/26/visually-comparing-algorithms/

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.