C# component based game engine