Если вы уже знаете c++, то подумайте о UnrealEngine.
Если вы хотите ещё освоить c#, то Unity3d - тоже прекрасный вариант.
Xamarin - это платформа для разработки кросс-платформенных программ, пишется на c#. Обычно используется для не-игровых программ, а игровые лучше делать в юнити.
Для игр попроще можно использовать платформы типа
Marmalade или
Corona, да даже
GameMaker.
Также может быть отличным решением делать программу на html+css+js с помощью
Cordova.
UnrealEngine и Unity3d примерно одинаковы по мощности, традиционно UnrealEngine имеет лучшую графику Unity3d, но язык c# в Unity3d удобнее и заметно проще, чем в UnrealEngine.
Лично моё мнение - начните работать с Unity3d. Мощный, быстрый, имеет хорошее сообщество, быстро развивается. Плюс, c# - это плюс :)
Насколько хорошо вы знаете программирование вообще и c++/c# в частности? Поищите здесь вопросы, с чего начать изучать языки.
Какие движки/фрейворки я буду использовать в дальнейшем?
А вот это вопрос к вам, а не к нам :)