棒!使用.NET Core构建3D游戏引擎
原文地址:https://mellinoe.wordpress.com/2017/01/18/net-core-game-engine/
作者:ERIC MELLINO
翻译:杨晓东(Savorboard)
通过翻译这篇文章,我感受到了 .NET Core 真正的魅力,它真的是无所不能,相信在以后,.NET Core 一定会大放异彩,而.NET的 开源也会吸引越来越来的开发者参与其中。
同时,就像作者所说,这赋予给了 .NET Core 另外一种道路和生命,感谢这个路上的先行者。
正文很多人对于 .NET Core 都很关心,但是通常我们都在谈论关于控制台应用程序和服务器端应用程序。在这篇博客中,我们将探讨 .NET Core 的另外一个用途,并展示我如何从头构建一个3D平台的游戏引擎,编辑器和游戏。作为一个 .NET 团队中的开发,我已经和社区做了很多的讨论并且已经看到了关于这方面的内容。我希望通过这篇博客能够阐述 .NET Core的功能,并且激励更多的人来做这方面的探索。
在第一篇博客中,我将介绍我的游戏(Creazy Core),一个类似街机的3D 平台的游戏,在这个游戏里,你通过控制一个球来穿越各种障碍物。这也许看起来很宽泛,稍后的博客中中,我将对关于游戏的引擎,编辑器和更多技术细节来做更加详细的介绍,如他们能够融合并工作起来。
免责声明:这只是一个从头开始构建的单人开发的游戏。很明显,这个游戏没有任何商业用途,我不能保证在观看原始的作品时候不会受到伤害。
Creazy Corehttps://github.com/mellinoe/CrazyCore
Windows.zip
OSX.zip
Ubuntu-1604.zip
这是一个独立的程序,你只需要下载对应平台的 ZIP 文件包,然后运行 Creazy Core 可执行程序。如果你在 Ubuntu 上运行,则有一些先决条件。
译者注:使用 dotnet CreazyCore.dll 运行程序。 macOS 可以直接运行。
这个游戏的机制就是利用力学来控制一个小球,在一个3D 的世界里运行,游戏世界起初很简单,后来逐渐会有更加复杂的力学会引入进来,游戏环境和障碍物也越来越复杂,由于你的进步,游戏会变得越来越难,直到最后会有一些“疯狂的”力学机制加入。
为什么使用 .NET Core ?首先,这是一个使用 .NET Core 的另外一种伟大的方式。它打破了 .NET Core 原有的路线来探寻一个新的场景。虽然我可能会有点偏见,但是我认为使用 .NET Core 来做游戏是有很多优势的:
游戏引擎架构同其他游戏引擎一样,这里也是由大量不同的组件构成的,这使得实时3D 游戏引擎成为可能。我希望我在后续的博客中能够更多的探讨关于这方面更加详细的内容。但是为了给出游戏引擎中涉及到的一些功能和概念,这里我强调一些重要的事情。
为了构建不同级别的游戏,我编写了一个单独的编辑器 程序,它重用了引擎的各个组件。编辑器是一个独立的3D 程序,你可以查看和修改游戏资源,组合游戏实体,构建完整的场景,以及管理项目中的配置选项。
以下视频链接到 YouTube ,请科学上网观看。
就想一个典型的编辑器一样,游戏本身可以在应用程序内测试,并且各种游戏状态可以实时调整。编辑器还具有项目发布,调试,代码热插拔等功能。
以下视频链接到 YouTube ,请科学上网观看。
上面的视频显示了一些很酷的事情,你可以在编辑器中调整东西。
编辑器其中一个最有用的功能是,它可以在多个平台运行,因为它也是使用的 .NET Core 开发。这使得他可以非常容易的进行一些修改和测试并且方便的应用到游戏中去。
开源库下面是我这个项目中使用到的库,以及这些库是做什么的。所有对.NET 游戏相关感兴趣的都可以看看这些库,他们非常酷!
谢谢阅读!我希望这篇文章已经阐明了.NET Core 在今天可以做的一些事情。在下一篇文章中,我将详细介绍如何在引擎中处理3D渲染。它是引擎中最复杂的部分,但也是开发中最有趣的一部分。敬请关注!
本文地址:
本译文仅用于学习和交流目的。非商业转载请注明译者、出处,并保留文章在译言的完整链接。
posted @