TheXTech/ru

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

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


 * Первым делом, эта игра написана на 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, которые позволяют настроить совместимость игры для уровней и эпизодов, включая или выключая определённые исправления багов и фич игры.
 * Начиная с 1.3.5: Имеется возможность управлять сохранениями игры напрямую из меню игры.

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

Чит-коды
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 :

Данная инструкция поможет преобразовать упакованную игру в формат совместимый с TheXTech. В то время как TheXTech позволяет играть старые эпизоды как есть, без каких либо преобразований, упакованные игры требуют преобразовать полный комплект стантартной графики (всё, что находится в под-папке "graphics") в PNG. Также, значимые внедрённые графические ресурсы будут автоматически извлечены и преобразованы в совместимый формат.


 * 1) Загрузите архив с набором преобразования и смешайте его содержимое с корнем упакованной игры
 * 2) Убедитесь, что старый исполняемый файл игры назван "smbx.exe" (или "asmbxt.exe" / "a2mbxt.exe"), иначе вы не сможете преобразовать встроенные ресурсы в совместимый формат.
 * 3) В зависимости от операционной системы, запустите скрипт преобразования в терминале (или командной строке):
 * 4) На Windows нужно запустить скрипт gfx-convert-win.cmd.
 * 5) На Linux нужно выполнить команду bash gfx-convert-lin.sh.
 * 6) Скрипт спросит, удалять ли старые GIFы после преобразования, либо же сохранить их? Нажмите Y, чтобы удалить все старые GIFы по завершении преобразования. Как только преобразование завершится, будет отображено сообщение о завершении процесса.
 * 7) Найдите секцию "plain runtime" на странице загруки и загрузите совместимую с вашей платформой версию. Возьмите исполняемый файл (thextech в Linux-архивах или thextech.exe и все DLL-файлы в Windows-архивах), и положите их в папку с игрой.
 * 8) Попробуйте запустить приложение "thextech", игра должна заработать.
 * 9) Опционально, поправьте файл "gameinfo.ini" и поменяйти в нём название игры и имена игровых персонажей, если это нужно для игры.

Замечания

 * TheXTech, в отличии от оригинального SMBX, не содержит истинно встроенных графических ресурсов, все ранее встроенные ресурсы теперь располагаются в папке graphics/ui.

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

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

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

 * New Super Mario Bros. X

Ссылки

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