游戏开发

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

5
游戏开发的基础是什么?[关闭]
很难说出这里的要求。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 8年前关闭。 我完全不了解如何编码视频游戏。 我是一名初学者程序员,只有编写可进行数学运算或不进行数学运算的控制台应用程序的经验。我不了解这些逻辑过程如何使图像在屏幕上移动(视频游戏)。显然,如果我跳入游戏开发书或类似的书中,我会理解的,但目前我仍然对编程的基本知识有所了解。在使计算机做简单的数学运算与使计算机产生令人惊叹的图形程序(例如视频游戏)之间的过渡中,有人能给出一个简单的解释,并进行明智的编码吗?也许有人可以向我介绍一些入门视频?
12 education 

3
四处移动/避免障碍
我想写一个“游戏”,在其中可以放置一个障碍物(红色),然后黑点尝试避开它,并到达绿色目标。 我正在使用一种非常简单的方法来避免这种情况,如果黑点接近红色,它会改变方向,移动一会儿,然后向前移动到绿点。 如何为计算机控制的“玩家”创建“平滑”路径? 编辑:不是光滑度是主要重点,而是要避免红色阻塞“墙”,而不是撞向它,然后再避免它。 如果我只有3分,我该如何实施某种寻路算法? (如果您可以设置多个障碍,这会使事情变得更加复杂吗?)
12 ai  path-finding 


4
绘制大型2D Sidescroller级地形
我是一个相对不错的程序员,但是现在要为我的2D游戏添加一些基本级别,这有点困扰。 我想做的事情:我的游戏可以接受的大型(8000 * 1000像素)“绿色丘陵”测试等级。 我这样做的最佳方法是什么? 它不必看起来很棒,它看起来不应该是使用线条和油漆桶工具在MS油漆中制成的。 从根本上说,它应该只是在上面覆盖草的草泥上,草以某种形式的丘陵形成。 但是我应该如何绘制它呢?我不能仅仅拿出铅笔工具并开始逐个像素地绘制它,可以吗?

1
将物理和游戏逻辑与UI代码分开
我正在研究一个简单的基于块的益智游戏。 游戏过程由游戏区域中的许多移动块组成,因此这是一个简单的物理模拟。但是,我认为我的实现还远远不够理想,我想知道您是否可以为我提供任何有关如何更好地实现的建议。 我将代码分为两个区域:游戏逻辑和UI,就像我处理许多益智游戏一样: 游戏逻辑负责游戏的一般规则(例如国际象棋中的正式规则系统) UI显示游戏区域和棋子(例如棋盘和棋子),并负责动画(例如棋子的动画移动) 游戏逻辑将游戏状态表示为逻辑网格,其中每个单位是一个单元格在网格上的宽度/高度。因此,对于宽度为6的网格,可以将宽度为2的块移动四次,直到其与边界碰撞。 UI会获取此网格,然后通过将逻辑大小转换为像素大小(即,将其乘以一个常数)来绘制它。但是,由于游戏几乎没有任何游戏逻辑,因此我的游戏逻辑层[1]除了碰撞检测之外没有其他工作。运作方式如下: 玩家开始拖动一块 用户界面要求游戏逻辑确定该棋子的合法移动区域,并让玩家将其拖到该区域内 玩家放手 UI将样片捕捉到网格(以便它位于有效的逻辑位置) UI告诉游戏逻辑新的逻辑位置(通过mutator方法,我宁愿避免) 我对此不太满意: 我正在为我的游戏逻辑层而不是UI编写单元测试,结果所有棘手的代码都在UI中:阻止该部分与其他对象或边界碰撞并将其捕捉到网格中。 我不喜欢UI告诉游戏逻辑有关新状态的事实,我宁愿让它调用movePieceLeft()方法或类似的方法,就像我在其他游戏中一样,但是我对这种方法没有了解,因为游戏逻辑对用户界面中可能发生的拖动和捕捉一无所知。 我认为最好的办法是摆脱游戏逻辑层,改为实现物理层。我对此有一些疑问: 这样的物理层是常见的,还是让游戏逻辑层更典型地做到这一点? 捕捉到网格和片段拖动代码是属于UI还是物理层? 这样的物理层通常可以与像素大小或某种逻辑单位(例如我的游戏逻辑层)一起使用吗? 我曾经在游戏的代码库中看到过基于事件的碰撞检测,即玩家只需拖动棋子,UI就会顺从地渲染并通知物理系统,物理系统将调用onCollision()方法一旦检测到碰撞,就会在工件上撞上。更常见的是什么?这种方法还是先要求法律流通领域? [1] 层可能不是我所要表达的正确词,但是子系统听起来有些夸大其词,而类却是错误的,因为每一层都可以包含多个类。

2
听起来能描述天气吗?
我正在尝试考虑将有助于传达时间和天气状况的声音。我什至不确定我会考虑的所有天气情况,有些情况是显而易见的。就像是在下雨,雨声。但是后来我在想,那是平静的一天呢?如果是早晨,我可以做鸟鸣或类似的事情。夜间可能是猫头鹰之类的东西。声音/天气/时间有哪些好的组合才能产生良好的效果?

3
我应该如何实现单位的​​敌人“意识”?
我正在使用Unity3d开发RTS / TD混合原型游戏。在单位与敌人之间进行“意识”的最佳方法是什么?让每个单位检查到每个敌人的距离并在范围内交战是否明智? 我现在要采用的方法是在每个单元上都有一个触发范围。如果有敌人进入扳机,则部队会察觉到敌人并开始距离检查。这样可以节省一些不必要的检查吗? 最佳做法是什么?
12 ai  unity  rts 

5
为什么强化学习很少在寻路中使用?
最古老的最短路径图理论算法A *及其后续改进(例如,层次标注A *)显然是游戏开发中寻路的首选技术。 相反,在我看来,RL是在游戏空间中移动角色的更自然的范例。 但是我还不知道有一个游戏开发人员已经实现了基于强化学习的寻路引擎。(我不能由此推断出RL在寻路中的应用为0,只是相对于A *和朋友而言,它很小。) 不管是什么原因,这并不是因为这些开发人员没有意识到RL,事实证明RL在游戏引擎的其他位置经常使用。 这个问题不是在寻路中对RL提出意见的借口。实际上,我假设对A *等人的默认偏好。对RL的理解是正确的-但这种偏爱对我来说并不明显,我对此感到非常好奇,尤其是对于任何尝试使用RL进行寻路的人。

3
回合制棋盘游戏服务器参考?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 关于如何构建回合制游戏服务器,有什么好的参考书/书可供推荐?就像是象棋服务器,用于将象棋玩家配对并保持游戏状态。过去,例如,IGS(for go,weiqi)是基于套接字的实现。有什么可借鉴的当代技术?谢谢!

5
2D平台游戏:为什么要使物理依赖于帧速率?
“ Super Meat Boy”是一个困难的平台游戏,最近出现在PC机上,需要出色的控制和像素完美的跳跃。游戏中的物理代码取决于帧速率,该帧速率被锁定为60fps;这意味着,如果您的计算机无法全速运行游戏,则物理会变得疯狂,从而(除其他事项外)使您的角色运行速度变慢并掉落地面。此外,如果关闭了vsync,游戏将运行得非常快。 有2D游戏编程经验的人可以帮助解释为什么用这种方式编码游戏吗?以恒定速率运行的物理循环不是更好的解决方案吗?(实际上,我认为游戏的某些部分使用了物理循环,因为某些实体无论帧速率如何都可以继续正常移动。另一方面,您的角色运行[fps / 60]的速度也一样快。) 我对这种实现方式感到困扰的是游戏引擎和图形渲染之间的抽象性的丧失,它依赖于特定于系统的事物,例如监视器,图形卡和CPU。如果由于某种原因,您的计算机无法处理垂直同步,或者无法以60fps的速度正常运行游戏,那么它的性能将大打折扣。为什么渲染步骤会以任何方式影响物理计算?(如今,大多数游戏会减慢游戏速度或跳过帧。)另一方面,我了解到NES和SNES上的老式平台游戏在很大程度上取决于其固定的控制和物理帧率。为什么会这样,并且有可能在不依赖帧率的情况下在这种情况下创建patformer?如果将图形渲染与引擎的其余部分分开,是否必然会降低精度? 谢谢您,如果问题令人困惑,我们深表歉意。
12 graphics  physics 


5
我什么时候应该使用物理引擎?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 自从发现Box2D以来,我就将其用于我尝试编写的任何类似于游戏的应用程序,从很小的原型或测试程序的小程序到实际项目。 多亏了它,从碰撞到实际的物理处理都非常容易。 不过,有时候我对此有一些疑问:如果我只需要处理圆或AABB,并且不需要先进的物理工具(诸如此类的接头或类似的东西),我认为物理引擎可能会增加某种规模,不必要的开销。 再次提出我的问题:您会在物理非常简单的游戏(例如,超级马里奥)中使用Box2D(或其他物理引擎)吗?而且,如果没有,为什么?
12 physics 

3
为体素立方体景观优化网格
尝试在Unity 3D中创建我的世界/乐高世界风景(通过立方体程序生成的体素风景),我发现为这些风景创建的网格占用了大量内存。网格当前仅由多维数据集可见侧的顶点组成。复杂地形的内存使用可能需要6或700兆。 这些网格可以优化,但是我正在努力寻找一个合适的算法来做到这一点。 该算法必须考虑到您不希望“合并”具有不同地形类型的块。我想一个真正简单的开始可能是只处理一个轴上的所有块,并对其他两个轴进行额外的扫描。 我需要保持网格形状,即不要将顶点合并到更改空白或实体空间的位置。原因是,可能仍需要在网格周围导航的生物/等。因此,我不能只创建一个非常低的细节,扭曲的网格。 有任何想法/建议/提示吗?


2
我如何在XNA中收集微型游戏,使用户可以下载微型游戏包,而主.exe可以在不更改的情况下运行它们?
我目前正在用XNA制作PC游戏。它实际上是一个小游戏的集合(目前有3个小游戏),但是我计划制作和添加更多可下载的“包”。 我的问题是,实现此目标的最佳方法是什么? 目前我的想法是: 创建一个“游戏”界面 为此接口构建游戏,但将其创建为.dll。 让主.exe文件扫描目录并在运行时加载.dll。 我并没有对此想法产生太多的混乱,但是我知道至少有一些应用程序使用了这种插件方法(Notepad ++似乎),但是我不确定有没有做过的游戏(尽管我敢肯定)它们必须存在)。但是,这似乎是一个以前已经解决的问题,所以我想知道是否存在任何形式的既定最佳实践。
12 xna  c# 

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.