游戏开发

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

1
平滑体素地形
作为个人项目,我正在尝试制作一个地形生成器,以创建看起来像《城堡物语》平滑地形的地形。 如果您以前没有看过,请在这里: 如您所见,它是块和“平滑”块的组合。 我试图模仿这种外观的方法是为每个表面块提供一个迷你高度图。通常这是可行的,但存在一些问题,产生如下所示的地形: 问题是每个块都是1x1x1,但是有时特定位置的高度为负或>1。在这种情况下,我将其裁剪并将高度设置为0或1。 为了更好地说明我的意思,下面是一个图: 为了生成高度,我基本上做了: genColumn(int x, int z) { int highestBlockY = (int)noise2d(x, z); bool is_surface = true; for(int y = max_height - 1; y >= 0; y--) { Block b; if(is_surface) { b = Block.Grass; b.HasHeightMap = true; // generate heightmap for(int ix = 0; ix …

3
如何处理快速侧卷轴问题?
我正在做一个侧面滚动飞机游戏,当我开始很快时,我开始遇到一些玩家问题: 元素不可区分,例如子弹的加电等 我开始感到头晕和不舒服 没有足够的时间来查看即将发生的事情 我该如何解决呢?我是否在所有图形学中使用较少的细节? Tiny Wings的水平移动速度与我的游戏相同,但不会受到这些问题的困扰。还有其他我可以参考的真正快速的侧卷轴吗?

3
如何在Unity中进行单元测试?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 如何在Unity3D上实施单元测试。 我想知道是否有可能扩展Unity编辑器以在其中添加某种测试框架。 是否有任何实施指南? 有参考书,博客吗? 任何可行的示例或项目?

5
如何保护从HTML5游戏向我的服务器发送分数
在后端,我正在使用Java。我有一个HTML5游戏;当用户完成它时,我发送一个Ajax调用以将分数保存到数据库。现在,有人可以轻松地使用Fiddler和Firebug等工具来修改此Ajax请求,并将更好的分数发送给服务器。如何确保用户无法操纵分数!

2
在XNA中设置效果参数的最佳做法
我想问一下是否有Effect在XNA中设置参数的最佳实践。换句话说,当我打电话时到底发生了什么pass.Apply()。我可以想象多种情况: 每次Apply调用时,所有效果参数都会传送到GPU,因此我对参数的设置频率没有真正的影响。 每次Apply调用时,仅传输已重置的参数。因此,应避免缓存实际上未设置新值的Set-operations。 每次Apply调用时,仅传送更改的参数。因此,缓存Set-operations是没有用的。 这整个问题是没有根源的,因为没有一种提及的方式会对游戏性能产生任何显着影响。 因此,最后一个问题是:实现set操作的某些缓存是否有用,例如: private Matrix _world; public Matrix World { get{ return _world; } set { if (value == world) return; _effect.Parameters["xWorld"].SetValue(value); _world = value; } } 感谢你在期待。
13 xna  directx  effect 



3
作为独立游戏开发者,哪种流程最适合寻求关于我的设计/规格/想法的反馈?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 6年前关闭。 背景 我在专业环境中工作,该过程通常如下所示: 头脑风暴的想法 巩固游戏机制/设计 反复进行设计/创意以创造更坚实的体验 明确设计/想法的细节 建立它 步骤3.一般是与游戏的利益相关方(开发者,设计者,投资者,发行商等)来进行达成“协议”符合所有相关的目标。由于此过程涉及一系列通常相互对立且独特的观点,因此创造性的解决方案可以通过讨论/迭代来浮出水面。这由整理变更/新想法的过程以及结构化的讨论时间来支持。 作为(现在)的独立开发人员,我必须扮演所有利益相关者(开发人员,设计师,投资者,发行商等)的角色,并且经常发现自己与创意/设计过于接近,不能做太多小的改动,而我当获得最佳结果时,我觉得自己是局部的最大值(当然,我在寻找全局的最大值)。 我已经读过,想法/游戏设计/独特的机制只是执行力的倍增,而把它们保密只是愚蠢的。在与我自己的思想范围之外的其他人分享想法时,我希望复制其他利益相关者的影响力。 我正在努力进行变更/新思想的整理,以及任何形式的接收反馈的结构化方法。 我的问题:作为独立游戏开发商,我如何以及在何处分享自己的想法/设计,以获得有意义的/建设性的反馈?如何成功将反馈整理到设计的新迭代中?有专门的网站等吗?

4
为什么OpenGL中的剪辑空间具有4个尺寸?
我将其用作一般参考,但是我浏览在线文档和书籍的次数越多,对此的理解就越少。 const float vertexPositions[] = { 0.75f, 0.75f, 0.0f, 1.0f, 0.75f, -0.75f, 0.0f, 1.0f, -0.75f, -0.75f, 0.0f, 1.0f, }; 在这本在线书中,有一个示例,说明如何为OpenGL绘制第一个经典的hello世界,即制作三角形。 三角形的顶点结构按照上面的代码声明。 与其他所有相关资料一样,这本书强调了“剪辑空间”是一种4D结构,该结构用于基本确定将要栅格化并渲染到屏幕的内容。 这是我的问题: 我无法想象4D的东西,我不认为人类可以做到这一点,此Clip空间的4D是什么? 我读过的最易读的文档是关于相机的,这只是对剪切概念的抽象,我明白了,问题是,为什么不首先使用相机的概念呢?熟悉的3D结构?带有摄像头的概念,唯一的问题是,你需要定义其他方式准,所以你基本上要添加什么其他的语句样的相机,你希望有。 我应该怎么读0.75f, 0.75f, 0.0f, 1.0f呢?我得到的只是它们都是浮点值,我得到前三个值的含义,这意味着最后一个是什么?

3
旧电视视频游戏在什么平台上开发?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我非常想知道电视视频游戏(我们从小就玩过)是如何开发的以及在哪个平台上开发的。 我知道如何为移动设备,Windows PC和Mac开发游戏,但是(当时)Contra,Duck Hunt和所有这些游戏是怎么开发的。由于它们具有较高的图形和大量的阶段。那么,他们如何在如此小的环境和较低的配置平台上开发游戏呢?

3
组成重的OOP与纯实体组件系统?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我承认,我犯了过度使用甚至滥用继承的罪过。我上OOP课程时所做的第一个(文字)游戏项目远比“门”和“一扇门的房间”,“两扇门的房间”中的“锁门”和“解锁门”有关,以此类推。 通过最近我从事的(图形)游戏,我认为自己已经学到了教训,并限制了继承的使用。但是我注意到问题很快开始出现。我的根类开始越来越膨胀,而我的叶类中充满了重复的代码。 我以为我还是在做错事,在网上查询之后,我发现我并不是唯一遇到此问题的人。经过一些深入的研究,我最终才发现了实体系统(请参阅:googlefu) 当我开始阅读它时,我能够看到它能够多么清晰地解决我的带有组件的传统OOP层次结构所遇到的问题。这些是一读。当我偶然发现更多……“激进”的ES方法时,例如T-machine上的方法。 我开始不同意他们使用的方法。一个纯粹的组件系统似乎要么过大,要么不直观,这可能是OOP的优势。作者甚至说ES系统与OOP相反,尽管它可以在OOP中使用,但实际上不应该。我并不是说这是错误的,但是我只是觉得自己不想实施一个解决方案。 因此,对我来说,为了解决我在帖子开头所遇到的问题,而又不违背我的直觉,那就是仍然使用层次结构,但是它不会像我以前使用的那样是一个整体的层次结构,而是一种多片的(我找不到与单片相反的单词),它由几棵较小的树组成。 下面的示例说明了我的意思(这受我在《游戏引擎体系结构》第14章中找到的示例的启发)。 我会有一棵小树供车辆。根车辆类别将具有渲染组件,碰撞组件,位置组件等。 然后,坦克(车辆的子类)会从中继承这些组件,并被赋予自己的“加农炮”组件。 角色也是如此。角色将拥有自己的组件,然后让Player类继承它,并被赋予Input控制器,而其他敌人类将从Character类继承并被赋予AI控制器。 我真的看不到这种设计有任何问题。尽管没有使用纯的实体控制器系统,但是冒泡效果的问题和大根类的问题是通过使用多树层次结构解决的,繁重的代码复制叶子的问题也消失了,因为叶子没有有任何代码开始,只有组件。如果需要对叶级别进行更改,则就像更改单个组件一样简单,而不是将代码复制粘贴到任何地方。 当然,像我一样没有经验的人,当我刚开始使用单一层次结构,繁重的继承模型时,我没有看到任何问题,因此,如果我当前正在考虑实现的模型存在问题,我不会能够看到它。 您的意见? PS:我正在使用Java,因此无法使用多重继承来实现此功能,而不是使用常规组件。 PPS:组件间通信将通过相互链接相关的组件来完成。这将导致耦合,但是我认为这是一个不错的权衡。

4
调试着色器代码?
我正在编写一个游戏引擎,当我使用透视相机时,屏幕会黑屏。我不会确切地问这是为什么,因为会有很多代码要共享,并且坦率地说,我认为即使打扰大家,这也是一个小问题。 麻烦在于我不知道如何调试它。所有更改都是我的投影矩阵,如果我的投影矩阵看起来不错,我不知道为什么它不起作用。理想情况下,我将在着色器进行计算时打印出各种东西的值,但是GLSL不方便地没有printf()函数。 所以我的问题是:如何调试我的问题?我唯一想到的就是在客户端检查尽可能多的值,然后通过置换进行编程,但是我这样做并没有成功。有什么方法可以查看视频卡中发生的情况?我可以使用一种完全不同的技术吗? 我使用的是GLSL 420版(以及该版本的特定功能),因此考虑到上次更新是2010年,我不认为glslDevil是一个选项。 编辑 我设法通过一些完全不相关的调试解决了我的问题。

3
实时多人游戏的Javascript和PHP?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 2年前关闭。 我想知道将Javascript客户端与PHP / mysql服务器端相结合对于HTML5实时多人(小型)浏览器游戏是否是一个好主意? 我的技术知识非常有限,即使我将来打算学习node.js,现在的学习难度也很大。 因为我已经熟悉PHP,所以我认为它的运行速度会更快。 我当时认为的规模是2-8位玩家。并尝试使客户端到服务器的消息计数尽可能少。 我打算存储/处理的值是: 玩家名称和ID。 X和Y位置。 健康。 配备的物品(最多8个插槽,可能更少)。 动作(步行,攻击,使用等,但一次只能有1个动作/玩家)。 项目符号X,Y坐标和轨迹。 公会/氏族名称。 以及一些基本的聊天/邮件功能。 我的猜测是,即使这不是最佳解决方案,但只要我保持逻辑小,这是完全可行的。我对吗?

3
处理物理引擎中的同时碰撞的最佳方法是什么?
我正在用JavaScript编写2D物理引擎,以便可以了解有关视频游戏中物理的更多信息。我可以使它在刚体碰撞中正常工作,除非任何物体同时与两个或多个其他物体碰撞。 目前,对于每对碰撞体(A,B),我会根据碰撞冲量来修改它们的速度和角速度,并将它们相互推开,以使它们不会穿透。但是,对于涉及A的其他碰撞,碰撞检测和脉冲计算将是错误的。 我可以探索什么方法来使我的引擎针对3个以上的对象相互碰撞而工作?

2
随机数hlsl
您如何在HLSL中生成一个随机数? 我问是因为我想尝试gpu射线跟踪。您需要在像素着色器中生成随机方向。所以我想要randFloat(),结果是-1和+1之间的随机数。 另外,hlsl 噪声指令有何处理?文档说它已从HLSL 2.0及更高版本中删除。为什么呢 我读到一种方法,其中用随机值填充纹理,然后在每个具有该纹理索引的顶点中都有一个纹理坐标。但这是每个顶点,我需要一条可以在像素着色器中调用的指令。另外,如果您希望每个帧使用不同的值,则此方法需要“重新播种”每个顶点的texcoord,并且需要每个帧都更新一个顶点缓冲区(这可能很昂贵!) 详细介绍一下,如何便宜地在GPU上生成随机数?
13 hlsl  random  gpu 

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.