购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

导言

从前制作游戏时经常需要使用很多特殊工具。现在不同了,只需浏览器和文本编辑器就行。不仅仅是HTML5游戏,采用其他技术来制作游戏所需的时间与成本也比原来大大降低了,现在只需几天,甚至几小时就能做好一款游戏。独立游戏开发者的参与平台正在渐渐扩大,比如“游戏制作节”(game jam),这是一种以多人在线协作方式迅速制作游戏的开发者集会。

game jam通常为期48小时,大型的在线开发者聚会活动(如Global Game Jam与Ludum Dare等)都是这么长的时间。不过游戏设计师们都喜欢自创规则,所以有些jam可以短至仅1小时。除了能增进沟通及协作能力之外,游戏制作者还能迫使自己练就迅速制作游戏的本领,以便下次能更快做好游戏,这项本领对长期与短期游戏项目都有好处。

不是只有独立游戏开发者才需要“快速制作东西”这项技能。软件公司也需要,他们把这称为“生产力”。有句口号叫做“变得更聪明”,可惜这句话说得很不明确,其实,要想提高工作效率,“找对工具并善用工具”才是更高明的办法。这句话所传达的信息更具说服力,要是把数学等知识也包括在“工具”一词的定义中,那就更加能令人信服了。

笔者起初列了份清单,其中有一百多个HTML5游戏引擎,成书时将其缩减,只保留了最优秀的几个。通过这些引擎,以及本书中提供的工具,就能用浏览器快速制作出游戏来了。使用这些引擎很简单,只需把对应的JavaScript代码载入HTML文件即可,偶尔可能需要添加一两行代码。总的来说,笔者选定的这些引擎都有良好的开发文档和活跃的支持社区。某些引擎可能比其他引擎要大一些。它们都提供了开发游戏所需要的特有功能,等学过几个引擎后,你就能体会出各引擎之间的异同了。

本书每章讲解一个引擎,并选一种游戏类型与之相配。读者在阅读过程中会发现,随着游戏类型越来越复杂,所选的游戏引擎也必须功能越来越丰富才行。读完本书之后,再学其他游戏引擎就非常轻松了,你甚至可以自己拼装一个引擎玩玩。

本书所讲的每个游戏都只需几个小时就能做好。那大家可能要问了:每个类型里所举的那个范例游戏,会是我所喜欢的吗?笔者觉得……很有可能不是。本书要做的是剖析这些游戏类型,将每个类型都分解成几个基本部件。这就好比盖房子,本书只是打好地基,立好框架,竖好白墙。某些情况下笔者可能会略加点缀。然而尚有不尽如人意之处,比如屋顶可能会有个大洞,比如墙上可能挂的是笔者喜欢的画作而非你自己喜欢的那幅。没关系,你可以自己动手,比方说,设个庭院,铺上粗毛线毯,再种几株银杏。可以把我挂的那幅画换成你自己喜欢的。我只是告诉你从哪里获取相关素材而已,至于具体如何布置,那都由你决定。本书就是如此:读者按照自己的需要来行事即可,只要把自己想要的东西添上去,这就是你自己的游戏啦。

读完本书之后,大家很容易就能构想出一款自己所中意的游戏,将其拆解为若干功能,并使用本书所讲的这套工具,以相似的流程把它做好。大家甚至都能预估出游戏的制作难度和所需时长。如能善用工具,并且创意颇佳,那我想你应该能制作出一款好游戏,把大家立刻迷住喔。

读者对象

若你打算阅读本书,我想可能有几个原因。如果你是对游戏感兴趣,并想学着编程,那这本书很合适。如果你是一名网页开发者或设计师,正在寻找制作游戏所需的工具、技术与模板,或者你是一位JavaScript程序员,想从入门级提升为中级水准,那么这本书也很合适。如果你是一名游戏设计者或开发者,原本在制作flash游戏、移动/桌面端的原生游戏,或其他平台的游戏,而现在想来看看怎样在HTML5/JavaScript环境下开发游戏,那么这本书还是很合适。但如果你把HTML5盾形图标纹在身上,经常展示自己为开源社区贡献的游戏引擎代码,而且只花一个周末就能用HTML5开发出“Mario 64”这种游戏,并能将其移植到iPhone上面,那恐怕就不需要读这本书了吧。

本书代码风格及行文约定

新加入的或有所更改的代码行,用粗体标出。程序清单里省去的一行或多行代码,以省略号(...)标识。如需刻意指明某行已经删掉或改掉的代码,则以注释形式(以//开头)将原来的代码写在删改前的位置上。若整段程序清单都是新代码,则不加粗。

接续符( )表明当前这行代码是接着上一行代码来写的。

提示

某些需要稍加解释的内容,会写在这种“提示”框里面。

技巧

那些值得一提但却不适合放入正文的内容,作为“技巧”列于此处。

警告

某些不太明显的地方,或是在不知情时容易出问题的地方,写在“警告”框里面。

本书内容组织方式

本书分为11章,从第1章~第10章每章都讲一个游戏,最后有三个附录(附录A讲解了JavaScript的基础知识,附录B讲解了管控代码质量的方式,附录C列出了制作游戏时要用到的资源)。读者在阅读第1章时,不需要任何HTML、CSS或JavaScript基础,也不要求会使用各种工具。然而在阅读后续各章之前,最好能先把附录A与第1章掌握了。从代码角度来讲,后续每一章都不需要用到前面各章的代码。不过,各章所讲述的游戏类型渐趋复杂,所以最好是先把比较简单的几种游戏类型学会,然后再学后面的章节,这样会更顺利些。第11章可以作为一份指导材料,它告诉大家读完本书之后应该继续学习哪些内容。最后的附录C里还有一份资源列表可作为补充材料,其中列出了本书第1章~第10章创建游戏时所用的工具。

每个游戏的制作过程都分解为数个步骤,而每一步又细分为若干段代码与文本,这样便于大家理解。这些步骤所对应的源文件均可在jsarcade.com网站中找到。也就是说,每一步所对应的源文件都放在一个文件夹中,而这些文件夹及其中的代码均可从本书英文版配套网站里下载。如果在阅读过程中“迷了路”,或是想跳读,那么可以抛开当前这一步的代码,直接从后续步骤的代码开始研究。有时也许想看看这个游戏的最终成品是什么样,那就可以直接调到“final”目录,这里列出了每章所做范例游戏的最终版本。

在掌握了第1章与附录A之后,如果对本书其他各章还是看不太懂的话,那么可以参考附录B,其中讲了很多避免编程困境的办法,以及遭遇编程难题时的解决方式。

本书阅读方式

为了充分理解书中内容,需要下载每章的源代码。这些源码包括JavaScript、HTML、CSS、图片,以及每一步所需的全部附加文件。这些都能在jsarcade.com上找到。代码首先按每章章名分成数个文件夹。每章所对应的文件夹里,都包含运行本章游戏所需的全部代码,这些代码会放在三种不同类型的目录中。“initial/”目录里含有运行游戏所需的最基本代码。“after_recipe<x>/”目录中包含执行完每一步之后的“成果” (基本上对应于每一章内的节标题),这样的话,即便在阅读时乱了思路,也没有关系,因为顶多只有一两页稍微看不明白而已,你马上就能在下个步骤开始时重新整理思路。“final/”文件夹下的代码表示每章范例游戏的最终状态。在每一章中,每个步骤所对应的文件夹里都有名为index.html的文件。可以双击打开该文件,也可以通过其他方法将其放在浏览器中运行,此时看到的效果就是执行完该步骤后游戏所应有的样子。每个范例游戏的最终版本均可以在jsarcade.com网站上找到,可以访问该网站,预览一下每个游戏,然后从中选定自己喜欢的游戏类型并实现它。

提示

所有游戏源码、游戏引擎及其他相关软件均可在jsarcade.com网站或informit网站(informit.com/title/9780321898388)中下载。

本书可以跳读,然而要知道,每一章所讲的游戏类型都会比上一章复杂。如果碰到无法理解的地方,可以查看每个步骤所对应的成果代码(也就是after_recipe<x>文件夹中的代码),而且还需特别留意第1章与附录A,看看自己是否已经掌握了其中的内容。如果在制作游戏的过程中出了错,而又不明白其原因,那么请阅读附录B。

学完一章之后,你也许会觉得游戏中好像还是缺了点儿什么似的。你可能还想实现一个爆炸效果,还想添加一出精彩的剧情,还想设计一场“Boss战”(boss battle) 。每章结尾都给出了诸如此类的建议,你可按照这些建议来改进游戏,如果你有不同的见解,也可以按自己的想法行事。只要在电脑中运行了这些游戏代码,它就算是你自己的作品了。这些代码本来就是模板,本来就是可以修改、扩充,并按自己喜好来定制的。若你修改之后的游戏比笔者原先写的还要好,那我绝不会嫉妒,而只会乐见其成的。 cwxOw8BOH+BE15PeJXEWURmHbX/xDIkrpDbGwZZ48KuxSxETGpuUCziB6Vp1tEJ0

点击中间区域
呼出菜单
上一章
目录
下一章
×