To set the tone of my question, I'm currently working on a game made entirely in C#, all my own doing except the various third party libraries that it is built on, no engines. I don't know if I'll finish, or if it would be even remotely successful if I did finish but I would obviously like it to be.
I'm currently adding some support for scripting to the game to clean up logic and make my life easier, I'm using C# for scripting because why not? and loading code files that fit an interface class and compiling them at runtime and then I run the object as a script, it works nicely.
As I have been extending the scripting capabilities I have been thinking about the interfaces that I am exposing and how to separate the user scripts, the scripting system and the core of the game to create a clean system, easy to use, simple and secure... By secure I mean hiding my core game code and logic from those who might have nefarious intentions, like cheating or ripping off my ideas (I know, I know but I cant get it out of my head.). I have started to realise, c# reflection is going to open up all of my code and people can just decompile the whole thing anyway.
I think I already know the answer, "focus on making a game", but should I be taking anything into consideration with regards to security in this manner. Any styles of programming, techniques or technologies that I should be considering or relevant discussions I should be aware of. Or just give me some reassurance that I should be getting on with things.
↧