Следил в свое время на habr'е (вроде бы там), за тем, как человек в свободное от работы время разрабатывал свою игру:
Всегда комментируй код, через месяц ты можешь не вспомнить почему сделал вот так и как это вообще работает.
Чем больше раз ты сможешь использовать один и тот же код, тем лучше.
Всегда лучше иметь единомышленников, чем совсем одному, наш субъективизм не всегда позволяет достаточно оценить тот или иной момент.
Более менее сложную графику и звук лучше заказать на стороне, это может быть как фриланс, так и на добровольных началах (например, за указание в титрах или человеку понравится задумка, и он захочет помочь)
А про игровые движки уже сказали выше, придумай себе какую-нибудь очень простую концепцию, реализуй ее, параллельно изучая то, что тебе для этого необходимо. После этого поставь более сложную задачу, так ты сможешь постепенно увеличивать багаж знаний и не свалиться в бездну под названием "это слишком сложно, у меня ничего не выйдет, я занимаюсь этим уже день/месяц/год и толком не сдвинулся с места"