Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

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

Принципы разработки компьютерных игр

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

  • C;
  • C++;
  • C#;
  • Java;
  • PHP/JavaScript;
  • Swift и др.
Замечание 1

В недавнем прошлом популярной платформой для разработки игр была среда AdobeFlash и поддерживаемый в ней язык ActiveScript. Такие игры часто встраивались в веб-страницы. В последнее время, в связи с многочисленными уязвимостями Flash и развитием альтернативных веб-технологий (HTML5, WebGL), этот подход считается устаревшим.

Рассмотрим основные категории компьютерных игр.

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

Игры, запускаемые непосредственно в браузере, хороши тем, что не требуют процесса установки на компьютер. Они сравнительно безопасны и достаточно привлекательны, хотя и уступают тем, что написаны в виде отдельных приложений, в скорости работы и сложности. Основной язык, с помощью которого создаются браузерные игры - JavaScript (используется объект Canvas), обрабатывающий сценарий непосредственно на стороне клиента, время от времени обращающегося к серверу, где тоже производится часть обработки.

Браузерная "Игра империй". Автор24 — интернет-биржа студенческих работ

Рисунок 1. Браузерная "Игра империй". Автор24 — интернет-биржа студенческих работ

Игры для мобильных платформ.

Мобильные игры ограничены в своих возможностях малым размером дисплея и небольшой мощностью процессоров. Кроме того, отсутствие клавиатуры и мыши (или джойстика) затрудняет управление такими программами. Тем не менее, благодаря именно портативности, такие игры достаточно популярны. Для разработки игр для мобильных систем существуют готовые платформы ("движки"), такие, как Unity3D, ShiVa3D, AndEngine. Программы для мобильных устройств пишут на Java, Kotlin (ОС Android), Swift (iOS).

Игры для персональных компьютеров и консолей.

Игры для стационарных устройств с полноценными экранами и возможностью подключения периферийных устройств (джойстиков, геймпадов, очков виртуальной реальности) отличаются наиболее реалистичной графикой, высокой скоростью, возможностью играть в группе. С другой стороны, при создании таких игр приходится учитывать множество сложных аспектов: механику, графику, музыку, озвучку, сюжет. Такая работа требует больших затрат времени и финансов, коллективной разработки, а также мощных программных ядер, отвечающих за физику и другие характеристики игр на абстрактном уровне. Наиболее популярные продукты этой категории - Unreal Engine, Unity, CryEngine.

«Языки программирования для создания игр» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ
Замечание 2

Некоторые игры созданы "с нуля", без применения "движков". World of Warcraft написан на C++, Minecraft - на Java.

Программирование игр в среде Unity

Unity - популярная среда для разработки компьютерных игр. Программирование в ней отличается от программирования в обычной IDE. Разработчик не столько пишет приложение, сколько наделяет уже имеющееся ядро - объекты класса GameObjects - требуемым поведением.

Функциональность добавляется к движку с помощью скриптов, которые можно писать на языках C# и JavaScript, причем первый считается предпочтительным. Скрипты определяют поведение GameObjects и их взаимодействие друг с другом. Такой подход позволяет сосредоточиться на игровом процессе, избавиться от рутинных операций.

Ядро Unity в циклическом режиме обрабатывает данные игровых сцен: формирует освещенность, скорость движения, прокрутку по пространству игры, изменения в геометрии персонажей и ландшафта. Такие расчёты производятся с высокой скоростью, формируя статические кадры, сменяющиеся с частотой порядка 30 в секунду. Такая высокая производительность нужна не только для того, чтобы изображение выглядело плавным, но и для обеспечения максимальной отзывчивости, т.е. чтобы программа как можно быстрее реагировала на действия пользователя.

При разработке программ на Unity используются специализированные редакторы кода, обеспечивающие подсветку синтаксиса и автодополнение в соответствии с API движка. Для версий до 2017.3 включительно среда Unity комплектовалась редактором MonoDevelop. В настоящее время разработан специализированный вариант IDE Visual Studio. Можно использовать и другие редакторы (Notepad++, Sublime и т.д.).

Разработка в среде Unity. Автор24 — интернет-биржа студенческих работ

Рисунок 2. Разработка в среде Unity. Автор24 — интернет-биржа студенческих работ

Скрипты Unity наследуют все прогрессивные возможности C#: переменные со строгой типизацией и разграничением доступа, функции, классы.

Поведение объектов GameObject программируется специальными функциями:

  • Awake вызывается во время инициализации объекта, в том числе, когда он выключен;
  • Start вызывается для активации включенного объекта;
  • Update вызывается каждый раз, когда формируется кадр (для создания анимации, расчета логики и т.д);
  • FixedUpdate применяется для расчета физического поведения объектов игры;
  • LateUpdate вызывается по окончании отрисовки кадра для некоторых специфических объектов, таких, как камера.

Программирование на языке Lua

Многие компании-разработчики популярных игр закладывают в свои продукты возможность для пользователей расширять возможности за счет подключения собственных модулей. Например, среда Minetest (свободная реализация Minecraft) предоставляет простое API, с помощью которого можно создавать т.н. моды - сравнительно компактные фрагменты кода, программирующие необычные строительные блоки, инструменты, декоративные элементы и даже такие возможности, как управление игровой погодой и динамикой регенерации ресурсов.

Кастомные блоки для Maintest. Автор24 — интернет-биржа студенческих работ

Рисунок 3. Кастомные блоки для Maintest. Автор24 — интернет-биржа студенческих работ

Естественным требованием к языку, на котором пишутся такие дополнения, является легкость освоения. Кроме того, это должен быть интерпретируемый язык, чтобы избежать стадии компиляции (все подключенные модули загружаются в начале игры). Одним из языков, удовлетворяющих этим требованиям, является Lua. Это язык программирования с открытым исходным кодом, что дает ему следующие преимущества:

  • язык является свободно распространяемым, что можно понимать как "бесплатным";
  • библиотека для интерпретации lua-скриптов может быть встроена в любое программное обеспечение;
  • возможности языка можно модифицировать в зависимости от потребностей игры.

Пример кода для Minetest:

minetest.register_node("test:block", {
 tiles = {"test_decowood.png"},
 groups = {cracky=3, oddly_breakable_by_hand=1},
 sounds = default.node_sound_glass_defaults(),
})

Язык Lua используют такие известные компании-разработчики игр, как Lucasarts (продукты Grim Fandango, Escape from Monkey Island), Bioware (Neverwinter Nights, MDK2). На вебсайте языка можно найти обширный список игр и более серьезных продуктов, использующих Lua. Например, интерпретатор этого скриптового языка встроен в сервер баз данных Redis.

Дата написания статьи: 22.03.2019
Найди решение своей задачи среди 1 000 000 ответов
Крупнейшая русскоязычная библиотека студенческих решенных задач
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot