How to Develop a Game
Game Development Core Concepts
PublishDate: 2025-06-01 | CreateDate: 2025-06-01 | LastModify: 2025-06-01 | Creator:ljf12825

数学的核心是形式化,工程的核心是权衡,计算机科学的核心就是抽象
从底层到顶层,从电路到软件,抽象以各种形式存在于各个过程

为什么说抽象是核心

开发者不是直接跟“机器”打交道,而是用“概念”去思考和操作。而抽象是把“具体细节”提炼成“普遍概念”。而编程能力 = 使用抽象的能力 + 构建抽象的能力

游戏开发

游戏开发是技术性、艺术性和商业性的融合,它包括:

游戏开发的特点在于以下几个方面

技术层面的抽象概念

抛开引擎,语言,工具链,游戏开发的核心本质可以抽象为以下层面

最底层的抽象:状态与变换

单机游戏是确定性状态机(输入决定下一步);网络游戏是部分不确定状态机(网络延迟、同步问题让同一状态在不同客户端不一致,需要预测/回滚)

所有游戏逻辑,都可以抽象为“状态机 + 时间推进”

核心抽象:循环(Game Loop)

Game Loop是游戏引擎的心脏,所有游戏逻辑、渲染、输入处理、物理更新都围绕它转
核心思想:循环 + 时间驱动
每一帧游戏世界都要经历一套固定流程\

while (game_is_running) {
    process_input();   // 处理输入:键盘、鼠标、手柄、触屏
    update(deltaTime); // 更新游戏逻辑:AI、动画、物理、状态
    render();          // 渲染:把当前世界画出来
}

游戏引擎的核心就是封装了这个主循环

时间控制:deltaTime

CPU/GPU性能和环境不同,循环速度会变化。为了保证游戏逻辑的一致性,需要引入帧间隔时间:

position += velocity * deltaTime;
固定更新 vs 可变更新

很多引擎(比如Unity、Unreal)会区分

这就是为什么Unity里有Update()FixedUpdate()两个钩子

结构抽象:实体与组件

这就是现代引擎常见的设计模式

行为抽象:事件与消息

表现抽象:渲染管线

渲染其实就是:数学变换 + 并行计算

系统抽象:资源与时间

游戏开发技术层面的抽象概念是“实时状态机 + 事件驱动的交互循环”,引擎则是帮助把这些抽象组织好