View on GitHub

软件工程导论课程支持网站

Supporting Site for the course of Introduction to Software Engineering

HTML5游戏设计与制作(进阶篇)

  软件开发难吗?
  让我们通过简单的游戏开发,了解软件开发的基本步骤:

实验目的

实验/学习工具

Construct 2:https://www.scirra.com/construct2

实验步骤

1、如何策划一个游戏?

为了描述一个游戏,通常需要写“概念(concept)文档”,明确游戏的创作动机、目标市场、游戏故事、玩法、道具与规则等内容。用来吸引投资人、玩家,让人们觉得可玩、好玩。

例如:

楔子(Setting):大汉建宁年间,张角大王召集六个小矮人造反。到处追杀我子民,民不聊生。天子我手持倚天弓,跨霹雳箭,踏上保家卫国的征程。
玩法(Gameplay):玩家射死张角和六个小矮人任务完成。玩家被杀或子民被杀完,任务失败。玩家使用鼠标避让飞来的敌人,并发射短箭……
人设与道具(Game Sprites):

  1. Player:倚天弓。有很强的生命值,可以抵抗多次敌人的撞击。可以360旋转,连续无限量向前发射霹雳箭。
  2. 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”开发一个小游戏。

温馨提示

任务提交制品: 第十一周 的博客。该博客必须包括:

评价标准