Спадщина проти кросплатформності: Чому повернення Hytale до Java/C# - це перемога моддерів

By HytaleCharts Team Category: technical 7 min read

Рішення повернутися до застарілого рушія є найбільш суперечливим аспектом відродження гри. Дізнайтеся, чому це насправді чудова новина для моддерів та гравців на низькопродуктивних комп'ютерах.

У світі розробки програмного забезпечення переписування ігрового рушія з нуля часто вважається смертельним вироком. Для Hytale це майже так і було. Нещодавня заява про те, що Hypixel Studios відмовляється від багаторічних зусиль зі створення власного крос-платформного рушія на C++ на користь оригінального "Legacy Engine", є найбільш суперечливим - і, можливо, найважливішим - аспектом відродження гри. Для пересічного гравця це звучить як технічний жаргон. Але для спільноти моддерів та гравців зі старими ПК це рішення визначає майбутнє гри. Повернення до серверної архітектури на основі Java докорінно змінює те, хто може грати в гру, як її можна буде модифікувати і як вона буде працювати. Неуспішний експеримент: Крос-платформний рушій C++ Коли Riot Games придбала Hypixel Studios у 2020 році, мандат був чітким: розширити сферу діяльності. Мета полягала в тому, щоб вивести Hytale на мобільні пристрої та консолі, щоб вона могла конкурувати з Roblox та Minecraft Bedrock Edition. Для цього команда відійшла від оригінального рушія (поєднання серверної архітектури Java та клієнтської C#) до уніфікованого C++ рушія. Втім, цей перехід виявився катастрофічним: Гральні ігри. Ігрове відставання: Новий рушій "значно відставав" з точки зору реальної забавки. Хоча технології були сучасними, сама гра - бої, дослідження, генерація світу - була відсутня.. Відставання від графіка: Було підраховано, що використання рушія C++ потребувало б ще два роки, перш ніж гра була б готова до альфа-тестування. Витік ресурсів: Розробка рушія поглинала ресурси студії, залишаючи мало часу на створення контенту. Повернення застарілого рушія: Перемога для моддерів Повернення старого рушія. "Рушій Legacy Engine" - це програмне забезпечення, на якому працював знаменитий трейлер 2018 року. Він побудований з використанням Java-сервера і C#-клієнта. Цей гібридний підхід є особливим: клієнт (те, що ви бачите) працює на C# для підвищення продуктивності, тоді як сервер (логіка) працює на Java. Чому це перемога для моддерів? Співтовариство модифікаторів Minecraft побудовано на Java. Повертаючись до серверної архітектури на основі Java, Hytale миттєво робить свій код доступним для мільйонів моддерів, які виросли на Minecraft. Простота доступу: Java, як відомо, легше піддається реінжинірингу та модифікації, ніж C++. Логіка сервера: Оскільки сервер працює на Java, власники серверів матимуть детальний контроль над ігровою логікою, плагінами та власними ігровими режимами, що рідко дозволяє C++. Негайна сумісність: Для існуючих розробників плагінів для Minecraft тепер не потрібно переходити на Hytale. Безпосередня сумісність: Існуючі розробники плагінів для Minecraft тепер можуть перейти на Hytale. Фактор "Flecs": Модернізація спадщини Вкрай важливо, що повернення до рушія Legacy Engine не означає, що гра працює на застарілих технологіях. Блоги розробників з середини 2014 року показали, що команда інтегрувала Flecs, легку систему компонентів сутностей (ECS), у свою архітектуру. Це масштабне технічне оновлення. У стандартній об'єктно-орієнтованій системі (наприклад, Minecraft) додавання тисяч сутностей (зомбі, свиней, стріл) призводить до затримок, оскільки комп'ютер повинен обробляти кожну з них окремо. ECS групує ці об'єкти разом у пам'яті, дозволяючи процесору обробляти тисячі з них одночасно. Це означає, що, незважаючи на те, що рушій є "застарілим", він повинен обробляти масові битви і складні популяції серверів набагато краще, ніж Minecraft коли-небудь міг. Системні вимоги: Чи піде? Повернення до застарілого рушія також зміщує акцент у розмові про системні вимоги. Рушій C++ створювався для сучасної масштабованості, але Legacy Engine був розроблений для роботи на широкому спектрі апаратного забезпечення, подібно до Minecraft, але з кращою оптимізацією. Орієнтовні системні вимоги (припущення щодо застарілого рушія): КомпонентМінімальні вимоги (розрахункові)Рекомендовані вимоги (розрахункові)