Все здесь почему-то путают создание игры, создание библиотек и написание самого движка!
Постараюсь описать процесс создания ДВИЖКА:
1. Составляете список функционала и оборудования, которым будет управлять ваш движок.
2. Собираете в список все доступные инструменты, которые предоставляют эти устройства и операционка.
3. Пректируете архитектуру ядра.
4. Проводите тестирование логических взаимодействий блоков с различными конфигурациями.
5. Пишите hello world на этом движке, который проверит все компоненты архитектуры.
50% работы по созданию движка - готово.
Дальше - оптимизация всего и вся, и пишите либы для различных задач.