MonoGame——专为热爱重复造轮子者打造的游戏引擎

发布日期:2026-05-23 10:02:25   浏览量 :2
发布日期:2026-05-23 10:02:25  
2

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

简介

在创建新游戏时,最先面临的问题之一就是选择游戏引擎。

众所周知的主要候选者包括 Unity、虚幻引擎和 Godot。

然而,除了它们之外,还有不少鲜为人知的二线引擎。

其中之一就是 MonoGame,这正是本文想要讨论的内容。我将简要回顾它的历史,探讨它是否值得选择,并分享一些有用的链接。

历史

C# 编程语言由微软于 2002 年创建。微软将其定位为一种通用编程语言,因此开发了许多技术和库,以展示其在不同领域的应用。

这些库之一是 XNA,发布于 2006 年。它基于 DirectX 9,允许开发者为当时的微软生态系统(即 Windows、Xbox 和 Windows Phone)创建游戏。

XNA 立即在游戏开发社区中获得了相当高的人气,而该社区自然希望他们的游戏也能在其他设备和操作系统上运行。

MonoGame 正是对这些需求的回应。它旨在与 XNA 完全 API 兼容,同时也能在 Android、iPhone、Linux 等平台上运行。

2013 年,微软停止了对 XNA 的支持。结果,MonoGame 最终也不得不扩展到微软平台。

如今的 MonoGame

目前,MonoGame 或多或少实现了 XNA4 规范。

换句话说,它本质上是一个位于游戏硬件之上的抽象层,提供对图形、音频、鼠标、键盘、游戏手柄等的相当底层的访问。

同时,它还包含一些更高级的功能:

  • 一个线性代数和三维几何库。包括矩阵、向量、射线、变换等。有许多用于三维图形的方法,例如创建透视投影矩阵和正交投影矩阵。还有边界盒、边界球体等等。
  • SpriteBatch,即处理二维图形的终极工具。特别是,它允许渲染文本。
  • 一个音频库。
  • 内容管道(Content Pipeline),这是一个用于处理资产并将其转换为适合运行时使用的格式的框架。这是一个颇具争议的功能。就个人而言,我并不喜欢它,认为直接加载原始形式的资产并无不妥。
  • 一个简单的三维模型库。它有两个主要问题:严重依赖内容管道(意味着无法通过代码在运行时动态创建模型)以及缺乏动画支持。这就是为什么我也不使用它的原因。
  • 几个用于三维图形的简单着色器。例如,BasicEffect,它使用布林-冯氏(Blinn-Phong)模型实现光照;以及 SkinnedEffect,它在支持骨骼动画的同时实现相同的功能。顺便提一下,本文开头的演示就是基于这些着色器构建的。值得注意的是,它们仅支持方向光。不幸的是,不支持点光源和聚光灯。

为什么选择它?

这个模因几乎属实。不过,可能值得澄清的是,这

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部