I am developing a 2D sidescroller similar to terraria and starbound, after 3 months I have written my own hard coded "engine" for the game that features lighting, tile management, world management, entity management, networking, input, user interface management, rendering, and some others...
My question is how would a modding API be developed, I have a feeling I am too far down the track for such an easy implementation. I am using C# 5.0 (.net 4.5) with MonoGame. This is also the first time of me having a shot at developing a real game, I still would consider myself "newbie".
Since its C# I am leaning towards reflection and importing local libraries, this seems like it would be a security issue however. I do not have much experience with reflection but I am sure I could easily pick it up.
Some technical aspects of that game are:
1. The game is completely server-based, hence at the moment there is no singleplayer mode since start of development has been for multiplayer.
2. Uses TCP for networking.
3. The client and server will be obfuscated, eliminating easy .net decompiled modding.
4. Some part of the game can already be modded only server-side to see client-side effects (even though the client executable was not touched).
5. The server has all authority.
Thoughts?