十字路口的选择
在那个换卡玩时代,我最怕的就是有这款游戏的卡带,通常只要有这款了,其他的游戏一定就是《超级玛丽》、《火箭车》一类的游戏,
如果你经历过FC时代,应该就知道,这种卡带都是小游戏,很容易玩腻。
时过境迁,记忆深刻却是这些曾经看到就烦的小游戏,所以这次复刻的就是这款经典的《DigDug》,也叫充气人、打气狗。
整理思路
最重要的一步就是……重温经典,嗷嚎果然我依然那么菜,还是打不过几关命就用完了 但是这不重要,弄清楚基本玩法这样我就可以开工了。
充气人我玩到过两款,一代是推土+充气,二代是割地+充气,我要复刻的就是二代版本
游戏要素
1.攻击方式:割地让怪物掉入海里、使用打气筒给怪物加油打气
2.怪物行为:会追逐、攻击、巡逻和跳海(原作中怪物跳海很有趣,我会特意留一只怪看他表演)
3.怪物种类:据我观察有红色炸弹和绿色小恐龙,我比较菜,不知道后面关卡有没有其他的
4.地图特色:这些地图应该都是精心设计的,当时伙伴们会比赛谁割的地块更大或者更有效的杀敌
上述也是这次复刻比较重要的部分
技术选型
引擎:在其他项目尝试中发现godot4.x导出安卓会很麻烦,所以这次使用godot3.5,如果不出意外后续也后使用3.5版本作为默认版本
资源:使用 Aseprite 做像素图,并没有完全照抄原作,更多的是把回忆中的样子画了出来
音乐:听多了纯8Bit音乐真的有点燥得慌,so……我就不加音乐了,后期会尝试别的电子乐混8Bit,可能会好些
杨帆启航
资源、思路、准备
不想让游戏中的怪物、角色动作太僵硬,所以打算使用2D骨骼技术,让动作更加平滑,同时能减少资源数量,至少不用一个动作就要画上好多张图了。所以我画出来的怪物变成了这个样子,不过绑定调整好动画后,效果还是可以的。
还有一些对于游戏玩法的想法,作为一个玩家,我和怪物一样的大小,为啥让怪物碰一下就凉了,这……很不合理,只要不是攻击,那应该不会有啥影响,但是这样对怪物又有点削弱了,所以给怪物增加一个冲撞的攻击方式吧,小恐龙也是类人生物,那他们应该会说话吧,应该也会思考吧……
原版UI即简洁又好看,这个应该尽量还原一下
搭建_UI
首先将可能用到的界面都先整理开发好,包括最基本的布局,以及场景的分类
布局尽量还原原版,场景可以分为Logo、选择界面、积分界面、游戏主界面这几个,通过不断循环即可完成整个游戏逻辑了
游戏数据
这个游戏一个很重要的元素就是地图,为了更方便的扩展游戏地图,我是用二维数组对图块进行保存,在游戏时动态的判断地块的状态刷新游戏界面。为了方便统一管理,我把怪物数据也放在了这个数据集中
代码实现
具体逻辑还是要看代码,我这里主要列举出比较重要的部分
1.小恐龙的火焰、红色炸弹的引线都使用了粒子系统
2.小怪物们使用状态机维护当前状态,比如攻击、追逐
3.怪物使用了同一个骨骼动画,如果你想增加怪物,只要绑定骨骼就可以了
4.地块有几个保留的序号,对应了不同的裂纹,是“是否坠落”的一个重要标识
5.地块使用了地图集,如果扩展你只需要调整地图集序号即可
6.地图数据使用泛洪算法计算状态
7.如果你打算给玩家增加新的武器,你可以看下充气抢的具体实现,充气抢是单独的实现!
结束语
其实在这个小项目设计之初,我有好多想法,比如地图编辑器、多人模式、吸血鬼玩法这些,但是有点背离复刻的初衷,复刻这些经典游戏,是为了对玩法实现,数据和周边工具运用的尝试,所以至此这个小项目就算完结了。
最后分享一下
源码版:https://download.csdn.net/download/at555444/88439951
发布版:https://download.csdn.net/download/at555444/88439952