MonoGame 引擎使用(一)

MonoGame 引擎使用(一)
MeteorCat官方地址: https://monogame.net
MonoGame 是个免费、开源、跨平台的 C#/.NET 游戏开发框架, 是微软已停止维护的 XNA Framework 的社区增强重制版
核心定位:
-
代码优先(Code-First): 只提供底层库与 API 并无内置可视化编辑器, 适合喜欢手写代码、追求高度可控的开发者 -
游戏框架而非游戏引擎: 提供图形、音频、输入、资源管理等基础能力, 你可以在此之上搭建自己的引擎/工具链
目前支持跨平台特性和 2D/3D 渲染, 而且基于 dotnet 可以挂靠 C# 第三方资源库
注意: 代码优先也就代表必须纯粹命令行编写所有业务功能, 这部分对于协同是最大问题
这里首先区安装 dotnet 对应版本, 这边直接采用默认 LTS 版本: dotnet-10
项目安装
这里安装之后后续有些组件可以添加安装:
1 | 配置安卓支持 |
个人喜欢用 Rider 开发, 官方配置 https://docs.monogame.net/articles/getting_started/2_choosing_your_ide_rider.html
Rider 配置 MonoGame 插件就可以在项目新建解决方案, 会自动安装 MonoGame.Templates 组件, 游戏类型有以下方式:
-
2D StartKit: 简单的 2D 游戏基础模板 -
Android App: 安卓专用项目, 必须先装android workload -
iOS App: 苹果专用项目, 必须先装ios workload -
Cross-Platform Desktop App: 跨平台的通用模板, 支持Windows/macOS/Linux三端通用 -
Windows Desktop App: Window 系统专属应用模板
如果是打算跨桌面方案就选择 Cross-Platform 作为默认选项, 其他按照特定平台做专门构建
跨平台的默认支持包含游戏主机等平台, 可以作为独立游戏跨平台开发上架到主机平台
MonoGame 支持利用 bridge.net 将 C# 代码移植到 Web 平台支持, 但是该方案稳定性还是存疑
如果是简单学习, 这里最好创建 2D StartKit 学习下官方的基本代码架构, 这里先构建基本的项目
等待构建初始化即可, 这里会提示错误 缺少 Android|iOS 工作负载(workload), 为了只需要桌面运行可以不去管这些
主要运行的是
DesktopGL方案, 直接运行MonoGame2DGame.DesktopGL项目即可
这里会提示错误:
1 | Architecture: x64 |
这是因为目前我采用的是 dotnet-10, 而他内部项目编写采用的 dotnet-9, 目前官方是推荐采用高 LTS 版本
而之所以默认采用 dotnet-9 是因为 Android /iOS 必须用 .NET 9+
调整默认 TargetFramework 版本: 右键 MonoGame2DGame.DesktopGL 项目右键 编辑 - 编辑MonoGame2DGame.DesktopGL.csproj
1 | <!-- 将 net9.0 切换 net10.0 --> |
修改完成之后重新编译项目即可, 完成之后点击就会运行个官方小游戏, 主要的游戏逻辑在 MonoGame2DGame.Core 之中




