我目前有一个非常简单的Windows Phone内存游戏,我希望使用Xamarin工具移植到iOS,Android和Win8。
我想将我的业务逻辑集中在一个程序集中,只需为每个平台创建UI。
在大多数情况下,代码是简单的C#,但我确实利用位图来显示游戏中的牌。但是,根据我的阅读,不同平台上没有使用Bitmaps的标准支持。
这个问题的推荐方法是什么?
我想我必须使用像MonoGame这样的东西,但觉得这对我想做的事情来说太过分了。
答案 0 :(得分:2)
你说你的代码是在C#中。据我所知,Xamarin是让C#代码在Android和iOS上运行的唯一途径。 Xamarin有一个免费的入门版,你可能可以使用,但你的应用程序将受到大小限制。一旦达到规格限制,您就需要支付许可费。
在您决定支付许可费后,如果您想使用MonoGame作为端口,则不需要其他费用。如果您的游戏已经在使用XNA或者您有一些XNA体验,我建议您使用MonoGame。 MonoGame是XNA的一个端口,专为制作游戏而设计,因此很多游戏相关的任务都比较容易。
另一种方法是使用标准应用构建API将您的游戏构建为应用。这是可能的,但除非你试图通过使用Xamarin的免费版来节省资金,否则我无法看到这样做的任何优势。如果你打算将来制作更多游戏,你最好咬紧牙关学习MonoGame。
使用MonoGame的位图应该不是问题。虽然,您可能需要先将它们转换为PNG。
使用可移植类库可以将业务逻辑集中在一个程序集中,但由于PCL的限制,使用文件共享通常更容易。基本上,您有一个指向每个项目中文件的软链接。更新文件会同时在所有项目中更新它们,但添加新文件需要您将它们分别添加到每个项目中。这有点像维持痛苦,但并不多。
答案 1 :(得分:0)
当然,作为起点,您应该将UI和逻辑分开。
要达到此目的,我强烈建议您制作console
版本的游戏。使用控制台,只能将带参数的命令发送到应用程序。没有鼠标或实时键盘使用。将保留所有与UI相关的任务。只保留要使用的业务逻辑和命令。
然后,您应该尝试MonoGame
。它对2D游戏来说足够可靠。更重要的是,如果IL代码不是太多,iOS
和Android
都是免费的!
其他方式是...... Unity 3D
。使用该引擎取决于您编写的代码。在某些情况下,可以将该游戏引擎与共享业务逻辑一起使用。感谢新的Unity 3D policy,独立游戏开发者可以免费制作和部署他们的游戏。
简而言之,计划是: