【独立游戏体验计划】学习记录
一.使用gitee
- 创建gitee仓库。
- 使用sourcetree克隆项目。
- 创建unity模板,将文件导入项目所在地址。
- unity创建以项目文件创建新项目。
- 记得修改后用souretree提交更新(推送按钮)。
二.策划草稿
- 构思你的游戏。
- 完成3C设计(Controller、Character、Camera)。
三.游戏3C实现
- 实现简单的3C建模和控制。
- 若VS2017脚本编写无提示,则确定VS2017装了unity插件,unity项目关联VS2017。https://www.cnblogs.com/lsj89/p/15325188.html
- 如果制作二段跳可以使用isTouchingLayer(ground)来检测是否碰地,但这个ground还需要去player组件中选择ground对应的层。(大概有bug,起跳后还是会感应到触地)
- 注意FindGameObjectWithTag和FindGameObjectsWithTag的细微差别。
- 相机应该使用LateUpdate中,即最后调整视角。
- 注意应该只有一个Player角色以进行跟踪,不要把嵌套的物体都设置为Player。
- 移动放在FixedUpdate(长按可感知),跳跃放在Update(按下用Fixed难以感知)。
四.游戏设计基础
- 游戏设计基础可以分为五类:机制、规则、目标、障碍、奖励。
- 游戏机制通俗来说是游戏核心部分的规则、流程以及数据。定义了游戏如何进行。什么时候发生什么事,获胜和失败的条件。
- 游戏是一个基于规则的系统,可以产生一个不定的切可量化的结果,不同的结果被分配不同的价值。规则约束了玩家的行为,也带来了玩家的目标,玩家为了影响游戏的结果而付出努力,其情绪随着结果而变化(大部分游戏提供情绪价值,小部分游戏提升玩家)。
- 游戏是不可预测的,可以通过加入偶然因素、让玩家做出选择等手段增强玩法(类似rougelike游戏,另外类似旅行?)。
- 玩家的行为通常被分为两类:明确性行为和随机性行为。例如下副本、PK属于明确性行为,玩家会为了实现目的投入时间和游戏资源等成本。随机性行为可以理解为玩家之间的聊天和互动等,通常不伴随有目的性,玩家并不关注这种行为会产生什么后果。
- 明确的目标可以让玩家在游玩的过程中不断达到自己的心理预期,从而产生满足感,合理的目标也可以增加玩家的游戏感受。构建目标时,我们可以使用what why how来设计一组循环。what:这个目标是什么?绝对不要让玩家失去方向感。 why:我为什么要实现这个目标?有了目标还要让玩家有足够的意愿去实现目标,一般的做法会采用实体奖励的机制(经验和装备),但有时候虚拟奖励会对玩家产生更大的刺激(荣誉和赞扬)。 how:我应该怎么做?清楚的指引、合适的难度、隐藏的刺激,注意让玩家保持挑战感和好奇心。
- 游戏奖励能让玩家感受到达成目标的满足感,而不会破坏游戏环节的体验。通常一个好的奖励机制搭配障碍设计,会大量提升游戏趣味性和可玩性。
五.增加玩家射击功能
- 增加射击功能。
- 首先创建子弹实体,然后制作为Prefabs放入Resources文件夹中,在Bullet脚本中编写子弹的速度和销毁,在Player脚本中编写子弹的生成和控制。
六.增加通关目标
- 创建通关条件:碰到绿色方块。为方块添加collider2D并设置isTrigger,设置其tag为Door(添加Tag)
- 创建游戏通关场景,创建一个Panel,在Panel当中添加text。同时创建一个重新开始游戏的button。
- 编写相应脚本。
七.增加游戏障碍
- 常见的游戏障碍:尖刺、坑、跳台、敌人。
- 改变地形制造游戏障碍。可能遇到卡墙问题,为Player加入一个物理材质PhysicsMaterial2D,摩擦力改为0。
八.增加游戏奖励
- 添加Panel和Text记录得分。
- 为Panel添加更新脚本,在Player脚本中调用Panel的更新脚本。
- 注意如果使用TextMeshPro组件,则需要using TMPro,并且把所有的Text换成TMP_Text(大坑)。
九.关卡设计初步
- 构思你的关卡。
- 有趣一点。
十.角色优化
- 增加方向显示,注意同一层次下物体现实可通过order in layer修改。
十一.优化项目结构
- 增加二段跳。
- 使用QFramework轻量级易用框架,框架分为四层:表现层、系统层、数据层、工程层。