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