I'm not too far in developing the logic systems of the engine, and I'm also considering switching from Lua to Mono for scripting purposes... because I'm slowly coming to realize how much of a downright ass it can be to develop some reusable systems in Lua. While I will loose some things, I'll gain in others.
- Serialization - a bonus if I can get it to work correctly
- Some basic RTTI - Makes constructing the editor easier
- Asynchronous Logic (?) worth looking into. Being able to split up entities with a unique scheduler is attractive. Especially if I can consider update frequencies.
So outside of that. The contemplation of the switch also made me consider if I should change the setup of the logic. Multiplayer support was planned for later in the lines. And being monolithic would make this a down right pain to do. Basically, the most sane way I can see this is by splitting the application code into two different paths that'd be instantiated at the menu. One for Single player, the other for multiplayer.
Where as the client server mock up seems like it has a one size fits all. The downside is that you have to program for packets, which you'll have to do anyways in multiplayer.