Logo

Игровой движок Amethyst

Презентация

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

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

Содержание

Эта книга разделена на несколько разделов, причем это введение является первым. Другие разделы:

  • Начало работы - подготовьте свой компьютер к разработке Amethyst.
  • Концепции - обзор концепций, используемых в Amethyst.
  • Pong Tutorial - создайте простую игру понг.
  • Математика - краткое введение в математику Amethyst.
  • Анимация - объясняет архитектуру пакета amethyst_animation.
  • Управление выполнением систем - показывает, как структурировать более сложные игры.
  • Глоссарий - определяет специальные термины, используемые в книге.
  • Приложение A. Файлы конфигурации - показывает, как определить ваши данные в файлах RON.

Прочитайте документацию API пакета для получения дополнительной информации.

Мотивация

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

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

  1. Модульность.

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

  1. Параллельность.

    Современные компьютеры, даже дешевые, имеют многопоточность с многоядерными процессорами. Мы ожидаем, что с годами у параллелизма будет все больше и больше возможностей для повышения производительности. С помощью правильного параллельного движка мы убеждены, что ваша игра будет становиться все более и более производительной с годами, даже не требуя от вас её обновления.

  2. Ориентирование на данные.

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

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

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

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

К примеру, такие как:

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

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

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

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

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

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

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

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

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


Документация была переведена специально для сообщества "rust_lang_ru".

Подпишись на нас в Telegram и YouTube!