Added a /cross-platform/ getch, more code refactoring for the engine