Sign in to follow this  

Multilangual Cross-Platform Software management

This topic is 1950 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Nice title I know, I should become a CEO [img]http://public.gamedev.net//public/style_emoticons/default/happy.png[/img] ... had the Idea to make my game engine in C++ (SDL) and the logic in C#.
If I put the engine in a dynamic library, i should be able to use it in C# (how i haven't tried yet, but there is a first time for everything) and build my game logic there. Also thanks to mono, the gamelogic could be be platform indipendent as well and I end up with a Platform-indipendent game... in theory.
I am currently programming under Debian with Eclipse CDT, but for the C# I would go to Windows and VS. Now here is where the nightmare starts without a well configured C.I. system.

Tools and programs i plan to use:
Github repo
jenkins C.I.

C++:
GCC Compiler
CUTE test framework
dOxygen api doc
CMake build script

C#:
.Net CIL builder
test framework ??
api doc??
build script??

When I understood the basics of C++ correctly, I need to compile a Dynamic Library for each target OS and run the tests from there. I could set up Jenkins to execute the CMake script on different virual machines, running each OS. Each VM has gcc and SDL installed.
After that jenkins should execute the build script for C# on each VM and run the tests. If all works like I imagine it in my head, I would have an easy cross platform game without the cross platform nightmare.
But for the C# stuff I am a bit confused, can I use the "compiled" C# code from Windows and direclty run it on Mono, like I can with Java?
What tools / platform indipendent tools are there for C#?
Does this even work well?

Do you have any tips for cross platform software management?

Share this post


Link to post
Share on other sites
If your engine is going to be in C++ and your logic in C# then I would recommend building the executable with C++ and embedding the CLR in your application and loading C# modules for your game logic. MS.NET I believe allows you to do this as of .NET 4, and Mono has allowed it for a long time. If you want cross-platform then Mono is your best bet. This is how Unity3D works and I've done it myself to good effect.

You can even host Mono's C# compiler and use it sorta like a scripting language, so that your game engine compiles the C# modules on launch if they are changed, so they don't have to be manually compiled.

And yes, the same bytecode will typically run fine on Mono and MS.NET. Edited by krippy2k8

Share this post


Link to post
Share on other sites
Thank you very much, I almost wanted to abandon the Idea due to the cumbersome interop of C++ embeded C# project. I didn't think that it's easier vice versa.

The compile on launch sounds interesting, I definately have a look into it. You don't have an example project in your sleeves, do you?[img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img]

I had some issues with CMake and now I am starting to like QT Framework more and more. If anyone else is looking how to set up a basic cross platform dev enviroment, here is an example: [url="http://biodisplay.tyrell.hu/implementation/software-engineering/a-cross-platfrom-c-development-environment/"]http://biodisplay.tyrell.hu/implementation/software-engineering/a-cross-platfrom-c-development-environment/[/url]

Share this post


Link to post
Share on other sites

This topic is 1950 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this