编写游戏程序的一些启示
💡
原文中文,约8300字,阅读约需20分钟。
📝
内容提要
在GameJam上,游戏原型开发常需数年,作者探讨时间消耗原因。尽管熟悉技术,游戏玩法开发却不顺畅。为寻找灵感,决定制作桌游电子版,使用自研引擎soluna,享受开发过程,记录迭代,探索设计与实现的平衡。
🎯
关键要点
- 在GameJam上,游戏原型开发需要数年时间,开发时间消耗原因复杂。
- 尽管熟悉技术,游戏玩法和交互开发不顺畅,开发周期往往超出预期。
- 为了寻找灵感,决定制作桌游电子版,使用自研引擎soluna,享受开发过程。
- 选择soluna引擎是因为不需要依赖现成的黑盒引擎,享受底层开发的灵活性。
- 记录开发过程中的迭代,虽然代码中存在临时方案和复制粘贴,但重要的是过程。
- 采用立即模式编写游戏,减少状态管理复杂度,简化开发流程。
- soluna引擎最初只提供基本的图形API,快速实现了简单的demo。
- 设计卡牌游戏时,考虑到卡牌的交互和视觉表现,需简化设计流程。
- 集成Yoga库进行排版设计,使用Lua和自定义语言描述布局。
- 在设计中考虑到本地化和文本拼接,使用统一的语法管理文本。
- 实现动画表现以提升游戏的互动性,设计过程中遵循逻辑与表现分离的原则。
- 开发状态机模块,使用Lua的协程管理游戏状态,简化逻辑实现。
- 设计焦点管理模块,使用回调函数处理鼠标交互,避免复杂的状态管理。
- 界面设计中引入图层概念,管理不同状态下的界面元素,提升管理效率。
- 按钮交互管理采用平坦集合,简化查询条件,提高开发效率。
- 开发过程中保持舒适的节奏,避免急于试错,注重思考与实践的平衡。
❓
延伸问答
为什么游戏原型开发需要花费数年时间?
游戏原型开发时间消耗复杂,尽管技术熟悉,游戏玩法和交互开发往往不顺畅,导致开发周期超出预期。
选择使用soluna引擎的原因是什么?
选择soluna引擎是因为不依赖现成的黑盒引擎,享受底层开发的灵活性,并能快速迭代设计模式。
在游戏开发中如何简化状态管理?
采用立即模式编写游戏可以减少状态管理复杂度,简化开发流程。
如何处理游戏中的文本本地化问题?
使用统一的语法管理文本,通过点分割的ASCII字符串进行查表转换,减少翻译工作量。
在游戏设计中如何实现动画表现?
通过设计运动轨迹和视觉表现,增强游戏的互动性,同时遵循逻辑与表现分离的原则。
开发过程中如何保持舒适的节奏?
保持舒适的节奏,避免急于试错,注重思考与实践的平衡,可以节省实作耗掉的精力。
➡️