具体描述
精选10种常见的游戏类型,透过典型实例,深入剖析游戏引擎及工具的选用技巧,详细讲解每款游戏的制作过程,为快速掌握网页游戏开发提供系统而实用的指南。
作者简介
Evan Burchard,因为喜欢游戏而学编程,并充分利用当前流行的免费网页技术来制作游戏,同时还想把这个易于制作游戏的开发平台介绍给大家。他采用最新的浏览器技术设计包含电、冰、火等内容的游戏,除此之外,他还非常喜欢长途步行 (最远曾从马萨诸塞走到爱荷华)。
目录信息
译者序
前 言
导 言
第1章 问答游戏 1
1.1 第一步:出题 1
1.2 第二步:隐藏题目 8
1.3 第三步:重现题目 9
1.4 第四步:引入各种程序库 11
1.5 第五步:判断玩家所选答案是否正确 15
1.6 小结 19
第2章 文字冒险游戏 20
2.1 第一步:设计页面样式 21
2.2 第二步:实现页面跳转 25
2.3 第三步:添加道具栏及道具拖放功能 27
2.4 第四步:添加复杂的交互功能 35
2.5 第五步:添加历史记录导航功能 44
2.6 第六步:添加精彩的结局 46
2.7 小结 48
第3章 派对游戏 50
3.1 第一步:采用atom.js创建范例游戏 50
3.2 第二步:用canvas元素绘图 56
3.3 第三步:绘制鼠洞 58
3.4 第四步:绘制鼹鼠 60
3.5 第五步:将鼹鼠放入鼠洞 63
3.6 第六步:令鼹鼠从洞中钻出来 65
3.7 第七步:使玩家可通过敲击键盘来打鼹鼠 67
3.8 html5的<audio>标签并不尽如人意 70
3.9 小结 72
第4章 解谜游戏 73
4.1 第一步:用easel.js来渲染 74
4.2 第二步:渲染多个方块 78
4.3 第三步:创建成对出现的同色方块 81
4.4 第四步:配对并消除同色方块 83
4.5 第五步:隐藏与翻转图片 85
4.6 第六步:胜负判定 87
4.7 第七步:缓存与性能优化 91
4.8 第八步:将方块配对游戏改为字母认读游戏 93
4.9 小结 99
第5章 平台游戏 100
5.1 初识melon.js 100
5.2 第一步:创建瓦片地图 101
5.3 第二步:启动游戏 102
5.4 第三步:加入游戏角色 105
5.5 第四步:构建碰撞图层 107
5.6 第五步:行走与跳跃 108
5.7 第六步:标题画面 110
5.8 第七步:添加可供玩家收集的物品 112
5.9 第八步:添加敌人 113
5.10 第九步:添加能力提升道具 115
5.11 第十步:添加胜负判定机制并显示游戏信息 116
5.12 小结 118
第6章 格斗游戏 120
6.1 第一步:初识game.js 120
6.2 第二步:单独绘制精灵表中的各个精灵 123
6.3 第三步:处理两位玩家的输入 124
6.4 第四步:移动与变形 127
6.5 第五步:不要使两位玩家的输入互相阻塞 130
6.6 第六步:用位掩码记录按键状态 134
6.7 第七步:用掩码来检测碰撞 137
6.8 第八步:令两个游戏角色可以互相攻击对方 140
6.9 小结 145
第7章 飞行射击游戏 146
7.1 与渲染有关的准备知识 146
7.2 第一步:初识gamequery 148
7.3 第二步:添加“敌机” 150
7.4 第三步:创建己方战机 153
7.5 第四步:处理玩家与敌人的碰撞 156
7.6 第五步:发射子弹 157
7.7 第六步:为玩家提供多种武器 159
7.8 小结 162
第8章 第一人称射击游戏 164
8.1 第一步:初识jaws 164
8.2 第二步:创建二维地图 166
8.3 第三步:增添玩家 169
8.4 第四步:用光线投射技术绘制俯视图 173
8.5 第五步:用光线投射技术实现伪三维效果 177
8.6 第六步:为玩家配备照相机 180
8.7 第七步:装点游戏场景 184
8.8 第八步:添加同伴 188
8.9 小结 195
第9章 角色扮演游戏 197
9.1 第一步:初识enchant.js 197
9.2 第二步:创建地图 199
9.3 第三步:增添玩家 202
9.4 第四步:添加碰撞层 207
9.5 第五步:绘制状态画面 209
9.6 第六步:与npc对话 212
9.7 第七步:绘制道具栏 215
9.8 第八步:开设道具店 218
9.9 第九步:实现战斗界面 226
9.10 第十步:通过html5的本地存储api来存储游戏进度 236
9.11 小结 238
第10章 即时战略游戏 240
10.1 服务器 240
10.2 第一步:配置node 243
10.3 第二步:用socket.io实现即时通信 246
10.4 第三步:用crafty.js创建isometric地图 249
10.5 第四步:绘制棋子 251
10.6 第五步:移动棋子 255
10.7 第六步:使玩家只能控制己方棋子,并将对方棋子上面的图案隐藏起来 258
10.8 第七步:实现碰撞检测,令玩家能吃掉对方棋子并看到其图案 264
10.9 小结 268
第11章 如何继续提升游戏开发水平 270
11.1 本书已经讲过的内容 270
11.2 接下来应该学习的内容 271
附录a javascript基础 273
附录b 代码质量控制 280
附录c 资源 285
· · · · · · (收起)
读后感
用户评价
我比较注重用户体验和界面设计方面,这本书在这方面的着墨并不算最多,但它提供的底层支撑非常坚实。它没有直接教你“如何设计一个漂亮的按钮”,而是教会了你“如何高效地绘制和渲染一个复杂的动态界面”。其中关于动画插值算法和时间管理的部分,讲得非常透彻。作者用数学公式推导了不同缓动函数(Easing Functions)对视觉感受的影响,这对于追求细腻动画效果的开发者来说简直是醍醐灌顶。我以前只是套用现成的库函数,现在能根据动画的目标效果,自行微调关键帧的曲线,让角色的动作看起来更自然、更有生命力。这本书的价值在于它让你从“使用者”蜕变为“创造者”,理解了动画背后的物理学和时间管理逻辑,这才是构建沉浸式游戏体验的核心要素。
坦白说,这本书的阅读门槛确实不低,它要求读者必须对至少一门脚本语言有扎实的掌握,并且对基本的计算机网络知识有所了解。对于完全的新手来说,可能需要配合其他资料辅助理解某些章节的术语。然而,正是这种对技术深度的坚持,使得这本书在如今快节奏的开发环境中显得尤为珍贵。它不像那些追求快速上手的指南,读完后留下的只是零散的片段知识。这本书像一本结构完整的技术体系,循序渐进地构建起一个完整的网页游戏开发知识框架。我个人认为,如果你已经有了一些项目经验,渴望突破现有瓶颈,想要真正理解那些高性能、高稳定性的游戏背后的技术秘密,那么这本书绝对是书架上不可或缺的“镇宅之宝”。它带来的知识沉淀,是短期内任何线上教程都无法比拟的。
这本书的排版真是让人眼前一亮,那种深沉的墨绿色背景配上烫金的标题,光是摆在书架上就透着一股专业范儿。我本来以为这种老牌的开发书籍可能内容会比较陈旧,但翻开目录才发现,它竟然涵盖了从基础的HTML5结构到复杂的WebGL渲染管线,甚至还单独辟了一章来探讨移动端的兼容性优化。特别是关于数据同步和防作弊机制的章节,作者用了很多非常直观的流程图来解释那些晦涩难懂的网络协议,我感觉自己像是在听一位经验丰富的老前辈手把手地教我实战经验,而不是枯燥地啃理论。他们对游戏循环的剖析尤其到位,清晰地阐述了为什么在某些特定情况下需要调整渲染频率以保证用户体验的流畅性。这本书的案例代码质量非常高,注释详尽且逻辑清晰,哪怕是初学者也能顺着代码的脉络理解背后的设计思想。我最近尝试用书中的“事件驱动模型”重构了我正在进行的一个项目中的UI交互层,效果立竿见影,响应速度快了不少,这证明了书本知识的实用性确实一流。
说实话,这本书的深度超出了我最初的预期,它绝对不是那种只停留在“如何快速搭建一个Demo”层面的入门手册。我尤其欣赏作者在讨论性能优化时那种近乎偏执的细致程度。书中对内存泄漏的排查技巧和浏览器缓存策略的讲解,简直就是一份珍贵的“排雷指南”。他们没有简单地推荐使用某个现成的库,而是深入挖掘了底层机制,比如解释了JavaScript垃圾回收器的工作原理,以及如何通过对象引用的管理来避免资源长时间占用。阅读过程中,我多次停下来,对照自己电脑上运行的线上项目进行比对分析,发现了一些之前一直忽略的性能瓶颈点。这本书的写作风格非常严谨,引用了大量的技术规范和行业最佳实践,读起来让人感觉非常踏实可靠,仿佛拿着一本武林秘籍,每读一页都感觉自己的功力在稳步提升,它更像是一本面向资深开发者提升内功心法的进阶宝典。
与其他同类书籍相比,这本书在“多人在线交互”部分的讲解简直是独树一帜的亮点。它没有回避多人游戏开发中那些令人头疼的同步和延迟问题,而是正面迎击,详细分析了权威服务器架构的优缺点,并给出了基于WebRTC和WebSocket的混合通信方案实例。我特别喜欢作者对“状态预测”和“回滚机制”的阐述,这些内容在很多教程中都是被一笔带过的关键技术。书中提供的代码片段虽然是概念性的,但其清晰的逻辑结构足以让我迅速将其应用到我自己的项目中,解决了困扰我已久的客户端与服务器间数据不一致的问题。这本书的实用性体现在,它不仅告诉你“做什么”,更重要的是告诉你“为什么这么做”以及“在什么场景下效果最好”,这种深入的工程哲学让人受益匪浅。
还不错
还不错
还不错
还不错
还不错