GGJ2025《碳酸氢钠》程序开发复盘
我们Global Game Jam 2025的游戏终于发了,以下是聚焦于程序开发方面的复盘
- 项目地址
游戏形式是本地多人轮流操控(单人也行),网页版发布在机核和itch https://leavbear.itch.io/ggj2025-sodium-hydrogen-carbonate
- 项目概述
GGJ 2025的主题是Bubble。游戏的基本玩法是摇汽水增加气泡,一定时间后可以按键把汽水交给对手,最后气泡满了就爆炸
- 时间线(程序开发方面)
1/17 开题
1/18~19 实验基于少量碰撞体的液体与气泡效果
1/20~23 主游戏界面和各种UI
1/24~25 音效
1/26~27 开头、结尾、暂停界面
2/7~10 界面翻新,打包发布
- 亮点
-- GDScript:之前因为Unity的惯性都是用C#,这次发现用了类型声明的GDScript不会比C#缺很多静态检测,而且不用装.Net、可以用Godot 4打包网页版、大部分教程参考都是GDScript,整体体验还是相当不错的
-- 用协程来实现场景逻辑:GDScript的await可以用来等待Signal或者其他协程,可以用来快速组织场景逻辑,例如
func _start_count_down() -> void:
_game_state = GameState.COUNT_DOWN
await count_down.show_count_down(_player_index) # 这里会等到show_count_down()这个协程结束后才继续下一个语句
count_down_label.hide()
_start_turn()
当然如果滥用这个还是会导致函数过于臃肿,或者逻辑跳转过于混乱
-- AI:ChatGPT负责讨论大方向,Copilot负责提升代码效率,这是最好的时代,抑或是最坏的时代?
- 不足与挑战
-- 液体模拟:开头两天跟AI研究了一些模拟液体的方法,最后尝试用较少的碰撞体(50~100个)来模拟液体的体积,用Shader来把球之间“粘”起来来模拟液体的视觉效果,再用往上浮动的碰撞体来实现液体中冒出的气泡,具体效果见图四图五。后来因为效果不如人意就放弃了继续深入这个方案了
-- 忘了更多地用Signal:就如之前提到,用协程来实现场景逻辑太方便了,于是很多逻辑都一股脑写到协程里面,导致主场景逻辑过于臃肿,其实应该要把它拆分出多个场景然后用Signal之类的连接起来
- 碎碎念总结
游戏做完就是最大的胜利
暂时要跟C#说再见了,毕竟你在Godot是二等公民
项目管理还有很大改进空间
评论区
共 条评论热门最新