На чем пишут игры
Перейти к содержимому

На чем пишут игры

Хочу создавать игры. Какой язык программирования выучить?

Хочу создавать игры. Какой язык программирования выучить?

Если вы планируете сделать карьеру разработчика видеоигр, ваш первый шаг — научиться программировать на языке, который используют профессионалы для создания величайших игр в мире. Но какой из многих языков программирования игр вам следует изучить в первую очередь?

Это очень важное решение. Чтобы выучить хоть один язык программирования, потребуется много времени, и лучше не тратить его на проходняк, который является лишь «изюминкой месяца».

Вместо этого вы хотите выучить язык, который ценится ведущими игровыми компаниями, такими как Sony, Activision или Nintendo. Так какие языки программирования помогут вам устроиться на работу в ведущую игровую компанию?

Популярность или немного статистики

Чтобы ответить на этот вопрос, мы возьмем 70 объявлений о вакансиях от 16 ведущих разработчиков игр со всего мира, чтобы выяснить, что им требуются от кандидатов на вакансии инженеров. Результаты представлены ниже.

Хочу создавать игры. Какой язык программирования выучить?

Лучший язык программирования для игр: C/C++

Как видно из диаграммы выше, C/C++, по мнению ведущих игровых компаний мира, на сегодняшний день является лучшим языком программирования для игр. Более половины объявлений о вакансиях указали C/C++ как требование.

И речь идет не о каких-то низкоуровневых должностях, близким к уборщику. Этот язык фигурирует в качестве требования в широком спектре вакансий, включая программиста инструментов, графического инженера, программиста AI, Backend-программиста, программиста ответственного за геймплей и многих других.

Хочу создавать игры. Какой язык программирования выучить?

Так что, если вы ищете язык для первого изучения, вы просто не можете ошибиться с C/C++. Очевидно, что он откроет для вас много-много дверей в профессии разработчика игр.

2-й лучший язык программирования игр для игр: C#

В то время как C/C++ прочно удерживает первое место как наиболее востребованный язык для разработки игр, на втором месте находится C#. Со временем C# становится все более популярным для разработки игр, особенно при использовании коммерческих игровых движков, таких как Unity 3D.

Но он все еще находится на втором месте, уступая C/C++. На самом деле, из 25 вакансий, в которых упоминался C#, только 5 из них указывали его в качестве отдельного требования. Остальные 20 объявлений фактически требовали C/C++, а C# просто перечисляли как «неплохо бы иметь».

Хочу создавать игры. Какой язык программирования выучить?

Таким образом, хотя изучение C#, безусловно, может быть полезно для поиска работы, ваши возможности могут быть ограничены, если вы не владеете C/C++.

Программирование и киберкультура для школьников: Minecraft, Dota 2 и Unity

«Или эквивалент»

Несомненно, важно быть знакомым с лучшими языками программирования. Тем не менее факт состоит в том, что, зная один язык программирования, гораздо легче выучить другие. Вот почему в 14% объявлений о вакансиях указывается требование к знанию языка, но затем делается оговорка: «или эквивалент».

Хочу создавать игры. Какой язык программирования выучить?

Например, в одном из объявлений компании Valve о вакансии инженера-программиста Steam требовался «подтвержденный опыт создания и выпуска коммерческого программного обеспечения на C++ или аналогичном языке». Другая вакансия от Rockstar Games для инженера требовала «навыков программирования и/или написания сценариев», в качестве примера приводились «C++, C# или Python».

Эти компании понимают, что любой хороший программист может изучать новые языки по мере необходимости. Именно поэтому они открыты для заявок от кандидатов, имеющих опыт программирования на других языках.

А как насчет всех остальных языков?

Хочу создавать игры. Какой язык программирования выучить?

В то время как C/C++ и C# были очевидными лидерами, было упомянуто еще 9 языков, включая PHP, Java, javascript, Python, Assembly, Lua, Ruby, Erlang и Go.

В большинстве случаев менее используемые языки характерны для конкретной студии, что, вероятно, указывает на то, что некоторые студии имеют узкоспецифические инструменты разработки игр и технологии, построенные на нестандартных языках программирования.

Например, Take-Two Interactive была единственной компанией, которая упомянула Erlang, и только в сообщениях Riot Games упоминался Go. Обратите внимание, что ни одна из студий не упоминала эти языки в качестве жесткого требования.

В других случаях определенные языки были предпочтительны для конкретных типов вакансий. Например, язык ассемблера требовался для работы программистом движка, что вполне логично, поскольку ассемблер используется почти исключительно в сверхвысокопроизводительных областях игрового движка. А Java был упомянут несколькими игровыми компаниями, но в основном для работы в области бэкэнд и сетевого программирования.

Вывод

Хочу создавать игры. Какой язык программирования выучить?

Если вы хотите начать успешную карьеру программиста видеоигр, совершенно очевидно, что изучение языка C/C++ станет важным шагом на вашем пути. Он уже несколько десятилетий занимает лидирующие позиции благодаря своей высокой производительности по сравнению с другими языками, и это вряд ли изменится в ближайшем будущем.

Тем не менее это не означает, что вам обязательно нужно начинать с C/C++. Изучение любого языка программирования поможет вам стать разработчиком программного обеспечения, и есть много других языков, которые легче выучить — даже профессиональные игровые компании знают, что как только вы научитесь писать на одном языке, вам будет легче изучать «эквивалентные» языки по мере необходимости.

Так что, если вы предпочитаете начать с чего-то менее популярного, но более легкого в освоении, дерзайте! Многие курсы программирования начинаются с обучения языкам «высокого уровня», таким как Lua или Python, поэтому не стесняйтесь начинать с них, если появилась такая возможность.

Вы всегда можете начать изучать C/C++ после того, как разберетесь с основными понятиями, которые применимы ко всем языкам программирования. Не успеете оглянуться, как вы уже будете осваивать новые языки программирования буквально на автомате.

На каком языке программирования пишут игры для ПК, какой выбрать?

Lorem ipsum dolor

Создавать видеоигры — это перспективное и денежное занятие, поэтому очень много новичков, которые хотят ворваться в IT-профессию через видеоигры, ищут и изучают языки программирования для создания игр.

Сегодня мы разберем , на каком языке пишутся компьютерные и браузерные игры, а также игры для современных смартфонов.

Языки программирования для создания игр

  • Swift и Objective-C — подходят для создания игр для iOS и MacOS;

  • JavaScript и PHP — идеально подходят для создания браузерных игр;

  • Java и Kotlin — подходят для создания игр для Android;

  • C# — подходит для тех, что хочет создавать компьютерные игры на Unity;

  • С и С++ — без них не обходится разработка требовательных компьютерных игр.

  • Unity;

  • Unreal Engine;

  • CryEngine;

  • и др.

На каком языке программирования пишут самые лучшие игры

Однозначного ответа на этот вопрос вы никогда не найдете, потому что каждый язык по-своему прекрасен, имеет свои преимущества и недостатки. При этом каждый язык «заточен» под свой вид игр и решает свои задачи. Крутые тяжеловесные игры часто пишут на нескольких языках программирования, потому что каждый из них выполняет какую-то свою функцию «на отлично».

Чтобы определиться , на каком языке лично вам лучше писать игры, нужно остановиться подробнее на видах игр.

Браузерные игры

Все мы встречали подобные игры, а некоторые любят в них и поиграть. Да, они не такие крутые и производительные , как игры для компьютера или игровой консоли, но своей доступностью они тоже неплохо затягивают.

Браузерные игры также по-своему бывают крупными, при этом игровой процесс для геймера дают небольшими «дозами», чтобы быстро не наскучило. Браузерные игры тоже можно монетизировать, если вас волнует именно «денежный вопрос». Но если сравнивать с полноценными компьютерными играми, то такие создаются быстрее и проще.

Игры для смартфонов

По качеству и объему использования игры для смартфонов превосходят браузерные игры. Многие из них достигают шикарной графики и крутой производительности. Но есть в них и своя трудность — это реализация удобного управления игровым персонажем. Однако в то же время эта сложность легко компенсируется достаточно простой разработкой подобных игр. Например, при использовании одного из популярных игровых движков, в которых уже есть встроенные решения для разработки графики и физики игры, можно создать игровой продукт всего за пару недель.

При работе с движками что в играх для смартфон ов , что для компьютеров, есть одно достоинство — не так много кода нужно дописывать «руками».

Если вы уже решили заниматься разработкой игр под мобильные устройства, не забудьте определиться , под какие. Android и iOS — это разные операционные системы, у которых разные собственные официальные инструменты для разработки. Соответственно , под каждую систему нужно будет изучать собственный язык программирования.

Иногда смотрят в сторону кроссплатформенных решений для игр. В них есть свой плюс : код пишется один раз, а далее под каждую систему только проводится компиляция. Но практика показывает, что подобные игры выдают более низкую производительность , чем игры, разработанные на нативных инструментах этих систем. Поэтому если в планах создать небольшую игрушку, возможно , для теста ниши или идеи, то можно воспользоваться кроссплатформенным решением. Н у а если вы хотите разрабатывать что-то серьезное и «на века», то лучше сразу присмотреться к «родным» инструментам для каждой отдельной системы. О них мы писали в самом начале статьи.

Компьютерные и консольные игры

  • реалистичная графика;

  • VR-технологии;

  • огромные игровые миры;

  • масштабные онлайн-проекты;

  • и многое другое.

  • тени,

  • свет,

  • отражения,

  • динамика,

  • реалистичная физика,

  • и др.

Заключение

Существует такое мнение, что можно разработать игру без знания кода, поэтому не стоит вначале изучать языки программирования для создания игр. Нельзя отрицать данное утверждение, однако нужно понимать, что , используя готовые решения , вы вряд ли сможете создать что-то уникальное. А это значит, вряд ли найдется большое количество пользователей, которы е будут играть в вашу игру. А не будет пользователей — не будет смысла создавать игрушку, ну разве что «для себя» или «просто попробовать».

Даже примен ение современны х движк ов для игр и уже готовы х шаблон ов для игр подразумева ет хоть и небольшие, но знания языка программирования, который использует сам движок. Поэтому знать , на каком языке программирования пишут игры, которые вы тоже хотите разрабатывать , очень важно.

Помните, что лучший язык программирования для создания игр — это тот, который вы знаете в совершенстве. Поэтому, если вы на старте пути, выберите для начала, какие игры вы хотите создавать, потом подберите к ним подходящий язык программирования и дополнительные инструменты и начинайте уже учить — ведь время идет.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Самые популярные бесплатные движки для разработки игр

В январе я участвовала в своем первом геймджеме — Global Game Jam 2022, в Стамбуле. На джеме все участники писали игры на движках — ибо надо быстро. Игровой движок — это физика, рендеринг, скрипты, искусственный интеллект. Создавать игру с нуля или пользоваться движком — вопрос вкуса. Вон, Джонатан Блоу вообще пишет свой движок, чтобы писать на нем игру.

Я обратила внимание, что большинство студентов использовали либо Unity либо GameMaker. Сама я питаю нежные чувства к Construct, но на нем всего одна команда делала игру. Я решила поискать альтернативу для себя, заодно запилила подборку бесплатных движков для начинающих (а может и продолжающих) игроделов.

Еще я веду канал в Telegram GameDEVils (на русском) и блог на Substack (на английском), делюсь там клевыми материалами (про геймдизайн, разработку и историю игр).

Популярные движки Steam и itch.io

Вот статистика, игры на каких движках выкладывают в Steam:

Топ-11 движков в Steam:

  1. Unity (27148)
  2. Unreal (6869)
  3. GameMaker: Studio (2806)
  4. RPGMaker (1938)
  5. Ren’Py (1235)
  6. XNA (572)
  7. Adobe AIR (398)
  8. Godot (384)
  9. Cocos2d (326)
  10. MonoGame (280)
  11. Construct (201)

И на каких движках чаще публикуют на itch.io:

Топ-11 движков на itch.io:

  1. Unity (82 000)
  2. Construct (18 300)
  3. GameMaker: Studio (12 100)
  4. Godot (8 640)
  5. Twine (7 800)
  6. Unreal Engine (4 800)
  7. Bitsy (4 800)
  8. RPG Maker (4 500)(не бесплатно, но есть триалка)
  9. PICO-8 (4 200)($15)
  10. Ren’Py (3 100)
  11. LÖVE (1 500)

1. Unity

На Unity разработали много игр, прям МНОГО. Вот ссылочка на Википедию. Unity поддерживается на iOS, Android, Windows Phone, Tizen и Fire OS.

Если оборот или объем привлеченных инвестиций не превышает $100 тыс. за последние 12 месяцев, то можно пользоваться бесплатной подпиской Personal.

Про Unity на Хабре:

2. Unreal

Игровой движок от компании Epic Games, тоже очень популярный, вот список игр из Википедии.

Unreal Engine бесплатный аж с 2015 года, но разработчики игр должны передавать 5% от выручки с продаж игры компании Epic Games, если ежеквартальная выручка превышает $1 000 000.

Про Unreal на Хабре:

3. GameMaker: Studio2

Интерфейс Game Maker объединяет в себе редакторы спрайтов, объектов, комнат, скриптов, а также тайм-лайнов (последовательностей действий с привязкой по времени), путей (маршрутов) движения и констант. Летом 2021 года YoYo Games сделали беплатный доступ без ограничений по времени. Изначально они выдавали триалку только на месяц, для знакомства. Правда экспортировать на бесплатной версии можно разве что на GXC.

За базовую подписку CREATOR (≈ 80 руб./мес.) появляется экспорт для Windows, macOS и Linux. За INDIE (≈ 260 руб./мес.) появляется экспорт для HTML5 и мобилки.

Проблема GameMaker, и других движков типа «наведи и щелкни» в том, что разработчики более ограничены. С другой стороны, GameMaker популярен, потому что позволяет создать игру без предварительных навыков программирования.

Про GameMaker на Хабре:

4. Godot

Открытый кроссплатформенный 2D и 3D игровой движок под лицензией MIT, который разрабатывается сообществом Godot Engine Community. Среда разработки запускается в Linux, BSD, macOS и Windows. Godot поддерживает GDScript (свой собственный язык), C++ и C#. Плюс есть еще средство для создания привязок к другим языкам — GDNative. Сообщество поддерживает Rust, Nim, JavaScript, Haskell, Clojure, Swift и D.

Про Godot на Хабре:

Cocos2d

Крос-платформенный опенсорсный фрейворк для разработки игр и приложений, преимущественно для мобилки с лицензией MIT. Cocos2d-x развертывается в iOS, Android, HTML5, Windows и Mac.

Фреймворк поддерживает создание 2D и 3D игр, предоставляет такие функции, такие как рендеринг графики, графический интерфейс, аудио, сеть, физика, пользовательский ввод и т.д. Ядро написано на C++ и поддерживает разработку на C++, Lua или JavaScript. У фрейворка есть множество ответвлений: Cocos2d-ObjC, Cocos2d-x, Cocos2d-html5 и Cocos2d-XNA.

Про Cocos2d на Хабре:

5. Construct

Ноу-код движок для создания 2D игр. Запускается в браузере, работает из десктопа офлайн. Движок не дает большой гибкости, как GameMaker, и также дружелюбен к новичкам без технического бэкграунда + на ютубе выложена куча туториалов.

Есть бесплатная версия Construct, основное ограничение — 2 слоя и максимум 25 «событий» (если авторизоваться, то 50 «событий») в проекте. За события считается любое действие / поведение объекта. Но чтобы попробовать, и даже собрать элементарный платформер — хватает. Персональная лицензия стоит около $5.

6. Twine

Платформа для интерактивного сторителлинга и визуальных новелл, бесплатная, с бесплатной публичной лицензией (GPL).

Чтобы создать простенький сторителлинг с помощью Twine, код писать не нужно. Но можно. Можно дополнить свои истории с за счет переменных, условной логики, изображений, CSS и JavaScript.

Про Twine на Хабре:

7. Adobe AIR SDK (HARMAN)

Кроссплатформенный движок (Windows, OS X, Linux, QNX, Android) от компании Adobe, которая пару лет назад передала на нее права компании HARMAN. Этот движок можно использовать бесплатно, если вы зарабатываете менее 50 тысяч долларов в год. Движок все еще популярен в Steam, от части из-за адаптаций браузерных игр на Flash.

На Хабре про AIR:

8. Ren’Py

Опенсорсный движок для создания визуальных новелл в 2D-графике с бесплатным коммерческим использованием.

Про Ren’Py на Хабре:

9. Bitsy

Крошечный онлайн редактор для мини-игр. Это какой-то супер-милый проект и милым сайтом. Разработчик выкладывает логи проекта на itch.io. И там же можно поиграть в игры, сделанные с помощью Bitsy движка.

10. LÖVE

Фреймворк для создания 2D игр на Lua. Он бесплатный, с открытым исходным кодом и работает на Windows, Mac OS X, Linux, Android и iOS. Лицензия zlib, позволяет свободное использовать движок даже в коммерческих проектах с закрытыми исходниками.

Про LÖVE на Хабре:

11/12. XNA и/или MonoGame

Microsoft еще лет 10 назад сказали, что не будут больше выпускать обновления для Microsoft XNA Game Studio. У этой платформу есть приемник — проект MonoGame, представляющий собой кроссплатформенную open-source реализацию XNA с дополнительными возможностями. MonoGame позволяют разрабатывать под Windows, Mac OS, Linux, iOS, Android, PS4, PSVita, Xbox One и Nintendo Switch. Язык разработки игр — C#.

НЕбесплатные движки с itch.io и Steam

PICO-8

Это игровая консоль, которая имитирует ограниченные графические и звуковые возможности 8-битных систем 1980-х годов. Можно единоразово приобрести за $15.

RPG Maker

Это серия движков для создания РПГ, точнее JRPG, японских ролевых игр. Для RPG Maker тоже нет бесплатной подписки, но есть пробная триалка. RPG Maker поддерживает только Windows. В Steam он лежит для разовой покупки от 500 до 3000 рублей, в зависимости от продукта, там есть несколько «комплектаций». Менять скрипты под себя можно на Ruby-подобном языке.

Больше бесплатных движков

Вот бонусом еще 11 бесплатных вариантов движков:

1. Amazon Lumberyard

Бесплатный кросс-платформенный игровой движок, разработанный Amazon. Визуальная технология Lumberyard основана на CryEngine, но команда разработчиков Amazon уже внесла в систему значительные обновления. Роялти нет, лицензионных сборов нет. Amazon зарабатывает деньги через Amazon Web Service. Естественно, у этого игрового движка прекрасная совместимости с AWS. Помимо бесшовной интеграции с AWS, Lumberyard также предлагает интеграцию с Twitch.

Про Amazon Lumberyard на Хабре:

2. Solar2D (бывший Corona SDK)

Кросплатформенный движок с открытым исходным кодом для создания мобильных 2D-игр и приложений. Поддерживает такие платформы, как Android, iOS, Kindle, macOS, Windows, Linux. Предусмотрена сборка веб-приложений (HTML5). Solar 2D использует интегрированный Lua, наложенный поверх C++ / OpenGL.

Про Solar2D на Хабре:

3. jMonkeyEngine

Движок с открытым исходным кодом, написанный на Java для создания игр и приложений для Android или iOS. Точнее jMonkeyEngine — это набор библиотек для низкоуровневой разработки, а в высокоуровневый инструментарий его превращает интегрированная среда разработки, к примеру jMonkeyEngine 3 SDK.

Про jMonkeyEngine на Хабре:

4. SpriteKit

Это движок для 2-D игр, разработанный Apple и предназначенный для устройств Apple.

Про SpriteKit на Хабре:

5. Box2D

Физический движок от разработчика из Blizzard Entertainment, написан на C++, лицензия MIT.

Про Box2D на Хабре:

6. LibGDX

Кросплатформенная среда разработки на Java, которая предоставляет унифицированный API для создания 2D- и 3D-игр. LibGDX дружит с движком Box2D (физика реального мира), можно добавить поддержку TrueType шрифтов или работать с 3D объектами.

А еще коммьюнити LibGDX проводит геймджемы раз в сезон (март, июнь, сентябрь, декабрь), вот ссылочка на подробную информацию: Game Jams.

Про LibGDX на Хабре:

7. Urho3D

Бесплатный 2D и 3D игровой движок, запускается на Windows, Linux, macOS/iOS/tvOS, Android, и даже на Raspberry Pi и в браузере. Вики Urho3D содержит всю инфу для начала работы с движком, включая практические руководства по настройке.

Про Urho3D на Хабре:

8. CryEngine

Если вы использовали версию движка 5.5+ и заработали 5000$, то придется выплачивать 5% от прибыли. Если вы используете более ранние версии, то можете подать заявку на освобождение от выплат.

Про CryEngine на Хабре:

9. Panda 3D

Движок с открытым исходным кодом для 3D-игр. Язык разработки игр — Python. Сам движок написан на C++ и использует автоматический wrapper-генератор для предоставления полной функциональности движка в интерфейсе Python. Panda 3D может работать практически на всех основных платформах.

10. Bitty

Небольшой кроссплатформенный движок и опенсорсный фреймворк для создания 2D-игр на Lua…

11. Phaser

HTML5-опенсорсный движок для тех, кому хочется писать JavaScript or TypeScript браузерные 2D игры. Для начала работы с движком создатель предлагает просто начать вносить свои правки в уже существующие общедоступные игры и смотреть, что из этого получается. Плюс есть форум, где чувачки из комьюнити активно отвечают.

Кстати, про геймджем по-турецки скоро отдельный пост запилю. Вот пока моя фотка во время джема:

(Это я в шапочке, честное слово)

Мой канал в Telegram с находками про разработку игр, историю игр и геймдизайн: GameDevils (на русском) и блог на Substack (на английском).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *