Введение

Игровой движок для стратегий в реальном времени (RTS)

Spring Engine (также называемый SpringRTS и ранее TA Spring) — игровой движок для видеоигр в жанре стратегии в реальном времени (RTS). Этот игровой движок является бесплатным программным обеспечением с открытым исходным кодом, распространяемым на условиях GNU General Public License версии 2.0 или более поздней.

История

Разработка была инициирована Стефаном Йоханссоном, Томазом Кунавером и Йелмером Кноссеном, членами шведского игрового клана Yankspankers под названием TA Spring. С 2005 года разработка ведется сообществом. Изначально проект был направлен на перенос игрового опыта Total Annihilation в трехмерное пространство и обеспечение поддержки модов и сторонних юнитов из Total Annihilation. Первый релиз состоялся 7 июля 2007 года и достиг поставленных целей. С тех пор проект эволюционировал от простого клона TA до универсального игрового движка для RTS, включающего более гибкие возможности, такие как встроенная расширяемость высокого уровня через интерфейс скриптов Lua. Большинство игр, работающих на этом движке (по состоянию на декабрь 2010 года), ориентированы на многопользовательский геймплей. В настоящее время также существует ряд одиночных миссий, созданных на основе фреймворков, использующих возможности Lua-скриптов движка. Кроме того, имеется большое количество искусственных интеллектов (ИИ) для сражений, позволяющих играть в автономном режиме или добавлять игроков в онлайн-игру.

Архитектура программного обеспечения

Большинство игр на базе Spring Engine предназначены для игры онлайн, в многопользовательских матчах. Spring Engine использует детерминированное игровое моделирование, которое одновременно выполняется на всех игровых клиентах. Другим игрокам отправляются только команды пользователя, что предотвращает активное читерство. Многопользовательский режим поддерживается как в Linux, так и в Windows. Предварительное лобби использует специально разработанный протокол, аналогичный протоколу Internet Relay Chat, для организации чата, подбора игроков и настройки параметров сражения. Существует несколько клиентов лобби Spring. Лобби игры также позволяют настраивать игры для одного игрока. Это можно сделать либо с помощью специального режима для одного игрока, либо с помощью многопользовательского режима с паролем и добавлением ботов в игру. Вместо ботов некоторые игры также поддерживают специальные режимы, позволяющие играть в одиночку. Наиболее популярными в этой области являются режимы "курица" в Zero K и Balanced Annihilation, где игроку необходимо защищаться от волн монстров. Начиная с версии 0.79, в Spring также появились миссии. В игру входит редактор миссий с расширенными, но интуитивно понятными функциями. Для нормальной игры в одиночном режиме необходимы ИИ для схваток (или боты). Они берут на себя управление командой и, следовательно, могут рассматриваться как машинный эквивалент игрока, хотя и менее сообразительный. Движок поддерживает плагины Skirmish AI, написанные на различных языках программирования. В настоящее время это Lua, C, C++, Python и языки JVM, такие как Java и Groovy. Также возможно разрабатывать плагины для поддержки других языков. Функции рендеринга Spring включают деформируемый ландшафт, 3D-снаряды и несколько рендереров воды. Файлы юнитов Total Annihilation совместимы, что позволяет импортировать юниты, созданные сторонними разработчиками. Язык скриптов позволяет настраивать игровой процесс и модифицировать пользовательский интерфейс. Игроки в команде также могут рисовать и писать на игровой карте для координации тактических действий с другими игроками. ИИ сторонних разработчиков обеспечивает различную степень сложности. В качестве альтернативы, SpringRTS Lobby можно загрузить с зеркал.

Код источника

Исходный код Spring, распространяемый под лицензией GNU GPL 2.0 или более поздней версии, написан преимущественно на языке программирования C++, как и springlobby. Альтернативный клиент лобби, TASClient, написан на Delphi, а серверы лобби, используемые для организации многопользовательских игр, – на Java и Python. Структура кода на C++ реализована в объектно-ориентированном стиле и частично документирована с помощью Doxygen. Официальный пакет исходного кода содержит файлы проектов для различных интегрированных сред разработки (IDE) и инструментов сборки, включая CMake, KDevelop, Visual C++ 7.0/8.0 и Xcode.

Прием и усыновление

Различные игры, использующие движок Spring, варьируются от бесплатных игр с минимальными ограничениями на использование и распространение до игр с коммерчески лицензированными ресурсами, таких как P.U.R.E. Кроме того, контент Total Annihilation был адаптирован для работы в движке Spring, однако для игры в проекты, использующие этот контент, необходимо владеть оригинальной игрой Total Annihilation. В движке Spring находится множество игр на разных стадиях разработки. Некоторые из них основаны на оригинальной Total Annihilation и используют её ресурсы, включая игры: Balanced Annihilation, Tech Annihilation, NOTA и XTA. Однако существует множество игр, являющихся производными от других произведений, таких как игра по вселенной Gundam, игра по Warhammer 40,000 и игра по Star Wars, основанная на событиях Галактической гражданской войны. Также есть несколько полностью оригинальных игр, включая "Expand & Exterminate" – стратегическую игру, вдохновлённую Earth 2150, "The Cursed" – уникальное сочетание научной фантастики и фэнтези, и "Kernel Panic" – игра, напоминающая Darwinia и делающая акцент на простоте. На сайте также доступны инструменты и инструкции по созданию собственных игр.

Сбалансированное уничтожение

Как следует из названия, игровой мод перебалансировал мод Absolute Annihilation (который он заменил в конце 2006 года), являвшийся перебалансированной версией игры Total Annihilation Uberhack. Статистика юнитов была изменена по сравнению с базовыми значениями Uberhack, что делает его значительно отличающимся от Uberhack. В мод включены все юниты из розничной версии Total Annihilation, а также дополнительные юниты для каждой фракции. Баланс игры не соответствует оригинальному Total Annihilation, а представляет собой расширенную версию Total Annihilation.

Непостижимый разум

Beyond All Reason (также известный как BAR) — это ответвление от Balanced Annihilation, также использующее движок Spring. Это проект с открытым исходным кодом, который активно развивается. Несмотря на схожесть игрового процесса с Total Annihilation, проект не ставит перед собой цель быть простой копией оригинальной игры.

Нуль-К

Zero K (ранее известная как Complete Annihilation) возникла как ответвление от Balanced Annihilation, и поэтому её история восходит к оригинальной Total Annihilation. Однако весь оригинальный контент, созданный Cavedog, был заменен на оригинальный контент, предоставленный сообществом. Среди игр на движке Spring, Zero K выделяется широким использованием Lua-скриптов для улучшения интерфейса и геймплея, а также уникальными RTS-концепциями, такими как плоская технологическая иерархия. Zero K была выпущена на Steam как самостоятельная игра 27 апреля 2018 года.

Примечание

NOTA (Not Original Total Annihilation) – игра, разработанная для больших карт с юнитами, соответствующими масштабу, использованием топлива для самолетов и упором на стратегические решения. В ней уникальный флот, более широкий ассортимент типов юнитов и более медленное технологическое и экономическое развитие по сравнению с другими играми в стиле TA (BA, XTA). Партии в NOTA могут быть очень быстрыми, ограничиваясь юнитами первого уровня (T1), или очень продолжительными, завершающимися появлением невероятного супероружия.

Проклятые

Эта уникальная игра повествует о непогребённой демонической армии, разлагающей вселенную, которой противостоит человечество. Художественный стиль вдохновлён артом Doom I и II, Warcraft III и настольными играми Warhammer. Бесплатная игра выпущена.

П.У.Р.Е.

Действие P.U.R.E. разворачивается во времена войны людей против злого ИИ, известного как "Сверхразум". Игра разработана одним человеком, известным в сообществе Spring как Argh. В P.U.R.E. представлено до 57 уникальных юнитов, новый и улучшенный графический интерфейс, уникальная система ресурсов и две различные стороны, а также главное меню (хотя и не внутриигровое). P.U.R.E. представлен на ModDB и нескольких других сайтах с обзорами.

Весна 1944 года

Spring:1944 – одна из наиболее проработанных игр на движке Spring, и, как следует из названия, основана на последних годах Второй мировой войны. Она включает в себя почти 300 уникальных юнитов, представляющих четыре основные воюющие фракции (США, Великобритания, нацистская Германия и СССР), при этом весь контент создан несколькими основными разработчиками и рядом внештатных сотрудников, что делает её самым популярным независимым проектом на движке Spring. В отличие от большинства традиционных стратегий в реальном времени, посвященных Второй мировой войне, Spring: 1944 отличается масштабностью: игроки управляют сотнями юнитов, а в многопользовательских командных играх участвуют тысячи пехотинцев, транспортных средств, танков и самолетов.

Паника ядра

Kernel Panic – это игра, не имеющая никакого отношения к Total Annihilation. В этой игре представлены три расы: Система, Сеть и Хакер, каждая из которых обладает своими преимуществами и недостатками. Действие игры разворачивается внутри компьютера, что обеспечивает напряжённый и динамичный игровой процесс. В Kernel Panic отсутствуют ресурсы, поэтому игрок может строить юниты, пока вся карта не будет заполнена. Текстуры и звуки в игре выполнены в стиле старых игр, а карты напоминают компьютерные платы и микросхемы.

XTA

XTA, сокращение от eXtended Total Annihilation, была первой игрой, основанной на Total Annihilation, разработанной на движке Spring Project. Она включает в себя все юниты из розничной версии Total Annihilation, а также несколько дополнительных для каждой фракции. После распада оригинальной команды разработчиков над игрой работали разные команды, что могло повлиять на её текущие цели. Тем не менее, игра стремится сохранить дух оригинала, одновременно внедряя новые игровые возможности.

Эволюция RTS

Evolution RTS была первой игрой на движке Spring, выпущенной (как free-to-play) в Steam в апреле 2014 года. Она была удалена из Steam в апреле 2020 года.

Прием

Весна была рассмотрена во французском печатном компьютерном журнале Linux Pratique в феврале 2009 года.