1.фактически на любом главное чтобы хватило вам лично логики и умений, а в общем на низкоуровневых, Java,C++ и т.д.
( если хотите узнать какой ваш это очень просто напишите небольшие игры змейку тетрис и.д, например на С++ потом эту-же игру на "питоне" затем на "джаве", ну и на любом что приглянулся. Не обязательно с нуля просто покопайтесь в них. и вам все сразу станет понятно )
2. отличий множество движки есть как 2д так и 3д, какие-то уже с физикой, какие-то нет, что-то оптимезированно что то нет, тут проще выбрать 2 - 3 интересующих и сравнить.
3. Можно почему нет, вопрос времени и желания. можно и без движка, ведь двигатель это, тот - же самый код, только написанный уже кем-то для облегчения вам задачи ( ну или усложнения тут уж как повезет )))))