Для начала можно взять какие-нибудь лёгкие движки, в которых минимальный функционал, посмотреть, как реализовано, после взять ещё один, его ковырнуть, в итоге начнёшь понимать саму структуру (это, кстати, очень важный пункт). Книги по сути не нужны, с ними будет сложнее, я, когда дописывал двиг, не читал ничего, кроме описаний функций. Да, я сидел над одной функцией 2 часа, зато сейчас я прекрасно понимаю, как это работает и на реализацию у меня уйдёт не более 10 минут. Главное желание чтобы было завершить начатое)