Вы приближаетесь к нему в обратном порядке.
Что должно быть в вашем двигателе заключается в следующем:
Всего кода, который оказался общими между вашим первым и вашей второй игрой.
Сначала напишите игру. Не пишите движок, потому что, как вы выяснили, вы не знаете, что он должен содержать, или как он должен быть разработан. Вместо этого напишите игру.
Как только у вас есть эта игра, напишите еще одна игра. Затем, когда вы это сделали, изучите код второй игры. Сколько из этого было использовано в первой игре?
Все, что было повторно использовано, должно быть реорганизовано в отдельный проект. Этот проект теперь является вашим игровым движком.
Это не значит, что вы не должны планировать или не должны пытаться писать хороший код. Но убедитесь, что вы работаете над чем-то конкретным, что-то, где вы можете сказать хорошую реализацию от плохого. Хорошая реализация игры - это то, что работает, это весело и не сбой. Напишите свой код для достижения этих целей в первую очередь.
Хорошая реализация двигателя? Это сложнее. Какая хорошая реализация рендеринга? О структуре ИИ? О системе частиц? В конечном счете, единственный способ определить, есть ли у вас хороший двигатель, - это посмотреть, как хорошо он работает в реальной игре. Поэтому, если у вас нет игры, у вас нет возможности оценить ваш движок. И если у вас нет возможности оценить ваш движок, вы не можете судить, действительно ли какой-либо код, который вы пишете, действительно полезен.
Ничего против SO, но вы, вероятно, будет лучше разместив это на форумах gamedev.net. – ryeguy
Хорошее (и гибкое) обнаружение столкновения. –
Распознавание столкновений находится в двигателе Farseer Phsyics –