状态模式与状态机

状态管理是几乎所有游戏开发都会做的一个事情——大到场景管理,小到角色的逻辑状态和动画切换。如果你面对日益增长的复杂的状态分支判断代码而不知所措,状态模式和状态机可能就是救星。状态模式是一个非常简单实用的模式,本文将介绍其基本用法,并结合游戏中的有限状态机(FSM)介绍其各种实际应用和特殊状态机。

游戏开发中单例模式的一些思考

往往设计模式的书都是教人如何使用模式,唯独单例模式需要谨慎对待,甚至避免使用。像其他设计决策一样,一旦将一些不必要的单例进行了硬编码,就会带来麻烦。本文描述了单例模式的一些常见问题,以及一些参考解决方案。虽然单例模式存在一些问题,但只要不滥用并仔细思考设计,还是可以享受它带来的好处的。

游戏引擎的事件系统

游戏本质上是事件驱动的。事件是游戏过程中发生、希望关注的事情,例如发生爆炸、玩家被敌人看见、拾取补血包等等。游戏通常需要一些方法做两件事——当事件发生时通知关注该事件的对象,以及让那些对象回应所关注的事件。事件系统采用的设计模式便是知名的观察者模式,本文将介绍事件系统的一些基本原理,以及事件排队的扩展机制。

运行时游戏对象模型(上)——模型架构

在游戏性基础系统的各种组件中,运行时对象模型可能是最复杂的,通常它会提供这些核心功能:动态产生(spawn)和销毁(destroy)游戏对象,联系底层引擎系统,实时模拟对象行为,对象查询和引用,存档及对象持久性等等。本文将从对象模型架构开始,阐述“以对象为中心”和“以属性为中心”的两种基本架构,接着介绍几种游戏对象引用和查询的方法。

游戏引擎的游戏性系统简介

游戏引擎是复杂的多层软件系统,而游戏的本质,并非在于其使用的引擎或技术,而是其游戏性(gameplay)。游戏机制(game mechanics)一词,可以把游戏性这个概念变得更为具体。游戏机制通常定义为一些规则,这些规则主宰了游戏中多个实体之间的互动,如定义玩家的目标、成败的准则、角色的各种能力、游戏体验的整体流程等等。本文将简单介绍用于定义及管理游戏机制的引擎系统及相关工具。

人体学接口设备(HID)

游戏是有互动性的计算机模拟,为游戏而设的人体学接口设备(Human Interface Device,HID)种类繁多,包括摇杆、手柄、键盘、鼠标、Wii遥控器,以及方向盘、跳舞毯、电子吉他等等专用输入设备。本文探讨游戏引擎如何自入体学接口设备读取输入,处理输入,以及向玩家反馈输出。

实时游戏的时间模拟

游戏是实时的、动态的、互动的计算机模拟,所以时间在电子游戏中担当非常重要的角色。游戏中有不同种类的时间——实时、游戏时间、动画的本地时间线、某函数实际消耗的CPU周期等。本文谈及实时、动态模拟软件如何运作,并探讨这类模拟中运用时间的常见方法。

游戏循环的实现方式

游戏软件本质上是由一个大循环构成的。本文从最简单的渲染循环开始,讨论各种游戏循环的架构风格,接着针对现代多处理器硬件,简要说明一些让游戏引擎利用多核硬件的常见方法。网络游戏的游戏循环比较特殊,最后也会介绍两种最常见的多人游戏循环架构。

游戏引擎中的资源与文件系统

载入及管理多种媒体,是游戏引擎必须具备的能力。多数引擎会采用某种类型的资源(或资产)管理器,载入并管理游戏所需的资源,并确保在同一时间每个媒体文件只可载入一份。每个资源管理器都会大量使用文件系统。本文将介绍现代三维游戏引擎中的各种文件系统API,再分析典型资源管理器的运作方式。

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器