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 :


 * Скопировать папку  из набоа ресурсов 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

Ссылки

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