游戏开发技术
此页面列出了使用开放 Web 技术进行游戏开发的必要核心技术。
- 2D 碰撞检测
2D 游戏中检测碰撞的算法取决于可能发生碰撞的形状类型(例如,矩形与矩形、矩形与圆形、圆形与圆形)。通常,您会有一个简单的通用形状,它覆盖实体,称为“命中框”,因此即使碰撞不是像素级的完美,它看起来也足够好,并且在多个实体上都具有高性能。本文回顾了 2D 游戏中用于碰撞检测的最常用技术。
- 3D 碰撞检测
本文介绍了用于在 3D 环境中实现碰撞检测的各种边界体积技术。后续文章将介绍在特定 3D 库中的实现。
- Web 上的 3D 游戏
要在 Web 上获得丰富的游戏体验,首选技术是 WebGL,它在 HTML
canvas上渲染。WebGL 本质上是 Web 的 OpenGL ES 2.0 — 它是一个 JavaScript API,提供了构建丰富交互式动画(当然也包括游戏)的工具。您可以使用硬件加速的 JavaScript 生成和渲染动态 3D 图形。- asm.js 的异步脚本
中大型游戏应将 asm.js 代码作为异步脚本的一部分进行编译,以使浏览器在优化编译过程方面具有最大的灵活性。在 Gecko 中,异步编译允许 JavaScript 引擎在游戏加载时在主线程之外编译 asm.js,并缓存生成的机器代码,以便游戏在后续加载时无需重新编译(从 Firefox 28 开始)。要查看差异,请在
about:config中切换javascript.options.parallel_parsing。- Web 游戏的音频
音频是任何游戏的重要组成部分;它增加了反馈和氛围。基于 Web 的音频正在迅速成熟,但仍有许多浏览器差异需要导航。我们通常需要决定哪些音频部分对我们的游戏体验至关重要,哪些是锦上添花但非必需的,并据此制定策略。本文提供了 Web 游戏音频实现的详细指南,考察了目前在尽可能广泛的平台上有效的功能。
- 使用 image-rendering 实现清晰的像素艺术外观
本文讨论了一种有用的技术,可为您的 canvas/WebGL 游戏提供清晰的像素艺术外观,即使在高分辨率显示器上也是如此。
- 使用 Gamepad API 实现控制器
本文着眼于使用 Gamepad API 实现有效的、跨浏览器的 Web 游戏控制系统,允许您使用游戏机控制器来控制您的 Web 游戏。文中包含了一个案例研究游戏 — Hungry Fridge,由 Enclave Games 创建。
- 实现游戏控制机制
HTML5 作为游戏开发平台的优势之一是能够跨各种平台和设备运行。简化跨设备差异会带来许多挑战,尤其是在为不同情境提供适当的控制时。在本系列文章中,我们将向您展示如何构建一款可以使用触摸屏智能手机、鼠标和键盘以及游戏手柄等不太常见的机制来玩的游戏。
- 瓦片和瓦片地图概述
瓦片地图是 2D 游戏开发中非常流行的技术,它由称为“**瓦片**”的小的、规则形状的图像组成,用于构建游戏世界或关卡地图。这带来了性能和内存使用方面的提升 — 不需要包含整个关卡地图的大图像文件,因为它们是通过多次使用小图像或图像片段构建的。这组文章涵盖了使用 JavaScript 和 Canvas 创建瓦片地图的基础知识(尽管相同的宏观技术可以用于任何编程语言)。
- WebRTC 数据通道
WebRTC(Web 实时通信)API 主要以其对音频和视频通信的支持而闻名;然而,它还提供点对点数据通道。本文对此进行了更多解释,并向您展示了如何使用库在您的游戏中实现数据通道。