2013/10/21

关于《HTML5游戏开发进阶指南》

去年年底,我翻译了国外网站 Learning ThreeJS 上的 6 篇关于 ThreeJS 的入门教程,并发表于我在博客园的博客上。没有想到被博文视点的任晓露编辑看到,她联系我,问我是否愿意翻译一本关于 HTML5 的书籍,Pro HTML5 Games。拿到样书并浏览一遍之后,我自认为能够承担这项工作,而且这么酷的机会,真是难以让人拒绝。所以我接受了这项任务。

现在,这本书总算出版了。看到自己的文字(虽然是翻译的)变成铅字,成就感简直要爆棚了。

链接:亚马逊 京东

译者序

香港回归那一年的某一天,我第一次在同学家的电脑上观摩了他玩「红色警戒95」这款游戏的过程。至今我依然记得,当时他操纵着一辆吉普车和几名步兵,在地图上探索。队伍所到之处,原先覆盖着的黑色迷雾就会散去,显现出其下的地形来。说实话,我被这个效果深深地震撼了。不久,父母为家里添置了一台电脑,我也如愿以偿地玩上了这款游戏。事实上,作为20世纪80年代末出生的一批人,电子游戏伴随我度过了几乎整个少年时代。

一款优秀的游戏就好像一部引人入胜的小说(如「仙剑奇侠传」「空之轨迹」),或者一部伟大的百科全书(如「文明」「三国志」),令人击节称赞。不同的是,电子游戏带给玩家的沉浸感,比书籍带给读者的更加直接和浓烈。我无数次萌生出这样的念头:如果能制作出自己的游戏——制作游戏场景和背景音乐,设定角色与怪物的外形和技能,建立战斗系统与剧情——那多好。所以,作为读者的你,应当可以想象出,当得知有机会翻译一本关于游戏编程的书籍之时,我该有多兴奋。

这本书名为「HTML5游戏开发进阶指南」,顾名思义,讲的是如何开发 HTML5 游戏。HTML 诞生之初仅仅是用来结构化文档信息,并创建可在浏览器上显示的网页。事实上,最初版本的 HTML 连图片都无法显示,页面仅由标题、文字段落和指向其他页面的链接组成。随着互联网的发展,HTML 逐渐变成了今天的样子。我们在花花绿绿的网页上浏览新闻、观看视频、听音乐、购物、更新 Facebook 状态、与同事聊天,甚至玩游戏——今天的 HTML,早已不是一页A4纸,而是能够与用户深度交互的平台。

HTML5 是最新的 HTML 标准,其诸多新特性中,最令人期待的一点莫过于新的标签<canvas>。开发者可以在<canvas>中几乎不受限制地绘图,就像在 Windows 下使用 GDI 函数一样;在部分浏览器中,开发者甚至可以在<canvas>中绘制三维场景,就像使用 OpenGL 一样。结合requestAnimationFramesetTimeInterval,这个标签简直就是为游戏设计的。这本书主要介绍的就是如何使用<canvas>标签进行游戏开发。

本书手把手地带领读者实现了两款 HTML5 游戏:前4章实现了一个类似于「愤怒地小鸟」的游戏。后8章实现了一款简化版的「红色警戒」游戏。再简单的逻辑从零开始实现,都不是一件容易的事情,对于这两款游戏,虽然看上去简单,但绝不是随随便便就能够写出来的。事实上,原作者力求这两款游戏臻于完善,并在书中详尽地阐述了游戏的细节:比如作者在绘制第一款游戏中的弹弓和橡胶带时,为了使橡胶带看上去很自然,而将弹弓分为两部分;又如,作者在第二款游戏中,为了防止车辆在地图上移动时发生“阻塞”而进行的努力。

对于熟悉前端开发,又想在前端有所作为的开发者,这是一本不可多得的好书。书中模块化的JavaScript代码,以及将琐碎的功能模块拼装成整体的方式,值得学习。本书介绍了很多游戏编程常用的技巧,如使用子画面页以优化性能,使用视差滚动以产生3D效果等。另外,本书还介绍了如何利用一些开源的游戏算法,如JavaScript 版本的 Box2D 物理引擎、A* 路径规划算法等。本书最后两章涉及使用 Node.js 构建多人战役的方法,如果你对服务器端的 JavaScript 感兴趣,你也应该来读一读这本书。

总之,在读完本书之后,相信你一定知道如何着手去开发一款 HTML5 游戏。

(完)