游戏开发

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

1
游戏编程:通用方法和设计模式
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 2年前关闭。 我开始编写一个非常简单的游戏引擎,以便可以更好地学习OpenGL 3.x,但是由于我的经验不足以及对如何设计3D游戏的了解很少,所以我通常会遇到一些问题,使我意识到我应该设计自己的课程不一样。我面临的其他问题是如何在游戏中以简洁的方式跟踪时间并根据需要更新动作,以及如何告知渲染器需要重绘。另外,我仍然需要使用Get和Set函数来将各种标志从一个对象传递到另一个对象,这是不好的做法吗? 因此,正如标题所述,我对任何可以帮助我的书籍或文章/教程和资料来源都感兴趣,并且可以解释游戏设计中的一些常见设计模式(例如,游戏状态处理程序,字体等)。 顺便说一句,我仍在使用freeglut,您会建议我在进行升级之前或对OpenGL有了更好的了解后,转向一个更好的窗口系统吗?

8
如何防止平台游戏角色的角色夹在墙砖上?
目前,我有一个带有地形瓷砖的平台游戏(图形是从Cave Story借来的)。该游戏是使用XNA从头开始编写的,因此我没有使用现有的引擎或物理引擎。 瓦片碰撞的描述几乎完全与此答案中描述的一样(对于矩形和圆形使用简单的SAT),并且一切正常。 除非玩家摔倒时撞到墙壁。在这种情况下,他们会抓住瓷砖,开始以为自己撞到了实际上不存在的地板或天花板。 在此屏幕截图中,播放器向右移动并下降。因此,在移动之后,将检查碰撞-首先,发现玩家角色正在与地板上第3个瓷砖碰撞,并向上推。其次,发现他与旁边的瓷砖发生碰撞,并向侧面推开-最终结果是玩家角色认为自己在地上并且没有跌倒,并且只要碰到瓷砖就“抓住”瓷砖。 我可以通过定义从上到下的瓷砖来解决此问题,这使他可以平稳地跌倒,但是相反的情况发生了,当他向上跳到墙上时,他会撞到一个不存在的天花板。 我应该如何解决这个问题,以使玩家角色可以顺着墙倒下?

5
管理不同类型实体的列表-有更好的方法吗?
我正在为移动设备开发2D太空游戏,但是它确实非常复杂,我的解决方案确实令人困惑,并且会产生很多重复的代码段。 我有一个世界一流的课程,其中有多个不同对象的清单,例如: List<Enemy> enemys; List<Projectile> projectiles; List<Collectable> collectables; List<Asteroid> asteroids; List<Effect> effects; .. 每个列表都会根据世界一流水平进行更新。但是还不止如此。每个敌人都有一个引擎列表,以及一个被敌人更新的武器大佬列表。现在,每个引擎都将一些射击效果添加到世界列表“效果”中,并且每个武器租赁商都将弹丸添加到世界列表“弹丸”中。所有这些类都有不同的参数,因此我需要为每个类额外的更新和渲染功能。 至少它们都是“ GameObject”的子元素,“ GameObject”为它们提供了基本的东西,例如位置,速度和加速度矢量,边界多边形以及诸如applyForce和有限状态机之类的函数 有没有更好或更通用的方法可以做到这一点?就像一个包罗万象的类,其中包含所有不同对象的所有可能的参数和方法。(我认为这会产生更加混乱的代码)

3
随机生成逼真的人脸
生成大量逼真的人脸的可行方法是什么?随机分配3D模型并渲染它们将需要大量的计算能力,尤其是在我临时需要它们的情况下。对单个2D绘制的零件进行分层需要一些艺术才能,这绝对是我所缺少的。另外,我想尽可能多地参数化生成过程的各个方面。您对此有什么建议吗?

4
圆内圆碰撞
在我的一个项目中,我有一个圆形的游戏区。在这个圆圈内,另一个小圆圈在移动。我要做的是防止小圆圈移到大圆圈之外。在下面可以看到,在第2帧中,小圆圈部分在外面,我需要一种方法将其移回即将要移到外面的位置。如何才能做到这一点? 另外,我需要沿着大圆弧的碰撞点,以便可以更新小圆的速度。如何计算这一点? 我想做的是在移动小圆圈之前,先预测它的下一个位置,如果它在外面,我会发现t = 0和t = 1之间的碰撞时间(t = 1全时间步长)。如果我有碰撞时间t,那么我只是在t内移动小圆圈,而不是整个时间步长。但是,问题又来了,当我碰到两个圆圈,一个圆圈在另一个圆圈内时,我不知道该如何检测碰撞发生。 编辑: 我想找到碰撞点示例(绿色)。也许图片有点不对劲,但您明白了。

1
如何实现高级图形效果?
我很好奇如何以图形方式实现《魔兽争霸》或《火炬之光》等3D效果。我刚读完一本关于Direct3D的书,总体上对它和3D图形感到很满意,但是我不确定如何做一个像“铸一个闪电”或图形化其他咒语那样的事情。我认为这与粒子效果或动画的纹理坐标有关,有人能给我一些更具体的见解吗?谢谢

4
使用全屏四边形对渲染目标进行完美像素渲染
将一堆值渲染到rendertarget时遇到一些麻烦。这些值永远不会在我想要它们的确切范围内。基本上,我使用全屏四边形和像素着色器渲染到我的rendertarget纹理,然后打算将纹理坐标用作着色器中某些计算的基础。四边形的纹理坐标范围从左上角的(0,0)到右下角的(1,1)...问题是,插值后,这些值没有像这样到达像素着色器。 一个示例: 我渲染为4x4纹理,在这种情况下,着色器仅在红色和绿色通道中输出纹理坐标(u,v): return float4(texCoord.rg, 0, 1); 我要摆脱的是一种纹理,其中左上角的像素是RGB(0,0,0),因此是黑色,右上角的像素是RGB(255,0,0),因此是明亮的红色,左下角的像素为RGB(0,255,0)-亮绿色。 但是,相反,我在这里得到此: (直四边形渲染,无校正) 左上方的像素是黑色,但在其他角落我只能得到相对深红色和深绿色。它们的RGB值为(191,0,0)和(0,191,0)。我强烈怀疑它与四边形的采样位置有关:左上像素正确地对四边形的左上角进行采样,并获得(0,0)作为UV坐标,但其他角点像素未从中采样四边形的其他角。我已经在左图中说明了这一点,蓝色框代表四边形,白色点代表上采样坐标。 现在,我知道在Direct3D9中渲染屏幕对齐的四边形时应将半像素偏移应用于坐标。让我们看看我从中得到什么样的结果: (以DX9的半像素偏移量渲染的四进制) 红色和绿色变亮,但仍然不正确:223是我在红色或绿色通道上获得的最大值。但是现在,我什至没有纯黑色,而是带有RGB(32,32,0)的深黄灰色! 我真正需要的是这种渲染: (目标渲染,减小的四边形尺寸) 与第一个图形相比,看起来我必须将四边形的右边界和底边界恰好向左移动一个像素。然后,像素的右列和底行都应正确地从四边形的边界正确获取UV坐标: VertexPositionTexture[] quad = new VertexPositionTexture[] { new VertexPositionTexture(new Vector3(-1.0f, 1.0f, 1f), new Vector2(0,0)), new VertexPositionTexture(new Vector3(1.0f - pixelSize.X, 1.0f, 1f), new Vector2(1,0)), new VertexPositionTexture(new Vector3(-1.0f, -1.0f + pixelSize.Y, 1f), new Vector2(0,1)), new VertexPositionTexture(new …



2
视觉编码rpg对话框树
我目前正在使用XML在rpg中创建对话框树,但是手动进行数百次不同的讨论会变得非常乏味且非常快速。我想知道是否有什么方法可以实现类似于可视化编码这些二叉树的流程图/ udk基斯梅特系统。我仍然希望最终结果是XML,因为我已经围绕XML编写了解析和其他逻辑。 编辑:给出一个我正在寻找的想法,这是一个例子。当我在reddit上问这个问题时,向我展示了这一点,这基本上是我在寻找的东西,但它是有限的。我真正要寻找的是已经用于游戏的任何对话软件或图形/流程图之类的软件,可以对其进行修改以满足我的需求。

1
基于回合的JRPG战斗系统架构资源
在过去的几个月中,我一直在忙于使用SDL库用C ++编程2D JRPG(日式RPG)。探索模式或多或少已经完成。现在我要解决战斗模式。 我无法找到有关如何构造基于回合的经典JRPG战斗系统的任何资源。我发现的只是关于破坏公式的讨论。我尝试过谷歌搜索,搜索gamedev.net的留言板,以及在Stack Exchange上浏览与C ++相关的问题。我也尝试读取现有开源RPG的源代码,但是如果没有某种指导,就好像在大海捞针一样。 我不是在寻找D&D之类的规则或类似规则。我纯粹是在谈论代码和对象结构设计。战斗系统使用菜单要求玩家输入。接下来,当英雄和敌人执行其动作时,将执行战斗回合。 谁能指出我正确的方向?提前致谢。
9 c++  2d  architecture  sdl  rpg 

3
2D等距:屏幕到平铺坐标
我正在编写一个等距的2D游戏,并且很难准确地确定光标在哪个图块上。这是一张图: 其中xs和ys是屏幕坐标(像素),xt和yt是图块坐标,W和H分别是图块宽度和图块高度(以像素为单位)。我对坐标的表示法是(y,x),这可能会令人困惑,对此感到抱歉。 到目前为止,我能弄清楚的最好的是: int xtemp = xs / (W / 2); int ytemp = ys / (H / 2); int xt = (xs - ys) / 2; int yt = ytemp + xt; 这似乎几乎是正确的,但是给我一个非常不精确的结果,使得很难选择某些图块,或者有时它会在我尝试单击的图块旁边选择一个图块。我不明白为什么,我想知道是否有人可以帮助我理解其背后的逻辑。 谢谢!

2
将Unity游戏移植到Android时的解决问题
因此,我第一次在Unity3D中将游戏移植到Android。在此过程中,我遇到了一些问题。我当前的问题是分辨率似乎不正确,它切断了屏幕的边缘,并且我向左/向右滚动屏幕的滚动停止位置不再正确。 经过大量研究后,许多人说您需要使游戏的分辨率独立,才能在所有Android / Iphone / Ipad上运行。这是真的?如果是这样,我该怎么做?如果没有,如何帮助您解决分辨率问题,以便在移植到移动设备时看起来正确? 编辑:我仍然没有真正需要的东西,即使使用下面列出的代码和技巧,分辨率仍然无法正常工作。我需要一些方法来根据设备调整分辨率。由于某些原因,当我尝试使用Mungoid的代码检索设备的分辨率时,它将返回0x0

1
Starcraft 2使用什么技术绘制地图?
我有一个在运行时按程序生成的地图,目前正在研究渲染该地图的方法。我对星际争霸2的外观很感兴趣,我想就它采用什么方法来实现它提出一些建议。其次,如果可能的话,我想看任何教程,文章甚至源代码示例。 我想提供一些主要建议,但也请提出其他可能对我有所帮助的建议。 可捕捉的图块-一张典型的星际飞船地图似乎由一组模型图块组成,人们可以将它们组合在一起以创建悬崖,坡道和其他高地地形。他们采用什么方法使它们看起来如此自然?我的意思是,很难发现重复。 地形纹理-地形纹理是如此变化,甚至是动态的(虫族蠕变)。用什么方法做到这一点? 谢谢。


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.