项目简介
《塔防游戏框架》是一个基于开源框架GameFramework(以下简称GF)实现的塔防游戏Demo。该项目以Unity官方在Assets Store上的Demo Tower Defense Template为原型,使用GF进行再实现和扩展,旨在为个人学习和实践GF提供参考,同时也为其他学习者提供借鉴。
版本信息
- Unity版本:2019.4.1f1
- GameFramework版本:2020.12.31
- Tower Defense Template版本:1.4
游戏简介
游戏预览
游戏介绍
这是一款塔防类型的游戏,共包含五个关卡。每个关卡都有其独特的地形环境、敌人类型和可用的塔。玩家利用获得的能量根据具体情况选择合适的塔,并建造在适当的位置来阻止敌人攻击基地。
能量
玩家初始拥有少量能量,可以通过击杀敌人或建造能量塔来获得更多能量,用于建造和升级塔。
塔
游戏中包含多种类型的塔,包括:
- 加农炮塔:射速高,伤害低。
- 火箭炮塔:范围伤害高,仅限地面敌人。
- 激光炮塔:射速低,伤害高,射程远。
- 能量塔:周期性产生能量。
- 电子脉冲塔:附加减速效果。
- 导弹阵列:对大范围敌人造成高额伤害,存在10秒后自毁。
塔可以升级,提升射程、伤害等属性。
敌人
游戏中有多种敌人,包括虫子、直升机、坦克、Boss等,每种敌人都有其特定的特性和应对策略。
基地
基地是玩家需要守护的目标,一旦基地血量归零,游戏失败。
关卡结算
玩家成功消灭所有敌人并保护基地,即可通关。根据基地剩余血量进行评分。
相关实现
项目使用了GF的多个模块,如全局配置、数据表、实体、事件、文件系统、有限状态机等。
数据配置
游戏内所有数据以Excel形式配置,导出为二进制文件后在运行时加载读取。
本地化
利用本地化模块和资源模块实现游戏的多语言支持。
引用池
项目中重复使用的对象通过引用池进行缓存,减少内存分配。
资源打包配置
所有资源进行打包配置,设置正确的分包信息,确保无冗余和循环引用。
热更新
游戏启动时检测版本信息,进行基本资源更新。
分包下载
游戏对每个关卡资源单独分包,按需下载更新。
注意事项
游戏在Editor下默认以Editor模式启动,即读取工程内资源运行,不会读取AB包也不会进行更新。项目已正确配置打包信息,并完成了相应的热更逻辑的实现,若要测试更新模式,需要在Base组件取消Editor Resource Mode,并确保Resource组件的Resource Mode为Updatable模式。在打包资源并正确部署资源后即可正常运行更新模式(借助HFS等工具可在本地进行部署和测试)。