Игровой движок Amethyst | 1. Введение

Игровой движок Amethyst | 1. Введение

Rust Lang Сообщество - Николай Калугин

Презентация

Привет! Эта книга научит вас всему, что вам нужно знать о создании видео игр и интерактивных симуляций с помощью игрового движка Amethyst. Этот движок полностью написан на Rust, безопасном и быстром языке системного программирования, и отличается чистым и современным дизайном. Если быть более точным, Amethyst на самом деле представляет собой набор отдельных библиотек и инструментов, которые вместе составляют игровой движок.

Amethyst - это бесплатное программное обеспечение с открытым исходным кодом, распространяемое по двойной лицензии MIT и Apache. Это означает, что движок предоставляется вам бесплатно, а его исходный код полностью ваш. Код доступен на GitHub. Вклады и пожелания всегда будут приветствоваться!

Мотивация

За прошедшие годы большинство из нашей команды работало с несколькими игровыми движками, а именно Unity, Unreal Engine, JMonkeyEngine и многими другими. Хотя все они являются довольно надежными решениями, если вы хотите создать качественную игру, у каждого есть свои плюсы и минусы, которые вы должны взвесить, прежде чем использовать их, особенно в отношении производительности и масштабируемости.

Мы считаем, Amethyst основан на хороших и современных принципах, что позволит нам создать игровой движок с открытым исходным кодом, который на самом деле будет более производительным, чем эти движки. Эти принципы:

  1. Модульность. Модульность лежит в основе философии Unix, которая с годами зарекомендовала себя как отличный способ разработки программного обеспечения. Вы всегда сможете свободно использовать встроенные модули или написать свои собственные и легко интегрировать их в движок. Поскольку модули малы и хорошо интегрированы, легче рассуждать о том, что они делают и как они связаны с другими модулями.
  2. Параллельность. Современные компьютеры, даже дешевые, имеют многопоточность с многоядерными процессорами. Мы ожидаем, что с годами у параллелизма будет все больше и больше возможностей для повышения производительности. С помощью правильного параллельного движка мы убеждены, что ваша игра будет становиться все более и более производительной с годами, даже не требуя от вас её обновления.
  3. Ориентирование на данные. Построение вашей игры на основе данных позволяет легко делать прототипы и быстро создавать игры. Сложное поведение, такое как обмен игровыми ресурсами во время игры, становится легким делом, делая тестирование и балансировку намного быстрее.

Зачем использовать Amethyst?

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

Прежде всего, движок основан на библиотеке Specs, которая является основой, на которой строятся концепции движка. Прекрасное введение в разработку игр с помощью Rust и Entity Component System можно найти в этом замечательном выступлении Кэтрин Уэст. Взгляд Amethyst на ECS описан в разделе книги "Концепции". Многие функции были связаны воедино, такие как:

  • Трансформации
  • Графика
  • Создание окна
  • Ввод
  • Аудио
  • Анимация
  • Локализация
  • Сеть
  • И другие...

Если бы вы не использовали Amethyst, вам не только нужно было бы создавать все эти элементы (или использовать уже существующие пакеты), вам также необходимо было бы связать их между собой.

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

Кроме того, благодаря архитектуре Amethyst, почти все части являются настраиваемыми и заменяемыми. Это означает, что если вы хотите что-то изменить в соответствии со своими потребностями, всегда есть способ сделать это.

Например, в настоящее время пакет rodio используется для функционирования аудио в движке, но если вы предпочитаете использовать какое-то более сложное или нестандартное решение, все, что вам нужно сделать, это организовать передачу данных, поступающих из Specs, в библиотеку которую вы используете для воспроизведения и управления аудио, даже не трогая код движка!

Помощь в развитии Amethyst

Мы всегда рады приветствовать новых участников!

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

Если вы хотите внести свой вклад или у вас есть вопросы, сообщите нам об этом на GitHub или Discord.


Статья была переведена для "Rust Lang Сообщества". (Ссылка на оригинал)

Если вас интересуют подобные переводы, рекомендую обратить внимание на Telegram канал - @rust_lang_ru. На котором вы можете найти статьи, переводы, новости и другие интересные материалы по языку Rust, там же вы можете обсудить всё это с единомышленниками.

Также имеется YouTube канал.

Подписывайтесь!


Предыдущая глава | В начало | Следующая глава