介绍一款基于MonoGame开发的太空大战小游戏

最近突发奇想,下载了Microsoft Small Basic并编写了两个图形变换的小程序,希望能够让儿子对科技产生兴趣(当然,成为像我一样的码农可不是我的初衷)。 捡起自己入门电脑编程时学会的第一门语言 GW Basic,下载完Small Basic后写的第一个图形程序就是一个五彩缤纷的小球在屏幕上乱跳的程序,看上去有点像DOS下小球病毒爆发时的现象(不好意思暴露自己年龄了),而第二个程序则在窗口中显示了一个可以用鼠标控制的飞机图案,儿子当时看得很认真。心想,干脆自己做一款打飞机的游戏给儿子玩玩吧,考虑到Small Basic在图形处理方面毕竟还是相对薄弱,所以我就凭着以前对Microsoft XNA的研究经验,在Visual Studio 2013中借助MonoGame实现了一款简单的太空大战小游戏。

MonoGame

先简单介绍一下MonoGame吧。它是针对Microsoft XNA 4的开源实现,它能够支持诸如Xbox360、Windows、Windows Phone、iOS、Android、Mac OS X、Linux、Windows 8 Metro、Windows 10等多种平台。目前正在完善针对PlayStation Mobile、树莓派以及PlayStation 4的支持。在图形系统方面,MonoGame允许开发者选择基于OpenGL或者DirectX。您可以到MonoGame的官网介绍网页上了解更多有关MonoGame的历史信息。

在两年前我曾打算模拟一个类似魂斗罗的游戏,当时使用的是Microsoft XNA Game Studio 4,后来由于魂斗罗游戏地图处理有问题,我也没有继续深究这个游戏了。于是,在之后的一段时间中,我曾经也想过业余时间做个别力所能及的小游戏自娱自乐一下,可惜被告知Microsoft XNA Game Studio已经被微软抛弃了,最后一个支持它的VS版本是Visual Studio 2010,于是经过一番搜索,我开始了自己的MonoGame之旅。

刚开始的时候,MonoGame让我抓狂,因为它缺失一项最重要的功能:Content Pipeline。如果你要使用MonoGame,你必须继续使用Microsoft XNA Game Studio,并使用XNA的Content Pipeline将所需的材质、声音、动画、字体等素材编译成xnb文件,然后再到MonoGame中调用。这是非常让人难以接受的,所以,当时我也基本打消了继续使用MonoGame的念头。

然而,经过开源社区的努力,新版本的MonoGame已经全面支持Content Pipeline了,您可以从MonoGame所创建的解决方案管理器中找到游戏的Content文件,并双击它来打开Content编辑器:

b70b4794-f8ee-4199-8cdb-4cfcf6c7d45b

应该说,使用最新版的MonoGame,已经可以满足开发中等规模的游戏需要了,尽管它仍然存在一些程序缺陷(Bugs)。

Starwar

MonoGame的介绍到此为止,限于篇幅我也就不深入讲解了。请您先移步到下面这段视频,看看我做的Starwar太空大战游戏是不是像模像样:

你可能感兴趣的:(介绍一款基于MonoGame开发的太空大战小游戏)