типа небольшая 2д игра
Для "типа небольшой 2д игры" вообще не обязательно на чем-то уметь программировать. Есть такой движок, называется Construct 2. На нем можно делать "типа небольшие 2д игры". Знаю, звучит не очень вдохновляюще. Поэтому лучше просто загугли сразу про этот движок. Прочувствуешь всю его простоту по первому взгляду. Посмотри на ютубе пару видео о нем. Материала по нему предостаточно, в том числе на русском языке. И как бы оно плохо не звучало, вещь довольно прикольная. Не очень перспективная, но прикольная.
Если же у тебя все-таки где-то в глубине души есть желание делать большие и классные игры (2д/3д - не важно), а не только лишь "типа небольшие 2д игры" - тогда лучше всего подойдет C# и Unity.
Для сравнения... Пока ты будешь "вариться" во всем этом, то:
В случае с Construct 2:
Ты можешь неспешно что-то пытаться делать, изучать, что-то придумывать, и через пару-тройку месяцев родишь более-менее играбельное и готовое "нечто" (а не очень готовое, но хоть сколько-нибудь играбельное - можно хоть через пару дней). Если повезет с идеей, не подкачаешь с реализацией, то игру можно даже опубликовать и продавать. Но это скорее исключение, чем правило.
Из плюсов, относительно Unity:
- С ним очень просто и приятно работать, если ты не особо шаришь в программировании
- Не нужно уметь программировать ни на одном из языков (хотя эти знания будут очень кстати, потому что ты все равно в каком-то смысле будешь программировать различные действия и взаимодействия)
- Можно быстро делать разные небольшие 2д игры
Из минусов:
- У движка есть нехорошая особенность, которую в двух словах не объяснишь. Но при падениях FPS у игры, ты можешь столкнуться с тем, что некоторые объекты будут проходить сквозь друг друга (в частности это касается небольших объектов, с большими объектами все в порядке).
- Движок также мультиплатформенный, как и Unity, но для мобильных платформ он не подойдет, потому что оптимизация огорчает. Тут скорее даже не движок виноват, а то, что игра выходит на HTML5. Поэтому игра на многих даже очень хороших мобильных устройствах будет плохо идти. Исключение: какие-нибудь "point and click" квесты или другие игры, где не нужен хороший FPS. Десктопных игр это не особо касается, на них проблем с производительностью при текущих мощностях компьютеров нет.
- Если захочешь продавать игру, нужно приобрести лицензию (8000р с небольшим)
В случае с Unity и C#:
Ты можешь неспешно что-то пытаться делать, изучать, что-то придумывать, и через пару-тройку лет родишь более-менее играбельное и готовое "нечто" (а не готовое - через пару-тройку месяцев). Скорее всего такой продукт можно будет продавать.
Из плюсов, относительно Construct 2:
- Это перспективно (в плане профессии). Сейчас много компаний делают игры исключительно на Unity.
- Стабильность. В движок влили огроменные деньги, поэтому все на нем прекрасно работает, в том числе на мобильных платформах.
- Если тебе нужен Unity не для компании с доходом 100000$ в год, то это реально бесплатно (я не шучу, у Unity реально есть такое ограничение). Лицензий никаких приобретать не нужно, игру можно спокойно продавать (например, в Desura).
- В перспективе ты можешь прикрутить к игре онлайновые функции (в Construct 2 это невозможно в принципе)
- Если будешь изучать C#, то сможешь не только игры делать на Unity, но и программы (на Xamarin Studio или Visual Studio)
- Контента по Unity в интернете, все-таки, больше. Что важно, намного больше именно хорошего, качественного контента.
Из минусов:
- Конечно, можно использовать намного более простой JavaScript, но если все-таки серьезно решил делать игры, то рекомендую изучать именно C#. Это объектно-ориентированный язык, а значит придется также разобраться с объектно-ориентированным программированием. А это не самая простая штука - в этом минус :)
- Тебе понадобится много времени ;)