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,它在支持骨骼动画的同时实现相同的功能。顺便提一下,本文开头的演示就是基于这些着色器构建的。值得注意的是,它们仅支持方向光。不幸的是,不支持点光源和聚光灯。
为什么选择它?
这个模因几乎属实。不过,可能值得澄清的是,这
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。
