
На каком языке программирования пишут игры- зависит от того, какие игры. Нет какого-то одного языка, который стал бы универсальным решением для всего геймдева (разработка игр).
На рынке игровой индустрии можно встретить самые разные игры, всех жанров и сортов, вплоть до всякого рода виртуальной или наложенной реальности. Уровень развития технологий позволяет создавать самые реалистичные, красивые и сложные проекты.
Из этого многообразия можно выделить 3 основных, и на сегодня самых актуальных направления разработки игр и в соответствии с ними 3 главных языка программирования, которые всё это воплощают в реальность.
Браузерные игры
Самые простые, но всё равно увлекательные игры, которые не требует больших ресурсов и для которых достаточно наличие интернета и устройства (телефон, планшет, ноутбук, ПК)- это браузерные игры.
Такие игры реализуются непосредственно на браузере клиента(пользователя). Как и во всей веб-разработке, основой этой реализации является HTML- структура веб-страницы.
HTML- это язык гипертекстовой разметки, он не является языком программирования, но предполагает отрисовку графики, обработку аудио и видео, анимацию и прочее методами программирования, т.е. с использованием языка программирования.
Наилучшим образом для этих целей подошёл JavaScript, и на это есть ряд объективных причин:
- JavaScript легко интегрируется с веб-технологиями HTML и CSS.
- Язык является стандартом фронтенда (клиентская часть приложения) и, грубо говоря, заточен под него, поэтому поддерживается всеми известными браузерами без установки дополнительных плагинов и расширений.
- Простой синтаксис языка.
- Большое количество различных библиотек и фреймворков, что значительно расширяет функционал языка.
Браузерные игры могут быть разной сложности. Есть популярные фреймворки на JavaScript, которые очень расширяют его возможности в плане анимации, графики, аудио и видео. Например, Three.js или Phaser.
Но чем сложнее игра, тем она становится ресурсозатратнее, а фишка браузерных игр не в их графике и реалистичной физике, а в доступности. Поэтому создать что-то вроде GTA на JavaScript не получится, но тем не менее этот язык имеет свою нишу на рынке игровой индустрии и довольно уверенно там себя чувствует.
Все самые крутые, фаршированные проекты геймдева, хиты индустрии — это игры, написанные на движке. И есть 2 самых популярных среди них, которые и доступны для освоения, и в состоянии удовлетворить текущие потребности игровой разработки.
Игры на Unity
Unity- один из самых популярных движков для игр. На нём делают онлайн-игры, мобильные, игры для консолей (PlayStation, Xbox) и ПК. Язык программирования в Unity- C#. Язык не очень сложный, с понятным синтаксисом и не очень высоким порогом входа.
Движок предлагает расширенный перечень инструментов и готовых компонентов для создания игрового мира, объектов и интерфейса пользователя. Это позволяет разработчикам сосредоточиться на создании уникальной игровой логики и взаимодействии с пользователем, не тратя время на создание базовых компонентов с нуля.
Несмотря на свои с серьёзные возможности, наилучшим применением unity стали по большей части казуальные игры:
- Fruit Ninja
- Cut the Rope
- Doodle Jump
и многие другие.
Это объясняется тем, что движок может очень быстро и эффективно создавать несложные, но привлекательные игры, с минимальным временем выхода на рынок. Сложные ресурсозатратные проекты делать можно, но время производства не оправдывает таких затрат.
Если открыть GooglePlay или AppStore, то процентов 90% представленного ассортимента будут казуалки на Unity, соответственно и проекты, которые будут предлагаться на рынке C#- разработчику на Unity – это, в подавляющем большинстве, простые, незатейливые игры под мобильные приложения и т.п.
Весь функционал, всю мощь современных технологий, в полной мере реализует другой, не менее популярный движок.
Игры на Unreal Engine
Движок Unreal Engine вышел из одноимённой игры компании Epic Games, известной сегодня даже среди начинающих геймеров. В своё время эта игра была настолько мощной, что её не вывозило большинство тогдашних компьютеров.
Движок включает в себя самые передовые инструменты геймдева и использует язык программирования C++. Этот язык в разы сложнее чем C#, но зато имеет полное управление над компьютером.
Язык С++ позволяет реализовать самые смелые задумки геймдизайнеров, а написанный на нём движок Unreal Engine делает реализацию этого процесса наиболее комфортным и эффективным. Интерфейс движка не такой удобный как в Unity, но и задачи перед Unreal ставятся более изощрённые.
Почти все игры от крупнейших производителей, с самой реалистичной графикой, физикой, анимацией и прочими атрибутами пишутся с применением движка Unreal Engine и языка программирования C++.
Основная работа для разработчиков на С++ под Unreal Engine, это работа в аутсорсинговых компаниях, которые работают на субподряде. В общих чертах это выражается в создании каких-то определённых аспектов игры, например, анимация персонажей, звуковое оформление, разработка уровней и других элементов игрового процесса.
В какой-нибудь новой, очумелой игре от ААА-студии, в сцене №59, безжалостно раздавленный с хрустом скорпион под пятой главного персонажа, может, к примеру, оказаться результатом кропотливой работы целой команды разработчиков Unreal Engine.
Что лучше?
Современные игры, даже самые простенькие, удобно и быстро писать на движке. Вся игровая индустрия сегодня- это по большей части либо Unity и C#, либо Unreal Engine и C++.
Какой из этих двух движков выбрать в качестве старта в геймдеве- дело сугубо индивидуальное, каждому нравится что-то своё, но есть ряд отличий, которые возможно помогут склонить чашу весов в ту, или иную сторону.
Unity- порог входа гораздо ниже чем у Unreal. На это есть 2 причины:
- сам по себе язык C# значительно проще чем C++
- технической документации (образовательного контента) по Unity в разы больше чем в Unreal.
Кстати говоря, этот же факт можно отнести и к его, Unity, недостаткам, и причины тоже 2:
- Слишком много людей(толпы) ломятся в разработку на Unity, т.е. с одной стороны уровень конкуренции высокий, с другой качество таких разработчиков сильно хромает.
- Обилие информации путает, а иногда и прямо-таки вредит продуктивности обучения
На Unity маленький период выхода на рынок. Можно не только быстренько что-то спрототипировать и затестить, а наскоряк состряпать, выпустить и продать.
Unity- это в основном мобилки и браузерные игры. Unreal Engine- консоли и ПК, продукты high level. Все исключения будут скорее подтверждать это правило. Во многом это объясняется тем, что для продуктов Unreal Engine требуется соответствующее железо и ресурсы вообще, в то время как Unity выдвигает минимальные требования.
Наличие бесплатных ассетов – это различные опции для создания игры, ресурсы и компоненты, которые можно импортировать в свой проект, в Unity значительно больше чем в Unreal Engine. Это тоже объясняется более широким комьюнити.
Магазин ассетов в Unity называется Asset Store, в Unreal Engine – это Marketplace. Сам магазин Unity существует дольше, поэтому и его наполнение больше.
Движок – это инструмент. Он предназначен для решения определённых задач, в том числе извлечение прибыли. Unreal Engine – продаёт игры на своём движке, Unity – продаёт движок. Это одна из точек зрения на противостояние двух гигантов, хотя на самом деле и там и там основная прибыль от платных подписок, покупки лицензии и т.д. Просто разные маркетинговые подходы.
На каком языке программирования пишут игры
Чтобы научиться разработке игр, недостаточно учить какой-то язык программирования, например, С# или C++. Нужно изучать движок и работать на нём.
Чтобы не выгореть в самом начале от шквала информации, её надо чётко структурировать. А чтобы она была прикладной, она должна быть ориентирована на трудоустройство. Т.е. не перерастать в академическое программирование.
В нашей бесплатной библиотеке Вы можете скачать книгу «Программирование в Unreal Engine 5 для начинающего игродела» и «Изучаем С# через разработку игр на Unity».
В телеграмм-канале «Слюнявый Джун», тоже совершенно бесплатно, можно скачать или просто посмотреть видео-лекцию по C# и Unity, а также обширное видео-пособие по Unreal Engine 5 для начинающих
Хорошо зарекомендовали себя платные онлайн-курсы по разработке на движках Unity и Unreal Engine. Их отличает прицел на последующее трудоустройство и, как минимум, ясное понимание направления дальнейшего роста.
Подписывайтесь на наши ресурсы: библиотека (ссылка отправляется вам на почту), телеграмм и читайте статьи на сайте.