游戏开发

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

5
如何设计AssetManager?
设计一个AssestManager来保存对游戏图形,声音等的引用的最佳方法是什么? 这些资产是否应该存储在键/值映射对中?即我要“背景”资产,并且地图返回相关的位图?有没有更好的办法? 具体来说,我在写一个Android / Java游戏,但答案可能很笼统。

9
您可以建议使用什么C ++ GUI库?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我正在用C ++构建自己的游戏引擎,目前正在确定应使用的用户界面。 我应该使用图书馆吗?我应该自己做吗?
26 c++  gui 

9
OpenGL优化技巧
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 要提高OpenGL的效率,您有什么技巧?

2
与伪随机相比,我如何产生“令人愉快”的随机?
我正在制作一款游戏,该游戏依次展示了许多不同类型的难题。我为每个谜题选择一个伪随机数。对于每个难题,都有很多变化。我选择了另一个伪随机数的变体。等等。 问题是,尽管这会产生接近真实的随机性,但这并不是玩家真正想要的。玩家通常希望自己认为是什么,并且将其标识为随机的,但前提是它不倾向于重复拼图。因此,并不是真正随机的。只是变幻莫测。 考虑一下,我可以想像出一些拙劣的方法。例如,在选择新选项时,暂时从可能性集中消除最近的N个选择。或为每个选择分配相等的概率,将选择时的选择概率降低为零,然后随着每个选择缓慢地增加所有概率。 我认为有一个确定的方法可以执行此操作,但是我只是不知道术语,所以我找不到它。有人知道吗 还是有人以令人愉悦的方式解决了这个问题?
26 algorithm  random 

4
UV和UVW映射到底是什么?
为了理解一些基本的3D概念,目前,我试图弄清楚纹理的实际工作方式。我知道UV和UVW映射是将2D纹理映射到3D对象的技术-维基百科告诉了我很多。我在Google上搜索了一些说明,但只发现了以我已经知道它是什么的教程。 根据我的理解,每个3D模型都是由点组成的,几个点会构成一张脸?每个点或面都具有一个辅助坐标,该辅助坐标映射到2D纹理中的ax / y位置吗?还是解包如何操纵模型? 另外,UVW中的W真正起什么作用,它提供了超过UV的作用?据我了解,W映射到Z坐标,但是在什么情况下对于相同的X / Y和不同的Z我将具有不同的纹理,Z零件不可见吗?还是我完全误解了?

9
增量压缩如何减少通过网络发送的数据量?
许多游戏使用增量压缩技术来降低发送的数据负载。我不明白这种技术实际上如何降低数据负载? 例如,假设我要发送职位。如果不进行增量压缩,则发送vector3带有实体确切位置的,例如(30, 2, 19)。使用增量压缩时,我发送的vector3数字较小(0.2, 0.1, 0.04)。 我不明白如果两条消息都是vector3-每个浮点数为32位-32 * 3 = 96位,它将如何降低数据负载! 我知道您可以将每个浮点数转换为一个字节,然后将其从字节转换回浮点数,但这会导致可见的精度错误。



1
为什么我总是要考虑创建和使用对象池,而不是即时实例化新对象?
我已经多次(从最佳实践的角度)了解过这种模式: 内存分配:始终考虑创建和使用对象池,而不是即时实例化新对象。这将有助于减少内存碎片,并减少垃圾收集器的工作。 但是,我不知道这实际上意味着什么。我该如何实施? 例如,我可以实例化一个GameObject使用InstantiateUnity 的方法吗? Instantiate(prefab, new Vector3(2.0F, 0, 0), Quaternion.identity); 不鼓励这种用法吗?还有什么意思?

1
如何对Unity3D游戏进行功能测试?
语境 我将继续在Unity3d中为游戏使用一些旧代码,并且我想编写一些用于回归的功能测试,以确保在实现新事物或重构时不会破坏事物。 我已经知道Unity3d的“单元测试工具”套件可以作为资产使用。我已经将其用作单元测试套件,因此我测试了我的模型(类)。 我正在考虑哪种测试的示例 对于“功能测试”,我的意思是这样的: 运行程序 在菜单场景中,断言有一个显示“开始”的按钮 点击它 然后断言新场景已加载 断定像素XXX为红色 点击坐标XXX 现在断言像素变为绿色 等等 问题 问题1:如何编写和运行游戏功能测试?这通常也在UnityTestTools(UTT)中完成吗? 问题2:如果UTT可以用于单元测试,那么是否有单独的功能测试套件?哪一个? 笔记: 我的目标是Android,并且正在运行 Unity5.3.1f1

3
独立游戏开发商是否应该针对较旧的硬件?
与我一起工作的一位开发人员告诉我,独立开发人员应以大约六年或更久的硬件(在最大设置下)为目标。我的想法是,无论硬件多旧,都应该允许每个想要玩游戏的人以可运行的帧速率玩游戏,但独立开发人员应该限制自己使用低多边形的艺术风格或制作游戏考虑到旧硬件,主要是因为“大多数玩独立游戏的人都拥有旧硬件?” 有什么理由允许您的游戏在非常旧的硬件上以最大设置运行,即使这会降低使用较新硬件的人的图形显示可能性? 是否有任何统计数据表明,在较旧的硬件上轻松达到其图形上限的游戏要比以较高的“低于最佳”体验为代价的游戏将其图形上限更高的游戏成功得多? 任何对此的见解将不胜感激。

6
如何确保旋转的物体以正确的末端击中目标?
我正在研究一种投掷刀型武器,玩家可以自由瞄准然后投掷一把刀。刀在空中旋转,在碰撞时停止旋转,并将其自身与碰撞的物体作父母。旋转是通过动画处理的,而刀的路径是通过物理处理的。 我面临的一个问题是如何确保当刀与敌人碰撞时,刀将朝向他们。此刻有时会发生的情况是刀先嵌入敌人的手柄中。这显然是不现实的。同时,我认为如果刀首先与刀片碰撞,只刀“击中”敌人是非常不合理的,因为刀的旋转速度超出了玩家的控制范围。 我一直在观看许多类似武器的慢速杀伤镜头,每次抛出武器,它都会在空中旋转,而且魔术般地总是以叶片指向目标为目标。对于投掷距离将保持一致的游戏,这很简单。但是我不确定如何预测这一点,因为其中涉及许多不可预测的因素。刀的方向,刀的旋转,敌人的位置,与敌人的距离等。如果可能的话,我宁愿不必使用复杂的预测逻辑,因为游戏将用于相当低端的设备。有没有“烟和镜子”的方法来解决这个问题? 示例:https://youtu.be/0fav8lFpBko?t = 42s

4
用作启发函数时,曼哈顿距离是否单调?
我有一个基于正方形的地图。仅允许水平和垂直移动(禁止对角线)。移动成本始终为1。 我正在使用曼哈顿距离作为距离启发式算法在该地图上实现A *算法。这种启发式是一致的吗?我是否可以避免检查g(node)CLOSED集合中的节点? 编辑:一致我的意思是单调的。

5
为什么像Unity3D这样的引擎相对于像OpenGL这样的本机库更适合初学者?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我只是3D游戏的初学者,我的首选平台是Android。我在其他论坛上发布了一个有关“使用什么:OpenGL或Unity3d?”的问题。他们都强调Unity3D并使用其内置的功能和工具,如果我要使用OpenGL,则必须自己编写代码。但是后来有人说,大多数复杂的游戏都需要自定义引擎。为什么要在OpenGL上使用像Unity3D这样的引擎?
25 opengl  android  unity 

8
是否有必要与主要代码分开实施游戏机制/规则?
不知道它是否适合这个社区的范围,还是应该去Stackoverflow。 让我们假设我希望我的游戏可以在其核心中轻松扩展,即,我希望很多人,即使没有扎实的编程知识,也能够不仅调整现有规则,而且甚至可以添加全新的游戏机制。我本人不是一个优秀的程序员,但是我已经准备好学习,我只需要一些指导和保证就可以做到。 我想到的是,是否有可能/可行地以某种方式与主要实用程序代码分开实施游戏机制?我的意思是,对于桌面游戏,我们有那些规则手册,其中没有包含所有动作的实际算法,而是描述了一些协议和限制,并大量引用了每个此类规则的上下文。是否有可能针对PC游戏做一些类似的事情,例如用人类编程语言以某种非常高级的,易于理解(且可更改)的方式描述所有规则,然后将其“消耗”并由实用程序代码解析为游戏机制的工作实例? 看来,我确实需要编写自己的语言和一个编译器))当然,我将无法做到。但是,也许有更简单的方法来解决这个问题? 仅供参考:我选择的实用程序语言是Python 3.x

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.