视频文案¶
1 开发日志 01¶
一直想做个自己的游戏,十月一宅在家里几天,刚好学习游戏开发。
之前简单学习过 godot3,最近有很多 godot4 的教程。
正好跟着教程边学习边做一个简单的游戏练练手。
因为平时有工作,只有偶尔晚上或者周末可以自己玩一会。
打算用半年时间做一个基本的 2d 割草游戏。录个开发日志,来督促自己完成这件事情。
之前跟游戏开发没有任何交集,玩法尽可能简单,确保自己可以完整做完。
守住基地,一共10天。
每天分为白天和黑夜。白天负责建造城墙,夜晚抵御丧尸攻击。
白天(建造模式):建造围墙、装备武器、安装武器模块、叠buff。无人物控制
黑夜(战斗模式):控制人物战斗、使用物品
人物:无等级,数值固定。
武器:只有武器(无技能和装备),武器可以安装模块。
物品:移速、生命、回复等
怪物:每种怪物有一些特殊技能
人物可以移动、瞄准、射击、换弹、换枪
简单的实现了下背景音乐和音效。音效就是射击、换弹、换枪
没找到godot直接将excel转成Dictionary方法,看教程都是json作为本地数据管理。就用QXlsx将excel转成json,让后godot读取json。
每次调整表格后都要执行下脚本。虽然兜了一圈,反正本来就是自己玩,适合自己的才最好。
用tilemap做的地图,本来觉得根据层实现:地板、装饰、墙、碰撞等。让后自动生成导航网格,找了半天资料发现根本不行。
不说期望导航可以自己拼接和组合了,就连两个挨着的网格重复顶点都不能合并。
花了两天研究了下GDExtension和clipper2实现了下tilemap可以根据不同层来实现拼接剪裁导航区域并且合并重复点。
一直当是家里这个笔记本很烂,300个怪物就开始卡。
去掉怪物间的碰撞和子弹碰撞换成NavigationAgent,怪物跟随做了下分组,玩家移动超过一定范围才更新目标位置。
本来想把怪物和墙碰撞也去掉,但是这样NavigationAgent会把怪物挤穿墙。
终于到1500个才开始掉帧。
没有经验,一开始用的碰撞,但是子弹快了会穿墙和穿怪物,研究了下教程改成RayQuery。
2 开发日志 02¶
大家好呀,这里是Beyond欣。正在学习游戏开发。
没有使用过Godot的UI,最近看到一个开源游戏Duelyst,主页面简洁又好看,资源拿来了解下Godot如何搭建UI。
武器共6种:手枪、glock手枪、UZI、AK47、散弹枪、狙击步枪。
每个武器包含动画:换枪、装弹、瞄准、射击。
换弹、射击时增加进度条提示。
增加武器测试场景,包含:靶心、伤害显示、所有武器。
增加武器UI,实现武器选择、给武器安装模块,简易版的PUBG。
本次记录就到这里,下期再见。
3 开发日志 03¶
大家好呀,这里是Beyond欣。正在学习游戏开发,打算做一个 2D割草游戏。
通过录开发日志,来督促自己完成这件事情。
最近工作比较忙,周末加班两天。学习进度就慢下来了。
尝试了下AI绘图(DALL·E 3),感觉还蛮好玩的。选了一张搞了一个简单的游戏主页面。
游戏场景右侧增加属性显示、左侧增加武器显示UI,选中的武器会高亮显示。
射击和换弹都增加动画用来显示CD。
新建测试场景“靶场”,靶场里增加了所有怪物的稻草人,根据描边区分等级。
击中怪物后增加伤害显示。
本次记录就到这里,下期再见。
4 开发日志 04¶
大家好呀,这里是Beyond欣。正在学习游戏开发,打算做一个 2D割草游戏。
通过录开发日志,来督促自己完成这件事情。
开始新游戏后增加【人物选择】,制作了所有人物。
增加【加油站】场景,模拟夜晚,并随机刷新3波怪物。
本次记录就到这里,下期再见。
5 开发日志 05¶
大家好呀,这里是Beyond欣。正在学习游戏开发,打算做一个 2D割草游戏。
通过录开发日志,来督促自己完成这件事情。
增加了场景切换动画
增加属性图标、血槽、护甲槽,字体改为像素风字体
增加受伤动画和死亡动画,碰撞到敌人后受伤,未来所有敌人攻击和技能伤害全部为1
人物死亡后增加游戏结束场景
本次记录就到这里,下期再见。