Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Multi-platforming

NitthNitth AustraliaMember Posts: 3,903 Uncommon

Hello :)

Just want to get some thoughts about building clients for multiple systems...

Recently i have been playing around with xna building some small "ragnarok" style MMO/RPG concept clients but im looking at branching out into using C# bundled with opengl + SDL.net to build game clients for multiple systemes ie, Linux, WIndows.

 

Just wondering if anyone has any experience or advice with any of those technologies?

Anything i should be worried about with switching to opengl over directx api's?

image
TSW - AoC - Aion - WOW - EVE - Fallen Earth - Co - Rift - || XNA C# Java Development

Comments

  • VagelispVagelisp AthensMember Posts: 448 Uncommon

    C# can take advantage of the Mono Project which is a serious effort imo to create Cross platform apps.

    http://www.mono-project.com/Main_Page

    However you must keep in mind that even there are platforms like this to simplify the process there are many things to keep in mind which can't be included even as warnings during code compilation.

    http://www.mono-project.com/Guidelines:Application_Portability

    If you refer  to the XNA game studio XNA is not a DX api, even if you migrate your code from XNA to managed Directx, (I refer to slimDX since you use .NET)  you ll have to convert a right handed coordinate system into a left handed coord system which is not a big deal but it can be a problem if you make a few mistakes during conversion.

    If you migrate code from D3D to Ogl you must refactor most of the pipeline process and of course find libs that take care of various input interfaces and sound since Ogl is a 3D API and not a complete gaming solution.

  • sephersepher Atlanta, GAMember Posts: 3,561

    A good XNA alternative for C# when you want to go cross-platform is the Tao Framework: http://www.mono-project.com/Tao

    As you can see though, there's been no development on it in forever. But, that isn't necessarily a bad thing. Graphics frameworks built on DX and OpenGL alike tend to have years of good use, and I don't think there's much Tao is lacking in terms of what OpenGL supports today. 

    Anyway it does a whole lot of what XNA does and you might be accustomed to if you use XNA already; Tao.Sdl to help with 2D work akin to XNA"s SpriteBatch, OpenAL rather than all that Xact stuff, etc. Video, font packages, content pipeline for images and so on. 

    There's also some neat things XNA doesn't have natively, the Tao.Ode is a physics library you can use if you want, and there's a Tao.Lua for support of using Lua as a scripting language, and a library that helps hooking your game into WinForms for things like creating toolsets. And of course there's a library of wrapper classes to help with multiplatform execution.

    One downside is that you have to compile your code in cygwin with it if you're using Windows. If you're used to cygwin, no problem, but it can be a pain. Or optionally load up a Linux VM and use MonoDevelop or the shell directly. 

  • NitthNitth AustraliaMember Posts: 3,903 Uncommon

    Thanks for the replies guys :)

    Yeah, Im already setup with mono, and the SDL.net which also includes the Tao framework. the more i dive into this i can see why it easier for most companies to just release a Windows client..

     

    However Atm i am more productive and produce more working code with SlimDX (was working with XNA but this has presented more opportunities), so on second thought it may not wise to complicate things by switching  api's if things are already moving in a forward motion..

     

    But again i thank you for the advice and will certainly looking to what has been suggested.

    image
    TSW - AoC - Aion - WOW - EVE - Fallen Earth - Co - Rift - || XNA C# Java Development

  • sephersepher Atlanta, GAMember Posts: 3,561

    Worth noting now C# reaches not only Linux, Mac OS and Windows as previously said but its now lookin' pretty good for pretty much all mobile platforms as really. Windows Phone 7 uses XNA and its gotten a big boost in its prospective future lately with Nokia adopting it as primary platform. Then there's MonoTouch and MonoDroid for iOS and Android continuing to come along nicely. 

    Java, Objective-C and other non-C and C++ languages don't quite have this kind parallel reach. Mono and industry moves are making C# very attractive. 

Sign In or Register to comment.