Этот вопрос не так тривиален, но позвольте мне попытаться дать вам действительно простой ответ.Вам нужна как минимум базовая архитектура, в которой вы можете зарегистрировать несколько движков.Внимательно изучите конечные автоматы и несколько шаблонов программного обеспечения.Были действительно отличные книги по разработке игр, такие как Gems для программирования игр.Начните читать старую книгу от Андре Ламота.Читать исходный код т.е.из Half Life 2, который можно скачать в некоторых местах.
Конечно, это зависит от среды, C ++ лучше и может быть самым быстрым способом написания игр, но если вы хотите использовать DirectX или OpenGL, вам нужноАудио и расширенный ввод?Хотите начать с более старой WinApi?Тем не менее, он всегда начинается в одной точке, основной цикл.Там ваш конечный автомат должен быть инициализирован, и все менеджеры ресурсов должны быть настроены.Для графических объектов вам нужно подумать о низкоуровневом цикле инициализации, обновления, рисования, выпуска и уничтожения.Пользовательский интерфейс построен на графике, вводе и других частях.Не начинайте писать свой собственный пользовательский интерфейс, иначе вам нужно потратить следующие 2 года.Вам нужна модель реляционной игры, которая описывает мир, который вы хотите создать.
Если честно, прочитайте много о шаблонах (таких как mvc), конечных автоматах, конвейерах gpu и дизайне фреймворков.Прочитайте много кода от очень талантливых людей, которые открыли его для нас:)
Кстати, что такое пошаговая игра?