TheXTech/ru

TheXTech - Это движок игр-платформеров, написанный на C++. Является полным портом исходного кода SMBX 1.3, который был написан на Visual Basic 6. Создан российским разработчиком Wohlstand за один месяц после того, как были открыты исходники SMBX. У проекта есть две цели: предоставить свободную с открытым кодом, кросс-платформенную и максимально точную реализацию движка SMBX, которая позволит играть в старые уровни и эпизоды, созданные для оригинальной игры, реализуя поведение идентичное оригинальной игре; получение более удобной исследовательской модели для разработки PGE-движка.

История версий
Разработка TheXTech началась через неделю после публикации исходных кодов SMBX. Версионирование начинается с 1.3, тем самым продолжая историю оригинального SMBX в новом виде.

1.3
Первая работоспособная версия, созданная за две недели после того, как были выпущенны и изучены оригинальные исходники игры. Игра работала, но с кучей ошибок. Позже, игра была доработана и улучшена в подготовке к выпуску 1.3.1. Движок разрабатывался тайно, чтобы представить сообществу неожиданный сюрприз.

1.3.1
Первая публичная версия, вышедшая 14 марта 2020го года.

1.3.2
Обновление, вышедшее 26 апреля 2020го года. В этой версии исправлены некоторые баги и представлены незначительные улучшения. Начиная с этой версии, поддерживается полная интеграция с PGE-Редактором, которая позволяет запускать из редактора тест уровней с помощью TheXTech напрямую.

1.3.2.1
Обновление, выпущенное 12 июля 2020го года. В этой версии исправлены баки, касаемые программной отрисовки, расширена поддержка джойстиков, а также добавлен костыль для регистро-зависимых файловых систем, чтобы устранить глюки из-за незагруженной графики в некоторых эпизодах.

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

1.3.2.3
Обновление, выпущенное 30 июля 2020го года. Это обновление исправляет падение, вызванное некоторыми модифицированными эффектами, а также устраняет невозможность адекватно ловить овощи на лету.

1.3.2.4
Обновление, выпущенное 30 ноября 2020го года. Добаляет возможность устанавливать свою музыку на финальной завставке (уровень "outro") (Если музыка не назначена, будет использована системная мелодия по умолчанию). Это обновление также устраняет невозможность иметь больше 100 эпизодов и уровней битвы в общей игре. Также, исправлены незначительные глюки обработки графики.

1.3.3
Обновление, выпущенное 19 декабря 2020го года. В этом обновлении добавлены некоторые новые фичи, например, "gameinfo.ini", чтобы частично изменить некоторые встроенные надписи, а также добавить свой блок титров; встроенная поддержка калибровочных файлов игровых персонажей; добавлена возможность модифицировать NPC, поместив npc-*.txt прямо в папку graphics/npc, или же калибровку игрового персонажа, поместив соответствующий ini-файл в папку graphics/mario,luigi,peach,toad,link; а также ещё некоторые вещи.

1.3.3.1
Обновление, выпущенное 2 января 2021го года. В этом обновлении исправлено два бага и добавлена экспериментальная поддержка Windows ARM64 и macOS на процессоре Apple Silicon.

1.3.4
Обновление, выпущенное 12 января 2021го года. В этом обновлении исправлено несколько "ванильных" багов старой игры, а также добавлена поддержка файла "compat.ini", который позволяет включить определённые баги обратно, если они необходимы для прохождения некоторых уровней или эпизодов. В этой версии также исправлена надоедливая проблема пропуска кадров, а также дизориентирующая игроков проблема быстрой перемоки, возникающей из-за тормозов компьютера. Добавлена система для любителей скоростных прохождений, которая позволит отобразить секундомер, а также откалибровать совместимость, необходимую для честного скоростного прохождения эпизодов SMBX. Данная версия является минимальной разрешённой для скоростных прохождений SMBX-эпиходов.

Различия между оригинальной игрой
В то время, как игра является точным портом оригинальной игры, у неё имеются отличия и расширения:


 * Первым делом, эта игра написана на C++, пока оригинальная игра (как мы уже знаем), написана на VB6.
 * Не имеет редактора. Вместо этого, начиная с версии 1.3.2, имеет тесную интеграцию с PGE-Редактором, что позволяет использовать его с теми же возможностями, что и оригинальный редактор (сохранена функциональность "волшебной руки", чтобы сохранить возможность редактирования в реальном времени, во время тестирования уровня. Для этого необходима поддержка межпроцессорного взаимодействия с PGE-редактором).
 * Полная поддержка UTF-8 в именах файлов и во внутренних текстовых данных (оригинальная игра поддерживала лишь 8-битные ANSI-кодировки).
 * Игра использует библиотеку SDL2 для отрисовки и управлени, в то время как оригинальная игра использует WinAPI и GDI.
 * В этой игре используется библиотека PGE-FL с улучшенной поддержкой форматов файлов (уровни, карты мира, сохранения).
 * Поддержка карт мира WLDX, которые поддерживают неограниченное число строк титров, а также собственная музыка без необходимости использовать файл music.ini.
 * Работают некоторые эксклюзивные возможности LVLX: вертикальный перенос в секциях, двунаправленные проходы, можно заменить сообщение "нужны звёзды" на что-то своё, событие на вход в проход, возможность отключить отображение числа звёзд на определённых дверях, возможность отключить промежуточный экран при проходе на другой уровень через проход.
 * Встроенная поддержка music.ini и sounds.ini для эпизодов и уровней, чтобы можно было подменять встроенную музыку и звуковые эффекты.
 * Карты мира теперь поддерживат собственную папку, чтобы можно было складывать любые специфичные ресурсы (например, ландшафт, декорации, пути, тчки уровней), и больше не засорять корень эпизода ресурсами самой карты мира.
 * Файл настроек игры теперь в формате INI. Старый конфиг config.dat больше не поддерживается, первым делом из-за несовместимости кодов клавиш (SDL_Scancode против VirtualKeys в WinAPI).
 * Сохранения игры отныне используют формат SAVX вместо классического SAV. Однако, сохранена возможность возобновить игру в эпизод, начатую на старом движке, сразу на новом движке (дальнейшая попытка сохранить игру создаст новый SAVX-файл, старый SAV-файл останется нетронутым).
 * Встроенная поддерка PNG для пользовательской и стандартной графики. Масочные GIFы всё ещё поддерживаются для обратной совместимости, однако, без попыток автоматические преобразовать все файлы, как это обычно делает SMBX-38A.
 * Контрольные точки теперь можно ставить по несколько раз на одном уровне, без ограничений! (в старой игре можно было поставить только одну)
 * Чтобы ускорить загрузку игры и уменьшить пртребление памяти, игра использует алгоритм ленивой распаковки.
 * Игра использует библиотеку MixerX для музыки и звуковых эффектов, которая предоставляет большой спектр поддерживаемых форматов файлов.
 * Игра не никакой встроенной графики: здесь больше нет истинно встроенной графики, отныне теперь всё представлено в виде внешних файлов ресурсов!
 * Были увеличены некоторые встроенные лимиты.
 * Встроенный GIF-рекордер, который можно активировать и остановить по клавише F11 (на macOS это F10, потому что клавиша F11 зарезервирована системой, и используется для фичи "показать рабочий стол").
 * Начиная с 1.3.2: Поддерживает больше 21 секций (максимум 201).
 * Начиная с 1.3.2: Было убрано ограничение на 20 слоёв в полях "показать/скрыть/переключить" в событиях.
 * Начиная с 1.3.2.3: Можно заменить музыку во время титров.
 * Начиная с 1.3.3: Удар об землю Пурпурного Йоши можно пересадить с клавиши Вниз на клавишу Альт-Бег, добавив строчку  в файл settings/thextech.ini, чтобы исключить случайные "смерти" из-за попытки пригнуться во время прыжка.
 * Начиная с 1.3.3: Поддерживаются калибролвки игровых персонажей, чтобы можно было модифицировать смещения хитбоксов и метрику игровыъ персонажей.
 * Начиная с 1.3.4: Поддерживаются файлы compat.ini, которые позволяют настроить совместимость игры для уровней и эпизодов, включая или выключая определённые исправления багов и фич игры.

Чит-коды
TheXTech поддерживает все читы что и SMBX 1.3, с небольшим добавление альтернативных кодов. Все коды с "y" (например, "moneytree") будет иметь альтернативу, где все 'y' заменены на 'z' (например, "moneztree"), что обеспечивает совместимость с немецкими клавиатурами QWERTZ.

Сборка игры
Чтобы собрать игру, нужно следовать указанным инструкциям на GitHub-страницах:


 * Сборка на Windows
 * Сборка на Linux и xBSD
 * Сборка на macOS
 * Сборка на Haiku
 * Сборка под Emscripten

For a build intended to be shared, install the ninja-build dependency, and replace the following line:

cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug ..

With:

cmake -G Ninja -DCMAKE_BUILD_TYPE=MinSizeRel -DUSE_SYSTEM_SDL2=OFF -DUSE_SYSTEM_LIBS=OFF -DUSE_STATIC_LIBC=ON -DPGE_SHARED_SDLMIXER=OFF ..

After following the final steps of the guide, create a  with the following content:

[Main] force-portable = true

And place it along with the executable in the same folder as the assets.

Подмена стандартных ресурсов
Пока что, TheXTech не поддерживает индивидуальные под-папки "graphics" в каждом эпизоде по аналогии с SMBX2. Существуют эпизоды с собственным набором ресурсов, полностью или частично подменяющих стандартные (например, "Yoshi's Archipelago" или "Super Talking Time Bros."). Чтобы они заработали, необходимо адаптировать их для игры на TheXTech :


 * Скопировать папку  из набоа ресурсов SMBX 1.3 (или из [https://wohlsoft.ru/TheXTech/_downloads/thextech-adventure-of-demo-assets-full.7z Adventures of Demo).
 * Загрузить файлы sounds.ini и music.ini и разместить их в корне папки с игрой.
 * Скопируйте исполняемый файл TheXTech (и все прилагаемые .dll, если они есть), а также thextech.ini прямо в корень папки с игрой.
 * Используйте PGE Maintainer из свешайшего набора, собранного в PGE-лаборатории, чтобы сконвертировать всю графику в папке "graphics" из GIF-ов в PNG (содержимое эпизодов преобразовывать не нужно).

Также, можно всё сожержимое папки "graphics" разместить прямо в папке эпизода. Однако, возможно увеличение времени загрузки (поэтому, данный способ рекомендуется делать на мощных компьютерах с SSD). Выбрав данный метод, музыку и звуки (включая music.ini и sounds.ini) надо будет также разместить в папке с эпизодом.

Запланированные возможности

 * Улучшение поддержки контроллеров. Иначе пока что, в качестве костыля, нужно использовать antimicro или xboxdrv.
 * Сделать возможным использование удара об землю Пурпурого Йоши остальными Йоши, взявшими в рот жёлтый панцирь.
 * Копирование и удаление сохранений игр с начального экрана.

Смотрите также

 * New Super Mario Bros. X

Ссылки

 * Официальное обсуждение на форуме
 * Первый анонс
 * Видеодемонстрация