The idea of writing game logic in my "native" tongue makes me giddy with excitement.
That being said, my team is developing a turn-based Unity client game with SmartFox as it's backend gameserver (as an authoritative server - but no physics/gameobject stuff)
I have been handed certain requirements to allow so elements of gameplay (including a basic game against AI opponent) to be allowed 'offline' (when using mobile device client).
grumble.
While I am certain that I can contain the necessary abstracted "business logic" in a core set of functions, I have zero desire to maintain in both Java (for smartfox) and C# (for client-side standalone).
My original idea was to encapsulate this core business logic in a C# dll and use on both unity client and server-side as appropriate - but knowing what I know about the .NET CLR, this is probably a non-starter -
I can't use JNI/JNA as the C# stuff isn't really 'native' - and if I could, I don't know how performant or scalable it would be with SmartFox.
Any other thoughts?
I am currently leaning towards java-only solution using a build script that could produce a smartfox extension as well as an android plugin that can also be used on Android clients (which rules out IOS clients)
Any other advice or thoughts?
(and no - I have no desire to use one of the C# based server solutions like Photon or uLink - they have their own drawbacks - not the least of which is their LACK of support for my language of love - Java)