But instead of TCP a D-Bus interface.Tobi wrote:For C# I think making a small C++ AI that allows interproces communication (ie. TCP over loopback) and has a way to start a process is way easier then integrating either mono or the CLR directly into an AI DLL.
EDIT:
Some advantages:Some disadvantage:
- AI can just use WinForms or WPF or whatever for realtime debugging windows
- Debugging the C# code with express edition of VS and/or MinGW compiled Spring would actually work
- Spring memory corruption can not crash the AI
- AIs compiled for different .NET runtimes can be combined in a single game (it's impossible to load different .NET runtime versions in same native application; that's also the reason windows shell extensions need to be written in C++)
- AI would run in different thread (process) automagically, no need to think about threading issues etc.
- Getting unitdef etc. will be somewhat slower because data actually has to be copied a few times.
- AI may lag a bit behind engine.
- Everything AI does is asynchronous, makes certain things a bit harder.
Question from my side:
Are there better alternatives than D-Bus?
Using D-Bus or something similar for Mono or for all none C/C++ languages?
Or implementing for each language a wrapper?
@hughperkins:
You have experience with the .Net and the Mono wrapper for the AI interface.
Would you prefer a D-Bus like way or a Mono wrapper (embedding mono) way?
And would you help me by creating one of this.
Notice: I lag on C++ experience and embedding mono.
