根据我在游戏开发和游戏开发方面的经验,这里有关于游戏引擎、编码和快速游戏开发的 10 个经验教训。
——瑞安·埃斯蒂斯
十月初,由 主办的首届 Open Jam 吸引了来自全球各地的 45 支队伍参赛。参赛队伍只有三天时间使用开源软件制作游戏参赛,最终三支队伍脱颖而出。
我们在大学举办了自己的 Open Jam,欢迎任何想参加的人。我们预订了周末的计算机实验室,教大家使用开源软件创建游戏和游戏资产:游戏引擎:Godot、音乐:LMMS、2D 资产:GIMP、3D 资产:Blender。我们的活动推出了三款游戏:Loathsome、Lost Artist 和 Paint Rider(由我制作)。
根据我在游戏开发和游戏开发方面的经验,这里有关于游戏引擎、编码和快速游戏开发的 10 个经验教训。
1.规模有限
想要制作一款大型冒险游戏或反映您最喜欢的游戏的东西很容易。如果您有一些经验游戏开发,超越游戏 Jam 可能会很酷,但不要高估您拥有的时间。我欣赏游戏 Jam 的一点是,它们迫使您快速将游戏从概念变为最终产品,因为您时间太少了。这就是为什么范围如此重要。
这次 Open Jam 的主题是“留下痕迹”。这个主题一出,我和朋友们就开始讨论什么样的游戏适合这个主题。一个想法是做一款 3D 拳击游戏,玩家可以在敌人身上留下伤痕。我几乎没有做 3D 游戏的经验,如果想做好,我必须花太多时间学习如何让痕迹合理、打击有效,然后才发现它的可玩性。
2. 尽早开始游戏
这是我对于游戏开发大赛最中肯的建议。尝试正确掌握核心机制,快速编写代码,以便测试并决定是否值得将其制作成完整的游戏。你不应该等到几个小时后才可以玩你的游戏。对于像 Open Jam 这样为期三天的活动,获得一个可以运行的演示不应该花费超过几个小时的时间。
3. 保持简单
您要添加的每项功能都会延长整体开发时间。您无法知道提交新功能是否需要花费大量时间,因为您无法快速使其运行。街机风格的高分创作往往在游戏开发大赛中表现良好,因为它们本质上很简单。一旦核心完成,您就可以开始添加功能和完善,而不必担心最终游戏是否正常运行。
4. 从其他游戏中获取灵感
你可能想制作一些完全原创的东西,但有一个原型来构建是非常有用的。这将节省你重新发明轮子的时间,因为你已经知道什么是有趣的。告诉自己,你练习得越多,制作一个包含你自己想法的大型游戏就越容易,所以你也会得到很好的练习来重现别人的作品。
考虑到 Open Jam 的“留下痕迹”主题,我认为制作一款在玩游戏时留下油漆痕迹的游戏会很有趣,这样你就可以看到自己留下的痕迹。我记得老动画游戏 Line Rider 2 Beta(后来称为 Paint Rider),并且知道复活节彩蛋,你可以在玩游戏时按住 Control 键来画一个标记。我将这个概念简化为甚至只有一个按钮来垂直移动。(更像旧的飞机游戏)。在 Jam 上大约一两个小时后,我有了基本模型,它可以通过按钮上下移动并留下小的黑色圆圈标记。
5. 不要忽视可用性
确保尽可能多的人可以玩你的游戏。Open Jam 提交的其中一款游戏是一款 VR 游戏。虽然很酷,但几乎没有人能玩它,因为没有多少人有 VR 设备。幸运的是游戏开发,它的开发者并不指望能赢得好成绩,只是想练习一下。但如果你想与人们分享你的游戏(或赢得游戏 Jam 活动),注意可访问性很重要。
Godot(和大多数其他游戏引擎)允许您在所有主要平台上发布游戏。提交游戏时,尤其是提交给 Itch.io 时,对于大多数人来说,拥有浏览器版本就足够了。但请尝试在尽可能多的平台和操作系统上发布。我甚至尝试在移动设备上发布 Paint Rider,但技术有限。
6. 不要让事情变得太困难
如果你的游戏需要花费太多精力去学习或玩,你就会失去一些玩家。在游戏规划阶段,保持游戏简单和范围有限非常重要。同样,想出一个需要十天半时间才能开发的宏伟游戏创意很容易;但制作一款有趣、简单的游戏却很难。
在向我妈妈介绍了 Paint Rider 之后,她很快就开始玩这个游戏了,我想我不需要向她解释更多。
7. 不要太整洁
如果你习惯花时间研究设计模式,确保代码可重用且适应性强,那么请试着放松一点。如果你花了太多时间思考设计,当你终于可以玩游戏时,你可能会发现游戏并不好玩,到那时再去修复它就太晚了。
此过程也适用于简化更严格的游戏:快速编写概念验证演示,直到找到值得成为完整游戏的东西,然后就可以开始构建完美的代码来支持它。为 Game Jam 活动创建游戏就像快速开发概念验证演示一样。
8. 但不要太随意
另一方面,即使游戏开发的代码库并不大,意大利面条式代码也很容易失控。幸运的是,大多数游戏引擎都考虑到了设计模式。以 Godot 的信号功能为例,节点可以向它们“连接”的节点发送数据信息——这就是你的设计中自动形成的观察者模式。只要你知道如何利用游戏引擎的这个功能,你就可以快速编写代码,你的代码也不会特别难读。