Game
游戏(本文特指电子游戏)是一种带有交互性质的文化艺术产品,通常包含以下几个部分
- 程序,电子游戏显然应该是一个可以运行的软件应用
- 资源,包括美术、音乐、文本等各种资源
- 策划,或者叫游戏性。比如游戏玩法、关卡设计、数值规划等
本文只重点关注 程序 这一部分。
由于实时交互的要求,游戏相当依赖图形技术,通常都要使用底层图形 API。
在 GUI 章节提到过,图形 API 是一种非常低级的抽象,为了提高开发效率我们需要更高级的抽象。传统的 GUI 框架也可以用来开发游戏应用,但考虑性能等各种问题,游戏引擎通常是更好的选择。
如果游戏不存在性能问题,也可以考虑使用基于浏览器的 UI,目前这项技术已经足够成熟了。
游戏引擎是为游戏开发者提供的集成开发环境,集成了 图形渲染、物理模拟、资源管理、游戏脚本 等核心功能,可以大幅提升开发效率
只介绍开源的游戏引擎
- Godot 通用游戏引擎,使用 GDScript,也支持 C#,生态很活跃
- Ren’Py 视觉小说引擎,使用 Python
游戏框架相比游戏引擎集成的东西较少,因此使用起来可以更灵活
- Phaser 一个 HTML5 游戏框架,使用 JavaScript 开发 2D 游戏
- Boardzilla 使用 TypeScript + React 开发桌游的游戏框架
- MonoGame 使用 C# 的通用游戏框架
- SDL 跨平台多媒体库,通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、摇杆和图形硬件的底层访问