游戏开发

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

5
如何在玩家社区不讨厌您的情况下使某些东西烦恼?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 无论您对网络游戏的概念化程度如何,始终都会有某些游戏元素会被大大压倒并主导游戏。 在这种情况下,显而易见的解决方案是进行更新并使该游戏元素变弱(“削弱”它)。 但是当开发人员这样做时,通常会引起玩家社区的愤怒。玩家喜欢通过过度使用过分的游戏元素来主导游戏,现在他们生气了,因为他们的游戏现在玩法不同,因此永远毁了。在书呆子之后,游戏在客观上可能会更好,但是对于许多玩家而言,人类自然而然的改变抵抗力却超过了这种积极效果。 如何在不引起玩家愤怒的情况下纠正平衡错误?

2
较大的顶点缓冲区与多个绘制调用
我刚刚开始使用OpenGL,并且尝试使用它来创建2D游戏。在这个游戏中,我有一个六角形网格,由许多不同颜色的六角形组成。作为新手OpenGL程序员,我看到了绘制此网格的两种方法: 将顶点缓冲区与单个六边形的数据一起使用,然后使用统一的偏移值并在CPU上迭代多次以绘制同一程序,直到获得网格为止。 创建一个单一的非常大的预先计算的顶点缓冲区,该缓冲区在一次调用中绘制所有六边形。 什么是最有效的方法?有更好的方法吗?
14 opengl  shaders 

2
实体/组件系统和UI“实体”
我对实体/组件系统仍然很满意。我发现,由于我具有用于绘制精灵(或精灵表)和处理输入(鼠标/触摸点击)的有用组件,因此我自然希望重用这些组件来创建UI组件(例如按钮,例如,级别选择屏幕)。 这让我感到非常奇怪。我一直将实体理解为“游戏模型”,例如玩家,敌人,道具等。从代码重用的角度来看,为UI重用组件是很有意义的。 UI / GUI关注点如何(以及在​​哪里)适合实体/组件系统? (注意:此问题与平台无关,因为它适用于多种平台/语言)



3
如何在视频游戏中表示弹丸?
我正在做一个简单的固定射击游戏,类似于“ Galaga”,),这是我正在做的演示的一部分。我想知道人们会使用什么策略和数据结构来跟踪弹丸,例如从飞船发射的激光。我以前使用的一种超级简单的实现方式是将每个弹丸表示为一个点,并检查是否与场景中的所有对象发生碰撞。 但是,在有许多弹丸的大型场景中,这似乎很昂贵。我想知道这种用例还使用了哪些其他类型的策略或实现。FPS之类的游戏用于跟踪弹丸(子弹,坦克炮弹等)有什么作用?

1
使用GLSL 330版实现Skybox
我正在尝试让Skybox使用OpenGL 3.3和GLSL 330版。 我在网络上的任何地方都找不到完整的现代OGL skybox教程,因此我对一个较旧的版本进行了现代化(使用glVertexAttribPointer()而不是gl_Vertex用于顶点等)。它主要在工作,但是有两个主要细节: 天空盒更像天空三角形,纹理严重扭曲和拉伸(它们应该是星场,我在黑色背景上看到线条)。我99%确信这是因为我没有完全正确移植旧教程。 这是我的Skybox类: static ShaderProgram* cubeMapShader = nullptr; static const GLfloat vertices[] = { 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, -1.0f, 1.0f, …
14 c++  opengl  glsl  cubemap  skybox 

2
GLSL着色器-更改色相/饱和度/亮度
我正在尝试使用GLSL片段着色器更改图像的色调。我想实现类似于Photoshop的“色相/饱和度调整”层的功能。 在下图中,您可以看到到目前为止我得到了什么。我想更改绿色正方形的色相,使其看起来像右边的红色正方形,但是使用此着色器,我得到一个半红色的半粉红色正方形(中间的正方形)。 我在片段着色器中所做的就是将纹理的颜色转换为HSV,然后将从顶点着色器获得的HSV颜色添加到其中,然后将颜色转换回RGB。 我究竟做错了什么? 片段着色器: precision mediump float; varying vec2 vTextureCoord; varying vec3 vHSV; uniform sampler2D sTexture; vec3 convertRGBtoHSV(vec3 rgbColor) { float r = rgbColor[0]; float g = rgbColor[1]; float b = rgbColor[2]; float colorMax = max(max(r,g), b); float colorMin = min(min(r,g), b); float delta = colorMax - colorMin; float …

3
是什么使游戏“休闲”?
我看到过“休闲”一词有时用来描述游戏,并且看到人们称自己或其他人为“休闲游戏者”。 什么是“休闲”游戏?它们和常规游戏之间有什么真正的区别?如果是这样,是什么使游戏“休闲”?

2
为什么90°horz / 60°转换默认的FPS视野?
据我了解,垂直视场应调整为: fov = 2 * arctan(0.5*screenHeight / distanceEyeScreen); 也就是说,视野应与用户的距离和屏幕尺寸相匹配。 在许多FPS中,水平FoV的默认值为90°,而垂直FoV的默认值为60°(假设16:9)。一个示例是CryEngine。但是对于16:9 20“屏幕(可视区域的对角线,即约40 cm x 25 cm),此默认值将要求用户的眼睛距屏幕20 cm,以便获得正确的透视图。 因此,要么我在计算中犯了一个错误,要么一定是有理由为什么您故意选择了不足的FoV值。 默认FoV为90°horz / 60°vert的原因是什么?
14 3d  camera  perspective 

3
碰撞检测是否总是O(n ^ 2)?
物理引擎是否能够例如通过将彼此靠近的对象分组并检查该组内部而不是与所有对象的碰撞来降低复杂性?(例如,可以通过查看远处物体的速度和与其他物体的距离来将其从一个组中移除)。 如果不是,那么这对于球体(在3d中)或圆盘(在2d中)是否会使碰撞变得微不足道?我应该做一个双循环,还是创建一个成对的数组? 编辑:对于子弹和box2d之类的物理引擎,碰撞检测是否仍为O(N ^ 2)?

1
什么是斜坡着色或照明?
什么是匝道阴影或照明,它如何工作?它与卡通着色是不同的还是相同的概念?渐变阴影与blinn-phong或lambert的镜面反射度如何计算不同?
14 shaders  lighting 

2
领土巡逻计划
我正在开发一个游戏/模拟,代理商在其中争夺土地。我的状况如下图所示: 这些生物走来走去,占据一块土地,如果他们有空的话,他们会踩到它们。为了使这一点变得更有趣,我想介绍“巡逻”行为,以便探员实际上是在他们的土地上走来走去,从任何可能想要入侵的入侵者那里巡逻。 在技​​术方面,每个正方形均表示为x,y位置以及表示其边长的尺寸。它还包含有关谁占据广场的信息。所有正方形均存储在中ArrayList。 如何介绍巡逻行为?我想要的是让每个特工巡逻该区域的某个部分(他们在他们将巡逻的区域之间划分)。我发现的主要问题如下: 如图所示,土地面积非常随机。很难理解各个方向的界限。 特工应如何分割地区巡逻? 土地区域可能是不相交的,因为对方的队伍可能会从中间占据领土。 我的想法是在每个方向上取最远的正方形,将其视为该区域的边界,并根据这些边界划分区域,但这可能包括许多无关的土地。 我应该如何解决这个问题?
14 java  ai  grid 

3
解决力量冲突
在我的2D物理引擎中,我可以检测到AABB与AABB碰撞,并通过找到最短的穿透矢量并将其添加到AABB的位置来解决它们。 这样做可以将“第一” AABB“推”到第二AABB之外,但根本不处理速度/加速度变化。 如果我在仿真中添加重力加速度,则即使第一动态ABB停在第二静态ABB的顶部,它的速度也会保持增长。最终,速度将变得太大而无法检测到碰撞(动态AABB将落入静态ABB)。 我尝试将分辨率后的速度设置为零,但显然效果不佳,并创建了不切实际的模拟。 我在线阅读了通过手动处理位置或速度不正确来解决冲突的信息。我尝试过实施力量(目前,质量是“硬编码” 1): void Body::applyForce(sf::Vector2f mForce) { acceleration += mForce; } void Body::integrate(float mFrameTime) { velocity += acceleration * mFrameTime; position += velocity * mFrameTime; acceleration = {0, 0}; } 如果我在冲突解决期间将最短的穿透向量用作力,则动态AABB将从静态AABB中“弹出”,但在没有重力的情况下其速度永远不会降低,并且将永远移动。 有没有办法施加“临时”力量?一种将第一个ABB推出第二个ABB的力,然后在该AABB不再碰撞时停止作用? 完整的源代码在这里:https : //github.com/SuperV1234/SSVSCollision

2
图形未显示在OUYA上
我希望现在问OUYA开发人员问题还为时过早,但是我刚刚获得了我的开发套件,我想让我的游戏尽快运行!我正在使用LibGDX作为我的游戏框架,并在OUYA上启动了Android后端。一切似乎都很好,只不过没有显示我的图形!由于Box2D的DebugDraw显示了我的物理状态,所以我只能说出是怎么回事。我正在使用LibGdx的Spritebatch和OpenGL ES 2.0。一切在我的台式机和Android(电话)后端上均能正常运行。 我在处理OUYA的资源时做错了吗?可能是什么问题呢?可能是因为我将图形存储在资产文件夹中而不是/ res中吗? 编辑:这是一个logcat输出:http : //pastebin.com/BbPyPCcR
14 java  android  libgdx  ouya 

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.