学习HTML5游戏编程

我写这本书是为了解一时之痒,同时也是因为我当时看到了新生的HTML5游戏社区的潜力。我想帮助开发者在HTML5这片处女之地上开垦,学习CanvasWebGL SVG这些技术以及它们的最佳实践。

有时候需要费一些讨论才能说服开发者,HTML5并不是只能用来玩玩的东西。他们已经惊喜地发现HTML5可以拥有和桌面程序一样精湛的丰富内容——比如双缓冲技术、硬件加速、以及非插件式的浏览器范围之内的缓存技术。很多人以为这些技术只有Flash才能提供,而有趣的是我们将会看到由“一切都用Flash”到“只当用HTML5实现不了时才使用Flash”的转变趋势。

在我写这本书地时候,HTML5游戏编程环境已经发展得相当成熟,我相信这项技术会继续发展下去,同时期待来年它取得的进展。

 

本书的主要特点

本书覆盖了“宽松定义”的HTML5,这意味着包括HTML5 规范、WebGLSVGJavaScript,因为它们跟游戏编程有关。本书的一些章节讨论了流行的游戏效果后面的数学,在提供一两行代码的解决方案之前告诉你实现的困难之处与重点。对于还没有熟悉JavaScript编程的读者,本书有一章讨论了同样能够用来编写游戏的其它语言,包括了直接在JavaScript引擎中运行的语言、能够被编译成JavaScript的语言、以及这两者混合的语言。最近几个月,服务端JavaScript席卷了编程世界。这表明有另一个层次的灵活性来构建游戏。逻辑可以开始于一个自包含的客户端实例,然后在基本不需要修改代码的情况下发展到服务端实例。这本书的结尾讨论了在哪里以及如何发布你的游戏。有多种游戏引擎和开发库可供你选择,这本书中所用的开发库在处理数据上都是不唐突的(unobtrusive),你可以很容易地学好这些章节并将它们应用到其它开发库中。这本书不讨论WebGL的底层细节,而是选择使用一个高层的库,该库允许在需要的时候访问底层API。本书的目的就是让你迅速上手,不会告诉你目前关于WebGL的所有细节,那要一本书的篇章才能讲完。

 

本书的目标读者

本书是为那些使用或者想要学习怎样使用HTML5及相关网页技术开发交互式游戏的应用开发者而写的。本书需要你有一些编程语言和基础数学的知识。

 

本书的示例代码和练习

这本书所包括的代码行和练习的答案在本书的网站上有提供。你可以到http://www.informit.com/title/9780321767363下载每章的代码及练习的答案。你也可以在Github的这个网址https://github.com/jwill/html5-game-book上找到本章的代码。

 

1.    HTML5介绍

HTML5HTML下次主要迭代的一个规范,它是它的前身HTML4 XHTML的突破。在HTML5中一些元素被移除了,同时HTML5也不在基于旧的文本标记标准SGMLHTML5HTML4更能兼容错误的语法,同时能让不同浏览器以相同的方式解析和展示格式错误的文档。这个版本的HTML增加了许多重要内容,比如内建的拖动支持以及音像元素。本章我们将讨论HTML5新增的特性及相关的JavaScript API

 

跨越HTML基础

Tim Berners-Lee发明的HTML(超文本标记语言)从1990年至今已有相当长一段历史了。来自HTML5Rocks slides (http://slides.html5rocks.com/#slide3) 的图1-1简要地展示了HTML的发展历程。

 

 

虽然所有的进步对推动标准前进都至关重要,我们最为感兴趣的是1996年产生的JavaScript2005年产生的AJAx。这些新特性使得网页从一个表示静态单向数据的媒体(如报纸和书)转变为一个允许双向交流的媒体。

 

JavaScript

JavaScript(前身为LiveScript,现在也被称为ECMAScript)由网景通信公司开发的浏览器脚本语言发展而来。它是一种基于原型的既像是面向对象又像是面向函数的弱类型的脚本语言。尽管名叫JavaScript,其更相似于C语言,虽然它也继承了Java的一些东西。

作为太阳计算机系统公司(现在是甲骨文公司)和网景公司之间关于推广脚本语言和Java Applet技术的协议的一部分,该语言被重命名为JavaScript JavaScript被广泛用来编写客户端网页脚本,而与此同时,微软发布了和其并立脚本语言,名叫Jscript,因为太阳公司已将“JavaScript”这个名称注册成为商标。Jscript语言相对于JavaScript作了一些修改并添加了一些新内容。

 

AJAX

AJAX(异步的JavaScriptXML)重新激起了人们对JavaScript编程的兴趣。曾经一度被认为是业余人士和脚本小子的AJAX已经帮助开发者解决了复杂的问题。

AJAX依靠的中心点是微软在1990年发明的XMLHttpRequest对象。XMLHttpRequest允许一个网站连接到远程服务器获取结构化的数据。与建立一系列静态页面不同,XMLHttpRequest能使开发者创建高度动态的应用程序。GmailTwitterFacebook都是这种应用的例子。

我们正处于JavaScript的另一个复兴时期当中,主要的浏览器生产者都在将他们的JavaScript引擎的性能作为比较的指标。JavaScript作为一种主要的编程语言已经渗透到服务器端web组件,比如Node.js,以及移动应用框架WebOSPhoneGap

你可能感兴趣的:(学习HTML5游戏编程)