我目前已经记录了大约96.8小时的时间,希望能听到你的意见...
我对游戏开发是非常新手,这是我的第二个功能游戏。总体来说,这个游戏尝试将防御塔和打字生存游戏的元素结合在一起。我的主要目标是学习引擎(Godot),学习GDScript,并为未来项目建立一个可行的工作流程。
目前还没有音效,但它们已经计划实施。 我相信它们将显著改善游戏体验。 UI 元素目前只是占位符。
敌人和 Nexus(旋转的晶体)的图像不是我的作品(从 itch.io 免费下载),但我已经对它们进行了风格化处理,以适应背景并与背景形成对比。
这个游戏不是一个使用 AI 的游戏,即使我使用和依赖 AI 进行脑力激荡、系统架构设计、调试、故障排除、研究、提供代码示例和参考、解释特定问题和逻辑片段。 但是,游戏中的代码是由我编写的,因为我正在努力学习游戏开发的内在细节。
游戏还很早,仍然有很多需要修复的 bug(一些 bug 在视频中已经展示了),例如多个敌人触发循环,在软锁(第一和第二个字母之间)发生时会重置每个字的健康。 我正在考虑添加一个单词限制功能,它将检查每个单词的第一和第二个字母,并限制它们从重叠的位置出现。如果你有任何想法或建议,我非常欢迎。
当前项目结构(概述):
- 敌人的总健康值由它携带的单词长度决定(例如,一个 4 个字母的单词“crab”赋予它 4 个健康值)。 每次成功命中减少 1 个健康点,代表一个正确输入的字符。
- 使用权重随机分布系统(WaveManager.gd)选择随机单词。
- 所有单词(简单、普通、困难、非常困难)都存储在 JSON 文件中,每个难度级别有 250 个单词。总池:1000 个单词。
- 我目前正在处理输入逻辑(InputHandler.gd),它是一个全局访问脚本。
- 我的 ListLoader 和 InputHandler 都设置为全局自动加载,以便其他系统可以完全访问它们。
- 我使用 main.gd 作为连接大多数脚本的“粘合剂”。
- 项目发射器是一个独立的场景,它根据锁定的敌人方向反转,以便从屏幕中心直接发射。 他们在每个有效按键按下时被激活。
- 在 enemy.gd 脚本中,我实现了一个酷的(在我看来)反弹机制,当发射物击中敌人时,它会在击中时产生反弹效果。 这是通过一个简单的 if 语句实现的,紧密地与健康逻辑相关:
if health > 0: recoil_velocity = -direction * knockback_impulse_force
- direction 表示指向屏幕中心(Nexus)的向量。 将它乘以一个负数(-direction)会将其反转,创建一个指向 Nexus 的向量。 这个向量乘以 knockback_impulse_force(180 像素/秒)并分配给 recoil_velocity。 在 _process 循环中,这个速度将暂时取代敌人的前进速度,导致它在视觉上后退之前受到摩擦的影响。
- 当前敌人在全 360 度周边随机生成,但这会导致重叠问题。 我正在考虑将生成向量分裂到 36 或 72 个(不确定哪个是适合我的规模的)。 我很想听听你的意见。
评论 (0)