Featured Новость План работ по обновлению вселенной #1

    Тема в разделе "Новости StarMade", создана пользователем The_NorD, 24 Январь 2019.

    1. The_NorD

      The_NorD Переводчик и Админ.
      Команда форума

      Регистрация:
      19 Ноябрь 2014
      Сообщения:
      191
      Приветствую, игроки,

      Это - первое из многих обновлений Дорожной карты для обновления вселенной.

      Обновление вселенной требует изменения многих основ игры, и, хотя за последний год уже было что-то сделано, осталось ещё много работы. Кроме того, всё нужно будет собрать воедино.

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

      Обновление будет состоять из трех этапов. Каждый этап состоит в основном из похожих типов обновлений.

      Этап № 1: Обновление библиотек, базовый рефакторинг системы и базовые улучшения системы.
      Этап № 2: Модернизация движка и оптимизация системы.
      Этап № 3: Редизайн вселенной и создание контента.
      Далее я расскажу о том, что уже сделано и каковы дальнейшие шаги.

      Фаза 1:

      Обновление до Java 11.
      Статус: Выполнено
      Для этого есть несколько причин: Java 11 не только более оптимизирована сама по себе, она также предоставляет новые функции для более чистого кода, оптимизации игр, а также лучшей совместимости. Более того, это перспектива на будущее, тем более что во многих новых версиях сторонних библиотек, которые используются в игре, используется более новая версия Java. Еще одна приятная вещь - это то, что предоставляемое время выполнения может быть настроено, что означает, что мы можем развернуть игру с гораздо меньшим индивидуальным пакетом, который содержит только модули, необходимые для запуска игры (а ещё вам не потребуется устанавливать Java для того, чтоб поиграть в игру).

      Обновление основных библиотек
      Статус: Выполнено
      Основные библиотеки, такие как hlsql (для баз данных), были обновлены новыми версиями, и код был реорганизован для их поддержки.

      Обновление до Lwjgl 3
      Статус: Выполнено
      Lwjgl не только обеспечивает более близкий интерфейс к оборудованию, но и поставляется с GLFW -
      универсальным интерфейсом, который представляет собой Open Source мультиплатформенную библиотеку для разработки на OpenGL, OpenGL ES и Vulkan. Он предоставляет простой API для создания окон, контекстов и поверхностей, получения ввода и событий.

      GLFW написан на C и имеет нативную поддержку Windows, macOS и многих Unix-подобных систем, использующих систему X Window, таких как Linux и FreeBSD.

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

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

      Еще одним важным преимуществом lwjgl является то, что он поставляется с множеством дополнительных библиотек, которые потенциально могут позволить оптимизировать starmade или создать новые функции, например - библиотека с более быстрым сжатием. Кроме того, Vulcan полностью доступен для нас сейчас.
      Кроме того, имеется полная библиотека для Steamworks, которая сделает запланированное внедрение функций steam (подключение к игре и т. д.) намного быстрее и проще.


      Перепроектирование системы ввода
      Статус: Выполнено <- Мы здесь
      Поскольку GLFW использует совершенно другой способ взаимодействия с вводом (клавиатура, мышь, джойстики), я воспользовался возможностью, чтобы переписать систему ввода StarMade, чтобы сделать ее более универсальной, более отзывчивой и намного менее подверженной ошибкам. Однако главное преимущество обновления заключается в том, что теперь каждому действию в игре можно назначить любое устройство и кнопку (включая колесико мыши). Это значит, что стрельба с клавиатуры или переключение слотов с помощью джойстика теперь легко легко реализуемо. Система может также обрабатывать клавиши-модификаторы (комбинации клавиш), а также любое количество альтернативных входов для действия.

      Остальное в фазе #1
      • Интеграция новых библиотек lwjgl3
      • Steamworks (подключение к игре, достижения и т. Д., позже, возможно будет добавлена мастерская Steam)
      • Масштабирование GUI (100%, 150%, 200%), чтобы охватить всё от 1К до 4К
      • Звуковая система (и менеджер звука)
      • Возможно, здесь будет ещё несколько шагов. Я надеюсь закончить первый этап где-то в феврале.

      Фаза 2:

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

      Эта фаза также будет содержать больше преобразований, чем когда-либо, в код на C++. Я планирую полностью перевести физику на С++, который также будет изначально поддерживать многопроцессорность/многопоточность.
      Кроме того, я добавлю расчеты освещения на С++, чтобы ускорить генерацию чанк-графики. При этом все тяжелые функции процессора будут работать на нативном с ++, сохраняя при этом простоту управления проектами, которую обеспечивает java.

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

      Еще одним обновлением второй фазы станет загрузчик контента для секторов. Если все пойдет по плану, то в идеале игрок практически не будет замечать смены сектора.

      Эта фаза также будет содержать переписывание всех функций ИИ (может быть перемещено в фазу 3).

      Я расскажу более подробно о второй фазе , когда мы до неё доберемся.

      Сроки:определённых сроков нет, но я надеюсь закончить этот этап в первой половине 2019 года.

      Фаза 3:

      Фактически - фаза контента. После первых двух фаз движок должен быть в отличном состоянии. Этот этап включает в себя перестройку всей вселенной в более сжатое игровое поле, наполненное контентом и игровым процессом.
      Я пока не могу рассказать об этом слишком много, поскольку все еще есть некоторые неопределенные детали, которые зависят от предыдущих этапов, но я расскажу намного больше об этих вещах в обновлениях во время и после этапа №2.


      Я надеюсь, что это даст вам хороший обзор текущего состояния разработки. Все в Schine будут продолжать работать в полную силу, чтобы сделать это определяющее обновление StarMade достойным предоставления ему подзаголовка: StarMade 2020.

      Спасибо, что играете в StarMade,
      - Команда Schine

      Перевод The_NorD