游戏开发

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

2
如果“ ResourceManager”类被认为是不好的,那有什么替代方法?
我听到有相互矛盾的意见,例如: “专用的Manager类几乎永远不是正确的工程工具” “(目前)专用的Manager类是在拥有数千个资源的大型项目中生存的最佳方法” 让我们来看一个经典的ResourceManager类,它具有以下功能: 加载资产(纹理,音频,3D模型等) 通过保留缓存确保资产仅加载一次 引用计数资产以确定是否可以将其释放 隐藏实际资产的来源(例如,每个资产一个文件,或一个包文件中的所有资产,或者甚至可以通过网络加载资产) 可以在不重新启动程序的情况下重新加载资产,这对于从事游戏的美术师来说非常有用。 假装这些ResourceManager对象不是单例,而是通过依赖项注入传递它们,让我们从表中删除“ singletons is bad”参数。 然后是“使用工厂”或“称其为工厂”参数。我的问题是,是的,它是一个工厂,但它也是一个缓存和一个重装器(因为缺少更好的词)。称其为工厂并不能正确地描述它,如果我将其设置为合适的工厂,那么在哪里实现缓存和重新加载呢? 我同意“经理”类通常是不良体系结构的征兆,但是在这种特殊情况下,如何对其进行重组并仍然保留所有功能?这是“经理”类实际上合适的情况吗?

3
如何为类似Minecraft的引擎生成漂浮的陆地块?
我正在XNA中创建类似于Minecraft的引擎。我想要做的是创建类似于此视频中所示的浮岛: http://www.youtube.com/watch?v=gqHVOEPQK5g&feature=related 我将如何使用世界生成器复制它?我必须使用一些Perlin噪声算法吗?我不知道这将如何帮助我取得这样的土地质量。 这是我正在使用的perlin噪声发生器的代码: private double[,] noiseValues; private float amplitude = 1; // Max amplitude of the function private int frequency = 1; // Frequency of the function /// <summary> /// Constructor /// </summary> /// public PerlinNoise(int freq, float _amp) { Random rand = new Random(System.Environment.TickCount); noiseValues = new double[freq, …

2
完善您的游戏:多少就足够了?
我假设您是一名独立开发人员,正在制作自己的(或获取免费的/基于合作伙伴的)艺术品。我还假设您没有外部压力,无法继续前进。您可以根据需要任意(或最少)进行游戏,然后继续进行。 说了这么多,您如何决定要在游戏中添加多少波兰语? 我还假设您不会陷入将游戏完成一半(或更少)丢掉的臭名昭著的陷阱;您有纪律可以处理,直到“好(足够)”为止。 目前,我经历了一个艰难的周期,在此我开发了核心功能,然后是内容/级别/其他内容,然后添加了一些修饰(艺术,错误修复和可用性调整),直到感到无聊为止。总是有改进的余地,但是我没有量尺告诉我“在这一点上,抛光的回报不值得您投入的时间/精力。” 我假设如果您学习新的东西(例如如何渲染发光效果),这总是值得的。 另外,在您问之前,我没有太多的参与者(也没有一个我可以观察到)来问他们何时足够好。
19 process 


3
对于基于分形的程序化城市布局,有什么好的算法?
背景 我运行的是我的世界服务器,在这里我将设计一个规模相当大的入门城市。我有一系列东西,例如尺子标志和暴民笼子,我想在那儿放建筑物。这个城市本身将非常庞大且分布广泛,最大规模可达1000 x 1000街区。 建筑物本身将具有基于某个基本立方体的立方体或矩形足迹,例如3块的所有倍数。街道和建筑物之间的距离最好为5-11块宽,具体取决于街道的重要性。 当我开始制定城市规划时,我将确切地知道我想要多大的建筑物以及将要建造的建筑物。 问题 问题在于设计城市的布局。显然,由于规模如此之大,而且我来自编程领域而不是城市规划者背景,因此即使开始思考这个问题也颇具挑战。 具体来说,问题是我希望这座城市看起来尽可能自然。当然,在简单的网格模式上构建起来会相当容易,但是我要尽可能避免使用网格或任何看起来像网格的东西。 问题 我可能会追求哪些算法来帮助我使用代码进行设计?我当时以为,如果我以某种方式使用分形,那将是最自然的,因为我的世界在地形生成中已经使用了分形,而一个城市似乎自然以分形的方式成长。 我认为它在某种程度上与俄罗斯方块播放算法相似,因此,如果有人在该方向上存在解决方案,那么它也会有所帮助。我在想象可以在其中定义我要使用的形状的东西,然后该软件进行迭代,直到找到最“最佳”的解决方案来均匀分配建筑物。 是否已经存在帮助我使用python(最好是使用pygame以可视方式)解决此问题的方法? 自然,这在整个游戏设计中也对城市一代产生了有趣的影响,因此我很高兴看到最佳解决方案是什么。 编辑 为了清楚起见,我现在正在寻找布局,因为建筑物将在游戏中设计和建造。

2
碰撞检测逻辑应该放在哪里?
我正在开发一个小型2D游戏引擎。角色具有绘画方法,当前可以执行以下操作: 根据角色的速度等计算角色的新位置。 更新碰撞网格单元** 在新位置绘制角色 **我创建了一个碰撞网格以减少相交检查的次数 现在我想到的用于检测碰撞的基本算法是: For Each Character Check intersection with characters in surrounding 8 cells 我可以简单地将此代码放在paint方法中。但是,这是我预期的问题。 假设两个字符A和B位于碰撞网格中的相邻单元格中。现在,按照上述算法,在字符A的迭代中,它将检测到它与B碰撞。在字符B的迭代中,它将检测到它与A碰撞。 但是我有一个想法,当A检测到它与B发生碰撞时,应该通知B它与A发生碰撞。当有两个以上的actor发生碰撞时,这样可以节省很多比较。但我不确定如何处理。我认为应该检查游戏循环内的碰撞,而不是每个角色都检查碰撞。 这种方法正确吗?您如何处理此类问题?我自己想到了碰撞网格。碰撞网格逻辑还有其他选择吗?


3
将游戏制作为教程?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 我负责学校的游戏开发俱乐部,今年夏天我想从事一个项目,我可以在下个学期用作教程。我从来没有做过这样的事情,所以我想知道是否有人有任何指导方针或想法。 我基本上想做的是制作一个非常简单的游戏。像是自上而下的射击游戏,敌人会冲进来,让您杀死它们并捡起一些战利品。但是,我希望所有内容都可以轻松修改。俱乐部里的人们几乎没有游戏开发经验,因此,如果我可以以人们可以轻松地修改和添加功能的方式来设置游戏,那对他们来说将是非常棒的。 这样的东西就像在一个容易打败其行为的敌方阶级,或者使枪支射击不同/添加新枪支和新战利品。甚至为游戏添加了新元素。制作允许这种延展性的游戏的最佳方法是什么?
19 xna  game-design 

3
轮询与事件驱动的输入
我正在开发使用轮询输入法的游戏。但是,既然我正在更深入地研究游戏菜单和其他UI组件,我发现我可能想拥有事件驱动的输入。甚至可以同时使用事件驱动的UI和轮询的“世界”输入。我对最好的方式是很好奇。 我将轮询定义为:每个更新循环都检查按下了哪些键,鼠标在哪里,按下了按钮,然后遍历它们并根据收集到的信息执行操作。 我将事件驱动定义为:基于中断的事件,当事件发生并触发中断并基于该事件运行代码块时。 您是否认为最好进行所有事件驱动,全部轮询,或者两者都可以接受?如果您有两者的优缺点,请列出。谢谢。 编辑 该游戏基于Java / OpenGL,因此将发布到Windows / Mac / Linux。将其扩展到移动设备的可能性很小。游戏是RTS风格的第三人称3D。 编辑2 我对实现此方法的方式仍然不完全满意,但是我要转向的是在UI中捕获事件,如果事件未由我的任何UI组件处理,我会将事件传递给用于选择的“世界”。就像是: @Override private boolean handleEvent(Event event) { if(hud.handleEvent(event)) { return true; } return WORLD.handleEvent(event); } 这样,我不会从用户界面中泄漏点击以选择按钮后面的对象,而不是其他。 目前,我的摄像头控件仍然基于轮询,并且目前似乎可以正常使用,但稍后可能会进行更新。 我感谢所有答案,对不起,我只能选择其中一个!
19 java  input  events  polling 


7
与创造力倦怠作斗争[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 5年前关闭。 我有很大的创造力倦怠:/你有什么想法我该如何应对?

6
游戏开发中的载体
我是编程和游戏编程的新手。我已经阅读了一些关于向量和数学的知识,但是我有一个问题-在游戏编程中应该在哪里使用向量?也许有人可以举一个简单的例子说明您正在使用矢量(在2D模式下)? 我已经找到了示例,但是大多数情况下它们在控制台中,它们在其中输出数字,还有一些我不理解的大示例。
19 vector 


6
成为“非完美”的AI战斗员应该采取哪些行为?
当成为一名NPC战斗员时,通过优化战斗策略,时机和攻击类型很容易 获得机器人死亡机器,这很容易做,但是要争取到一个特质的,不可预测的敌人就更难了(在战斗中更有趣)。哪些行为(算法?)对创建更加有机的,非常规的敌人有用? 编辑:我的特定用例是针对MMO类的敌人,例如《魔兽世界》,尽管涉及的图形较少。请注意,这意味着人类和非人类的敌人(动物,怪物等)
19 ai  npc  combat 

4
是否存在任何开源JavaScript 3D物理引擎?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我正在使用WebGL,HTML5和JavaScript开发基于Web的3D FPS游戏。它应该针对安装了支持WebGL的浏览器的PC和上网本。 我想知道是否存在使用JavaScript编写的开源3D物理引擎?

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.