游戏开发

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

3
在2D空间游戏中伪造等距图形
首先,我确切地知道我的绘图问题是什么,并且对于如何解决该问题我有各种想法。我在这里要弄清楚如何调整绘制的帧,以便保持等距的“幻觉”。 我正在编写在太空中进行的2D鸟瞰游戏。我试图在Up是北方的世界中使用等轴测图形,而游戏世界不会像传统的等轴测游戏那样旋转(请记住,游戏是在太空中进行的,没有地形)。这是我尝试使用的一个示例精灵:http : //cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64.png围绕其自身的垂直轴旋转了64次,视角为35度(又名iso)。图像已生成,因此可以更改。 为了清楚起见,我已指定北(上)为0度,东(右)为90度。 我的问题是,由于所使用的3D平面存在差异,我的精灵并不总是看起来像面对游戏一样。不知道我是否正确使用了术语,但是我的飞船是在一个平面上旋转的,而查看平面期望事物在其自身的平面上旋转。这是问题的描述: http://cell.stat-life.com/images/stories/AsteroidOutpost/ProjectionIssue.png 左边是侧视图,右边是自顶向下的视图。在顶部,我可以看到太空飞船/精灵表的世界。在底部,我具有将精灵绘制到屏幕上时的外观。 右上角是我的飞船如何旋转的简化版本(每帧之间的角度间隔均匀)。右下角是在屏幕上绘制特定角度时,精灵看起来像面对的角度。该问题在45度左右最为明显。这是一张覆盖有“屏幕平面”线的图像,该线指向该船应该面对的方向:http : //cell.stat-life.com/images/stories/AsteroidOutpost/Spaceship64RedLine.png红线应始终指向与船完全相同的方向,但是如您所见,投影问题正在引起问题。我希望我已经很好地描述了这个问题。 编辑: 红线在屏幕平面上旋转,而太空飞船在“船平面”上旋转,因此绘制时船角和屏幕角度之间存在较大差异。 结束编辑 当这艘船向应该向前方射击的一侧偏离目标的位置发射激光束时,看起来很奇怪。 所以...我想出的解决方案是: 停止尝试伪造等轴测图,变大或回家。已经旋转了我的世界。(PS:这可以解决我的问题,对吗?) 更改我的Sprite表(以某种方式),使其具有表示模型将被查看的“屏幕角度”的框架。因此,当我要求提供45度的图像时,它实际上看起来像是在屏幕上面对45度。 更改我的Sprite渲染系统以从Sprite工作表中抓取一个不同的帧(以某种方式),因为知道抓取“正常”帧看起来会很有趣。因此,与其抓取45度的框架,不如抓取33度的框架(只是猜测),使它对用户而言看起来是正确的。 只需使用3D!真是太容易了 例如:您会推荐哪种解决方案?我倾向于2,即使我知道这是错误的。请记住,我有权使用Sprite生成工具。方法3是我的第二选择。这两种方法都只需要我对角度应用一些数学运算即可得到所需的结果。顺便说一句,我在其中添加了#4作为玩笑,我不想转向3D。 对于两个:使用方法2或方法3,如何调整输入或输出角度?我对3D投影和3D矩阵(更不用说2D矩阵)以及任何其他数学方法可以达到我想要的结果都不太满意。 在这里大声思考:如果我将一个单位矢量面向我要看的船的方向(在屏幕平面上),然后将其投影到船平面上,然后找出那条投影线与飞机平面之间的夹角北方是,我应该具有要显示的船舶图形的角度。对?(#3的解决方案?)伙计...我无法解决。 编辑: 我知道这个问题是很难用静态图像可视化,所以我遵守我的雪碧库Visual测试仪显示的问题:http://cell.stat-life.com/downloads/SpriteLibVisualTest.zip它需要XNA 4.0此应用程序只需旋转精灵,然后从其中心向外以游戏认为船应面对的角度画一条线。 编辑9月8日 继续我的“大声思考”段落:我认为我可以采用朝北的单位矢量(0x,1y,0z),而不是使用投影(因为它看起来很难),而是使用矩阵将其旋转到角度精灵实际上是面向的,然后围绕X轴再次从“查看平面”向外旋转到“精灵平面”,然后……变平?仅使用X和Y(忽略Z),向量(基本上是将其投影)回到视平面上。然后,使用新的扁平化矢量,我可以确定其角度并将其用于...某物。我待会再考虑。 编辑9月8日(2) 我尝试从上面遵循我的想法,并取得了一些成功,是的!所以...为了使一条红线看起来像是从我的飞船中出来(仅出于测试目的),我做了以下工作: Vector3 vect = new Vector3(0, 1, 0); vect = Vector3.Transform(vect, Matrix.CreateRotationZ(rotation)); vect = Vector3.Transform(vect, Matrix.CreateRotationY((float)((Math.PI / 2) - MathHelper.ToRadians(AngleFromHorizon)))); Vector2 …

6
完善我当前的项目是否比开始新的项目更好?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我很多年前开始编程。现在,我正在尝试制作游戏。我已经阅读了许多建议,开始克隆一些著名的游戏,例如galaga,俄罗斯方块,打砖块等。我还阅读了我应该参加的整个游戏(包括菜单,声音,总谱等)。 昨天,我完成了打砖块克隆的第一个完整版本。但这还远远没有结束。我仍然可以使用它几个月(我业余时间编程)来实现屏幕分辨率切换器,控制键的重新映射,从碎砖掉落的电源以及巨大的体积等。 但是我不想永远学习如何克隆一个游戏。我渴望进入下一个克隆,以便应用在开发此打砖块克隆时遇到的一些设计思想(与此同时,我正在阅读GoF书和Ludum Dare 21游戏竞赛的许多源代码)。 因此,问题是:在拥有原始游戏的所有功能之前,我是否应该继续改进打砖块克隆?还是应该移至下一个克隆(几乎有无限的游戏要克隆)并开始修补上一个克隆我做错的事情? 这可能是一个非常主观的问题,因此请限制学习最有效方法的答案,以学习如何制作自己的游戏(而不是克隆别人的想法)。谢谢! 澄清说明 为了阐明我已实施的清单,请列出以下清单: 实现的功能: 弹跳功能(球在墙壁,砖块和杆上反弹)。 在砖块和酒吧上弹跳时以及玩家获胜或失败时发出声音。 基本标题菜单(仅限新游戏并退出)。还有游戏菜单和赢/输菜单。 只有三个级别,但是地图系统是如此简单,我认为它不会教给我太多(我错了吗?)。 未实现的功能: 打破砖块时加电。 复杂的砖块(具有多个“生命值”且无敌)。 更好的图形(我并不是很擅长)。 编程抛光(更密集地使用设计图案)。 这里是其(最小)网页的链接:http : //blog.acamara.es/piperine/ 我为展示它感到kind愧,所以请不要用力打我:-) 我的问题与未实现的功能有关。我想知道什么是最快的(最佳)学习路径。1)在这个项目中实施尚未实现的功能,而这个功能正在变得越来越大,或者2)制作一个新游戏,可能会教给我那些课程和新知识。 回答 我选择@ ashes999答案是因为,就我而言,我认为我应该进一步完善并尝试“发货”游戏。我认为所有其他答案也很重要,因此,如果您来这里时遇到相同的问题,请在紧急决定之前阅读所有讨论。 谢谢你们!

1
蒸汽提交时间
我想知道是否有人在Steam上发布了或试图发布它,以及Steam花费了多长时间来响应您提交的游戏?甚至没有收到确认电子邮件。 是否可以从诸如此类的来源获得预期?到目前为止,我已经向他们发送了两封电子邮件,相隔3周,他们不得不决定如何处理该游戏,并且不能等待更长的时间。
15 steam 

3
从哪里开始实施车辆物理?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 6年前关闭。 我自己的一点背景。我对诸如Havok,Box2D,Bullet等第三部分物理引擎有相对丰富的经验,并已成功将它们集成到自定义引擎中。我还通过阅读一些已知的书来制作了一个简单的物理引擎。 现在,我有兴趣研究车辆物理。有几本书略过了这个主题,但是没有详细介绍,我无法掌握任何有用的内容。因此,我想知道一些不错的书籍/资源,这些书籍/资源不太繁重(这是指一本纯粹的车辆,是为工程师而非游戏开发人员制作的书),可帮助我开始进行车辆物理研究。在这里get started=至少指导我通过在大多数游戏中(暂停/传输等)发现的具有现代功能的3D模型创建简单的载具 注意:我搜索了类似的问题,但未找到问题,但如果存在,请发布链接并随时关闭问题。
15 physics  books  racing 

2
高度图,体素,多边形(几何)地形
关于高度图,体素和多边形(几何)地形: 这三个之间的主要区别是什么? 您可以使用Voxels形成“平滑”地形吗,我的意思是,例如,您可以使用Voxels获得平滑的山峰,还是Voxels仅限于立方体? 在性能方面,如果世界为2000x2000单位,那么Heightmap地形,Voxel地形或基于Polygon的几何地形会更快些?(假定针对每种可能性进行渲染时都获得了“合理的”性能提升/优化) 还有更多用于地形创建的技术吗? 代表每种类型的好标题吗? PS基于多边形的地形应充分训练,没有方形的东西。

1
程序星场发生器
是否有人知道任何程序生成星场的代码? 理想情况下,我希望它是基于物理学的,这样我就可以拥有逼真的行星和卫星。最好的方法是使用C ++,开源并与Ogre3d兼容。 如果没有可用的内容,我不害怕编写大学论文中的代码。

2
在冒险游戏中避免不可能的状态
我正在考虑创建一种相当复杂的自选冒险风格的游戏,但是我正在寻找一种技术或方法来帮助游戏设计。 这将是一个多分支的故事,有时分支会重新折叠起来,您的主要动作会被记住,物品也会被收集。例如,如果玩家在去城堡之前去了沼泽和森林,那么他已经拾起了恐龙骨骼,杀死了独角兽并长出了多余的手臂。如果玩家通过洞穴和地穴到达城堡,他会捡起自行车,闻起来很奇怪。现在,当为城堡开发拼图时,我不想创建一种情况,其中需要两个可能性,例如-需要一个额外的手臂和气味来杀死一个食人魔。 除了非常仔细地记录事件和项目外,还有没有一种过程,可以在电子表格中使用的技术或可以帮助我的软件?

2
游戏主机应该是授权机构,还是另一个愚蠢的客户?
当设计一个网络多人游戏时,一个玩家托管,另一个玩家连接,我知道两种策略: 让主机玩家的游戏为权威,所有其他玩家为哑客户端,试图赶上当前的游戏状态。在代码中,将有很多特殊情况,具体取决于当前播放器是否是主机。 通过在另一个线程上运行隐藏的专用服务器,使主机像其他所有人一样成为哑客户端。专用服务器将成为授权者,而主机将像其他所有人一样(通过localhost)连接到它。 每种优点/缺点是什么?哪个是最常用的(或者它因游戏类型/大小而异)?

2
半固定或完全固定的时间步?
我正在制作iphone shmup,并试图确定要使用哪种类型的游戏循环。我想使用半固定时间步或完全固定时间步。 使用半固定时间步长,我将进行零次或多次update(FIXED_INTERVAL)调用,然后进行一次update(dt)调用,其中每个游戏循环中dt <= FIXED_INTERVAL。据我所知,这种方法的缺点是我的物理update(dt)逻辑将更加难以编程,因为我基本上必须为每次更新都假设一个变量dt。然后我还听说由于浮点值每次都不相同,因此每次游戏的运行都会稍有不同。 然后用固定的时间步长,我进行零次或多次update(FIXED_INTERVAL)调用,然后进行一次插值(dt / FIXED_INTERVAL)调用,其中每个游戏循环中dt <FIXED_INTERVAL。 因此,看来我真正要做的一个重大决定是:我是否想应对使用变量dt实现update(dt)的挑战,还是我想应对实现插值的挑战? 现在,根据我的阅读,大多数人都说要使用完全固定并进行插值。但是,当我考虑实现插值时,似乎比带有变量dt的update(dt)要复杂得多。这是因为如果使用插值,则必须记住先前的状态和当前的状态。因此,如果我想使用插值法,我必须提出一个额外的间接层,以抽象出整个游戏状态。在半固定的时间步中,我不必使用插值法,而我也不必提出游戏状态抽象,因为总只有一个游戏状态,而这仅仅是代表我的敌人和敌人的“全局数组”子弹等 因此,更实际的选择是:知道变量dt会使我的物理更新变得复杂,因此我是否可以半固定地实现它。还是我使用完全固定的并尝试提出游戏状态抽象,以便可以跟踪先前状态和当前状态以执行插值?
15 game-loop 

5
游戏音效的可用性[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 社区中是否需要负担得起的,以游戏为主的音效包?我正在考虑汇总一些特别适合游戏和独立开发人员的效果,这些效果是希望迅速开发出可运行的原型的。是否需要这种东西,或者对于这种事情还有另一个标准的“入门”地点吗?我想为社区提供价值,但想先评估需求。如果有人对此有任何想法,见识或个人见解,我希望能听到!

4
二维等距游戏中的实时阴影投射
我正在用C ++写一个小的2D等距引擎,并且试图实现实时阴影投射。我按照本页上描述的一种简单方法进行操作,结果是(光与黄色立方体位于同一位置): 结果非常好,但是在墙壁和立方体顶部缺少阴影。这是一个看起来像的示例(我用绿色绘制了预期的阴影): 所有绘制的立方体仅由位于XY位置且Z深度(z = x + y)的3个2D方形构成。我将OpenGL与正交矩阵(glOrtho)结合使用。使用模板缓冲区绘制阴影。 我正在寻找可以帮助我完成此影子投射实施的资源或解决方案。 非常感谢!

4
两点之间的弯曲运动
有什么好的技术可以使对象以良好的弯曲运动在各点之间移动? 最终位置也可以在运动中,例如寻的导弹的轨迹。
15 xna  2d  movement 

2
我应该如何自动更新整个游戏的文件?
我应该如何自动更新玩家的游戏资产和可执行文件?最好是免费提供更新软件。更新的大小必须很小,并且不能浪费CPU时间。另外,必须很容易地运行更新服务器来创建新版本或进行物流。 我的用例是用于更新玩家游戏的版本,例如在大型在线客户端中或运行分布式游戏测试甚至是普通游戏。

5
面向艺术家的出租编码器风格的网站[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我的Google-fu使我失望:是否有一个网站与“ 租用编码器 ”相同,但是否雇用艺术家?特别是,我正在寻找一个符合以下条件的网站: 允许我预先指定要查找的作品的样式和范围 允许艺术家“竞标”该项目,包括时间和成本估算 展示竞标艺术家的作品,这样我就可以了解每个竞标者可以期望的质量 专为较小的短期项目或一次性图形设计 似乎“租一个编码器”的原始化身已经死了(以上似乎是某种敲门砖),并且它可能被一个不可持续的市场所杀,这个市场充满了不熟练,不合格的“编码器”对大型项目的不切实际的低出价。在这种情况下,这样的网站可能也不太适合艺术品。 我之所以想要这样的网站,是因为作为一个“卧室程序员”,预算少,在这类事情上经验很少,我不知道我应该在哪里寻找艺术品,或者我应该合理地寻找多少东西。期望支付。因此,一个竞争激烈,市场价格透明的站点将是理想的。 任何有关如何最好地以独立开发人员的方式获取定制艺术品的建议也将受到赞赏。

3
OpenGL ES 2.0点精灵大小
我正在尝试在OpenGL ES 2.0中绘制点精灵,但是所有点的大小最终都是1像素……即使在顶点着色器中将gl_PointSize设置为较高的值时也是如此。 如何使我的点子精灵变大?
15 opengl  3d  android  opengl-es 

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.