This has some advantages.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.
But what about D-Bus, maybe it is faster and needs no network card?