Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Multilangual Cross-Platform Software management


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 Bluefirehawk   Crossbones+   -  Reputation: 1232

Like
0Likes
Like

Posted 08 August 2012 - 06:31 AM

Nice title I know, I should become a CEO Posted Image ... 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?
Project: Project
Setting fire to these damn cows one entry at a time!

Sponsor:

#2 krippy2k8   Members   -  Reputation: 646

Like
1Likes
Like

Posted 08 August 2012 - 07:38 PM

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, 08 August 2012 - 07:44 PM.


#3 Bluefirehawk   Crossbones+   -  Reputation: 1232

Like
0Likes
Like

Posted 09 August 2012 - 08:10 AM

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?Posted Image

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: http://biodisplay.tyrell.hu/implementation/software-engineering/a-cross-platfrom-c-development-environment/
Project: Project
Setting fire to these damn cows one entry at a time!




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS