Cross-Platform API replacement suitable for C# developed game

Started by
2 comments, last by 6677 11 years, 4 months ago
I have recently created a game using C#/Managed DX and was considering the possibility of porting to Mono and using some other API to render. It should be possible to replace the "presentation" level of the game while maintaining game logic, as Managed DX is addressed nowhere directly in the game level code.

Playing around with Mono, I've noticed a few pitfalls -- for instance I have a few Windows.Forms things that need to go. But my general feeling is that it should be doable.

I came across Open Tk as my most viable candidate. What do you guys think of this? Advantages and any possible disadvantages?

Thanks in advance for any and all advice!
Co-creator of Star Bandits -- a graphical Science Fiction multiplayer online game, in the style of "Trade Wars'.
Advertisement

Playing around with Mono, I've noticed a few pitfalls -- for instance I have a few Windows.Forms things that need to go. But my general feeling is that it should be doable.


Any specific reason you want to go for *nix?
From what i understood, you are using some sort of Direct X. And from what webpage says, OpenTK is GL wrapper (+-) for C#. If you wish to switch to GL, you can aswell go for Java + LWJGL setup. At first painful, but adoptable.

And strange, i thought pitfalls of mono where System namespaces...

P.S. I usually have this strange illness to write my own UI controls >.<
There are a few references to System.Windows.Forms in the code and these are rejected by the Mono compiler. I believe, for instance, that it creates it's Direct3D handler using a windows forms handle. It doesn't use Windows.Forms for any in-game GUI although there are editors and such that I pull up in DEBUG mode that do use Windows.Forms. So, I would need to strip these out. It was surprisingly cooperative in other ways.
Co-creator of Star Bandits -- a graphical Science Fiction multiplayer online game, in the style of "Trade Wars'.
Monogame might do the trick for you.

But yes you may have to ditch winforms (there is an alternate name for it under mono which you can add a reference to, forgot it though, might just be system.winforms or something). Alternately you could use GTK# if you need extra control over your main window that monogame wont give you.

This topic is closed to new replies.

Advertisement