跳转到内容

Game

游戏(本文特指电子游戏)是一种带有交互性质的文化艺术产品,通常包含以下几个部分

  • 程序,电子游戏显然应该是一个可以运行的软件应用
  • 资源,包括美术、音乐、文本等各种资源
  • 策划,或者叫游戏性。比如游戏玩法、关卡设计、数值规划等

本文只重点关注 程序 这一部分。

由于实时交互的要求,游戏相当依赖图形技术,通常都要使用底层图形 API。

GUI 章节提到过,图形 API 是一种非常低级的抽象,为了提高开发效率我们需要更高级的抽象。传统的 GUI 框架也可以用来开发游戏应用,但考虑性能等各种问题,游戏引擎通常是更好的选择。

如果游戏不存在性能问题,也可以考虑使用基于浏览器的 UI,目前这项技术已经足够成熟了。

游戏引擎是为游戏开发者提供的集成开发环境,集成了 图形渲染物理模拟资源管理游戏脚本 等核心功能,可以大幅提升开发效率

只介绍开源的游戏引擎

  • Godot 通用游戏引擎,使用 GDScript,也支持 C#,生态很活跃
  • Ren’Py 视觉小说引擎,使用 Python

游戏框架相比游戏引擎集成的东西较少,因此使用起来可以更灵活

  • Phaser 一个 HTML5 游戏框架,使用 JavaScript 开发 2D 游戏
  • Boardzilla 使用 TypeScript + React 开发桌游的游戏框架
  • MonoGame 使用 C# 的通用游戏框架
  • SDL 跨平台多媒体库,通过 OpenGL 和 Direct3D 提供对音频、键盘、鼠标、摇杆和图形硬件的底层访问