优就业的如何游戏开发发一共有几个阶段,时长是多久呢

原标题:优就业HTML5教程-HTML5如何游戏开發发5条建议及开发工具

当你开发基于HTML5的游戏时你有很多选择。使用什么样的编辑器?是否用到Canvas 2d、WebGL?采用什么样的呈现框架和游戏引擎?这些选擇大部分由开发者的个人经验和游戏将要发布的平台决定

幸运的是,有关HTML5如何游戏开发发的指南现在已经有很多了而这篇文章则是要告诉开发者在开发HTML5游戏以前应该具备的一些全局概念。你能从这篇 文章中学到什么?这里会介绍HTML5如何游戏开发发的一些框架你将知道如何使你设计的游戏能够在更多的平台上运行,了解如何管理在线游戏的状态如何处理性 能问题。

话不多说现在就开始介绍HTML5如何游戏开发發的几条实用建议。

如果只是用HTML5编写一些小程序其实非常简单但如果想往你的游戏中加入更丰富的功能,那么就有许多其他的事情需要處理了

比如,如果你的游戏中有大量的图片、音效或是其他的资源那么浏览器需要从你的游戏服务器上下载这些资源,这往往需要花費很多的时间如果你在 编写程序的时候没有考虑这些问题,那么你也许会对最后的结果感到意外由于图形和声音文件都是异步下载的,也许在你的资源下载好以前你的 Java脚步已经开始运行了这就是所谓的“爆音”现象(图像显示异常),而声音也可能在错误的时间播放一個好的解决方法就是创建一个预先 下载机制,保证所有的资源下载完以后才允许脚本执行

另一个你可能碰到的问题就是你的游戏在不同嘚机器甚至是浏览器中运行的速度有所不同。虽然这也许在你的控制范围以外但你还是可以尽量使得你的动画或是动作的速度不依赖于遊戏运行框架的速度。

其实现在有许多的游戏模板代码,里面实现了大多数游戏需要的功能这样,开发者不需要从头到尾编写一个完整的游戏程序现在有许多框架可以帮助开发者设计游戏,开发者只用关注具体的游戏逻辑而不用担心如何使游戏顺畅运行这些细节问題。

使用框架时唯一需要注意的一点就是如何从众多的框架中挑选一个合适的框架像ImpactJS这样的框架功能非常强大,几乎可以在各个 方面为開发者提供帮助;而像EaselJS的框架则主要是处理图形方面的工作最后,还是需要由开发者决定使用哪种框架更加合适这看起来似乎很简单,泹 在Java的世界里面选择一个框架时也意味着你选择了一种特定的编程风格。

虽然现在已经有很多HTML5游戏使用了一些框架但是还是有很多开發者不嫌麻烦地选择不依赖任何框架完全自己开发。如果你想在合理的时间内完 成任务使用框架当然是最有效的方法。Ascended Arcade就是一个很好的唎子在短短三个月的时间里,他们就开发出了三个游戏全部使用了ImpactJS框架。

建议2:将小屏幕和触屏设备考虑在内

HTML5最大的卖点之一就是它既能在桌面PC上使用也能在笔记本电脑、平板设备甚至是智能手机上运行。(这里有IE9在Windows Phone 7 Mango上的运行效果演示)

HTML5与生俱来就具备了跨平台的特性,通常为开发者节省了很多工作然而,有些事情是需要开发者考虑的…

首先也是最重要的一点不同的设备屏幕的尺寸也有所不同,屏幕的宽高比以及分辨率可能有很大的差别如果想让你的HTML5在移动设备上拥有良 好的效果,确保它支持多种分辨率并且不超过WVGA的800×480框架大小此外,由于大多数的移动设备无法在一个屏幕上显示所有的页面内容他们常常 采用精确的缩放和平移技术,而这些技术通常并不适用於游戏的编写可以在编程的时候使用viewport meta标志禁用这些功能。下面的代码片段可以用来使你的游戏视图根据屏幕的实际水平宽度自动调节迻动浏览器上的缩放功能常常与触控游戏控制功能产生冲 突,可以将“user-scaleable”参数设置为“no”从而禁用浏览器的缩放功能。

现在你已经能够將你的游戏视图很好地呈现在小屏幕设备上了接下来就该考虑如何处理用户输入的问题了。大多数触屏设备都有一个虚拟键盘但是在 玩游戏的时候显示一个虚拟键盘实在太浪费空间了。你应该开发一个有限的虚拟键盘只提供游戏中使用到的按键(比如箭头)。当然最好昰尽可能在游戏中不需 要使用额外的元素。Spy Chase在这方面做得很好用户只用一个手指就能控制游戏中的汽车了。

建议3:自动保存用户的记录

使用 site pinning,web浏览器试图让Web Apps可以像桌面apps一样工作但是,让网站像Apps一样运行的想法还比较新鲜同样的,让Web页面保存客户端的状态也尚未成熟用戶在关闭 Microsoft Word的文档时可能会思考一下内容是否已经保存,而在关闭Web页面时往往不会这么仔细了通常这并不会带来什么问题——大多数的Web页媔是没有状态 的,或者是将用户的记录保存在了服务器上

但如果是处理浏览器游戏,情况就完全不同了通常在客户端执行的是Java代码,HTML5遊戏通常将游戏的状态缓存在内存中(RAM)一旦关闭浏览器窗口,用户辛辛苦苦赢得的高分就永远地丢失了

你可以要求用户小心一点,不要將正在进行的游戏窗口关闭但是意外总是会发生的,尤其是当用户开了多个窗口或是电池没电的时候

长话短说:在编写HTML5游戏时,最好昰经常将游戏玩家的进度状态保存一下当用户重新打开关闭的web页面时,应该让用户可以继续之前没有结束的游戏而不是重头来过

你应該将用户的记录保存在哪里呢?过去,***往往是服务器端的数据库或是客户端的cookie但是这两个都不是最佳的选择。如果是在服务器 端则會产生额外的HTTP请求开销。如果是cookie的话则可以保存记录的空间非常有限,并且cookie的寿命取决于浏览器的配置

一个更有效的方法是使用HTML5 DOM storage。DOM Storage提供了一个key-value存储(或是Java定义的对象)的接口可以为每个网站保存几兆的数据。使用起来非常方便但是 在HTML5游戏中,你可能想要记录一些更加复雜的数据结构——这些DOM storage本身可能并不支持幸运的是,现在的Java提供了一套机制帮助开发者将一组对象压缩成一些紧凑的符号这就是JSON机制。 使用这套机制DOM storage可以保存任何格式的信息。下面的两个函数展示了如何使用HTML5 DOM storage保存游戏状态以及ECMA5中的JSON功能:

如何游戏开发发中最大的挑战昰在加入许多功能以后如何保证游戏仍然具有高的帧显示频率。

好的消息是近几年来浏览器的速度越来越快了,基于HTML5的游戏已经可以達到每秒60帧了

这是非常了不起的。对IE9来说这意味着开发了一个全新的Java引擎,能够利用多CPU内核以及基于Direct2D的硬件渲染管道换言之,如果伱配备了高配置的游戏平台IE9就能充分地利用这些硬件平台。

IE9整合了Java分析器能够发现性能瓶颈

对于简单的游戏,这意味着你不必担心它嘚性能问题但由于HTML5可以运行在任何平台上,这意味着你发开的HTML5游戏应该能够运行在任何 一个设备或是浏览器上其中有些设备或浏览器嘚处理能力可能并没有你希望的那么快。即使你的应用只针对高性能的PC游戏的性能也是一个不得不考虑的问 题。

如果你要求你的游戏达箌每秒60帧这意味着每一帧的渲染时间不能超过16毫秒。也就是说在你一眨眼的时间里面,你需要完成至少6帧的渲染工作现在听起来可能有点难以想象…但是有些非凡的游戏确实能够做到。

幸运的是这里有些工具可能能够帮助你。在IE9(或是IE10)上通过按下F12按键可以打开开发笁具面板。选择“Profile”选项然后选中“Start profiling”

现在在你觉得性能需要提升的地方停留30秒,profiler将收集相关数据然后选择“stop profiling”。你将看到你的游戏Φ的每个功能的累积执行时间通常,你会发现某些功能占用了大部分的时间这样你就能有针对性地优化那些特别耗时的功能了。

不要過分相信自己的直觉——有些代码可能看起来效率很低但在某些Java引擎上执行起来速度却很快。最好的办法就是时常地反复分析程序对於修改过的代码,需要反复进行测试确保你的修改确实能够提升程序的性能

游戏变得越来越社会化:Warimals是基于HTML5的游戏,用户可以与Facebook上的好伖一起参与游戏

能够开发出在浏览器中运行的游戏是一件很棒的事情而更酷的是可以使用HTML5在浏览器上开发游戏应用!从技术的角度看,HTML5是非常棒的而浏览器也是非常理想的游戏平台。

想想看…各种不同的设备上都有浏览器它们通常是时时在线的,它是人们接收邮件、聊忝和社交网络的工具浏览器游戏的开发者,可以利用自己开发的游戏将来自世界各地的人们联系在一起

下面继续介绍一些HTML如何游戏开發发的工具。

在最新版本的firefox中我们在浏览器中添加了Canvas调试。Canvas Debugger允许你跟踪所有的canvas上下文调用 像绘制元素和使用特定的调色器一样,它会根据具体的要求调用颜色编码它不仅在开发基于WebGL的游戏时有用,它同时也可以用来测试基于Canvas 2D的游戏 在下面的游戏中,你可以看到动画被***成很多个静态图你可以点击任意一行直接查看那一部分的响应。

当你创建一个基于WebGL的游戏时如果能在游戏运行时测试和修改着銫器程序将是非常酷的一件事。使用Shader Editor就可以做到这么酷的事情你不需要重新加载界面就可以修改顶点和片段着色器,还可以查看其对输絀结果的影响

在Firefox Aurora(32)版本中有一个Web Audio Editor,这个编辑器通过图表展示了所有的音频结点和当前AudioContext的连接你可以通过它查看每个结点的特定属性。Web Audio API提供了更多混音的创建对音频的操作和处理比HTML5的Audio标签强大很多。

对于HTML5如何游戏开发发者来说需要花费昂贵的代码来对游戏进行繁琐的测試。如果游戏是在手机设备中运行可以使用Network Monitor直观地看到所有的网络请求,系统耗时和类型大小等属性

除此之外,你还可以通过Network Monitor直观地看到游戏的性能分析

开发游戏之前你必须先选择一个开发环境,同样你有很多种选择(Sublime,Eclipse,Dreamweaver,vi等等),重要的是你肯 定已经有一款常用的开发环境了如果你对浏览器端的开发环境感兴趣,你可以试一下Web IDE它已经在Firefox的最新版本中上线了。

Web IDE不仅提供开发者进行正常的编码还可以远程发布、调试、框架管理等。

免责声明:本文来源于码农网由网友提供或网络搜集,仅供个人研究、交流学习使用不涉及商业盈利目嘚。

该楼层疑似违规已被系统折叠 

三、java高级框架
课程中穿插实战项目,学完后会有丰富的实战项目经验推荐就业,就业有一定的保障希望能帮助你。


参考资料

 

随机推荐