HTML5游戏设计与制作(进阶篇)
软件开发难吗?
让我们通过简单的游戏开发,了解软件开发的基本步骤:
- 游戏策划
- 游戏分析与设计
- 编码
- 玩家测试与发布
实验目的
- 了解软件开发的基本过程
- 学习一些面向对象的编程思想
- 开发一个简单游戏
实验/学习工具
Construct 2:https://www.scirra.com/construct2
实验步骤
1、如何策划一个游戏?
为了描述一个游戏,通常需要写“概念(concept)文档”,明确游戏的创作动机、目标市场、游戏故事、玩法、道具与规则等内容。用来吸引投资人、玩家,让人们觉得可玩、好玩。
例如:
楔子(Setting):大汉建宁年间,张角大王召集六个小矮人造反。到处追杀我子民,民不聊生。天子我手持倚天弓,跨霹雳箭,踏上保家卫国的征程。
玩法(Gameplay):玩家射死张角和六个小矮人任务完成。玩家被杀或子民被杀完,任务失败。玩家使用鼠标避让飞来的敌人,并发射短箭……
人设与道具(Game Sprites):
- Player:倚天弓。有很强的生命值,可以抵抗多次敌人的撞击。可以360旋转,连续无限量向前发射霹雳箭。
- Boss: 张角大王。 …
- …
“概念(concept)文档”最重要的是描述玩家游戏的任务与玩法,同时说明游戏中有哪些事物,以及事物的特征(重要属性)和基本规则。最后给几个游戏的界面(草图)。游戏策划写法很多,参见手机应用商店游戏介绍。
注意:construct2 社区版的能力有限,简单可玩就可以了。
2、面向对象的分析设计方法
将游戏的事物(Things)映射到游戏对象(Objects),然后根据策划中对象的描述,定义这些对象的属性,如图片、位置、尺寸等,再描述对象与系统设备、其他对象交互的行为。最后,用游戏系统框架提供的层(Layer)将这些对象组织起来,形成背景、游戏内容等层次。
例如:
- Player是一个对象,你可以定义它属性(图片)、交互行为;当游戏运行时,游戏引擎自动事例化该类。
- 在“Create some more monsters”中,我们根据一个Monster生成了 7 个具体的Monster。每个Monster是独立的物体(Object),他们可以独立的赋予属性值,产生事件,执行动作。
通过对象、对象的属性和行为,将游戏世界与计算机世界联系在一起。我们称这种方法为“面向对象”的编程。
在游戏世界中,大多数游戏对象都是由图片表示,又称精灵(Sprites)。
3、编程
使用可视化工具,我们定义的游戏中的对象(数据及其表示)。编程的任务就是特定条件下,用系统提供的操作序列去改变这些对象的属性(数据)。你可能已明白,这就是程序的定义。
一般游戏编程的顺序是:
(1)处理外部事件(process external events)
外部事件包含交互设备和游戏系统提供的事件(对象、条件、动作序列)。
交互设备事件:
mouse | on left button clicked | actions
游戏系统事件
system | on every tick |actions
(2)处理内部事件
game object event actions
4、游戏开发小结
这里我们介绍的是 CRC(Class-Responsibility-Collaboration)卡片方法。一句话描述该方法,从游戏故事(描述)中提取所有精灵,建立如下卡片,然后再编程。
+---------------------------------+
| Object Name |
+---------------------------------+
| Attributes |
+--------------+------------------+
| Collaborator | Events & Actions |
+--------------+------------------+
| | |
+--------------+------------------+
例如:
Object:子弹
Attribute:图片,位置
Collaborator:精灵 Events & Actions:碰撞 & 销毁自己
任务要求
运用面向对象的思想,使用“Construct 2”开发一个小游戏。
温馨提示:
- 网上资源很多,你可以参考这些资源做一个你喜欢的游戏
- 你的任务不是做一个复杂的游戏,而是聚焦如何描述小游戏,整理CRC卡片,使得编程过程更有条理,逻辑更严密。
任务提交制品: 第十一周 的博客。该博客必须包括:
- 使用 “抠抠视频秀” 等工具制作的 GIF 成果动画
- 必须包含:游戏的策划、游戏设计两个小结。其中游戏设计仅需要每个游戏对象的 CRC 卡片,不需要代码。
评价标准
- 5分:满足任务要求;技术博客;行文、逻辑较好
- 4分:基本满足任务要求;技术博客;
- 3分:有提交