So, my game is being developed in pure C++, with very limited dependencies (Mostly just pocoproject). The main goal here is portability, not performance. The code runs on multi-platform clients, as well as the server itself.
This is all headless, not graphics whatsoever. Everything is implemented, though. Menus, navigation, the game itself, online, single player, ... etc. You can essentially play the whole game with this C++ library. I added simple console bindings, so I can visually test and play the game, but haven't hooked it with a game engine yet.
I would really like to use Unity3D for the graphical part, as it kicks ass when it comes to rapidly developing graphics, but it was a hellish experience to try and marry Mono with C++, even when using SWIG. (Basically, Mono has limited C++ compatibility, but it is really annoying to work with).
Here is the problem, I am stuck between these two islands; C++ program and Unity3D. I am not very good with OS concepts, so I don't know if it's possible to fork the main process and run a local C++ server, and have the Unity game communicate using RPCs or even REST API. Performance isn't an issue, the only issue is maintainability. I need a robust and simple system that I can wrap my head around easily.
Other solutions welcome!
dll
s are dynamic libraries, I think. So, portability won't be satisfied for iOS (requires static linkage). \$\endgroup\$