Вышла новая версия игры Supertux

Опять нет повода не собрать порт.

Опубликовано: 2026-03-17

Категория: OpenBSD

Теги: хауту openbsd supertux games port

Так вышло, что я не играю в видеоигры. И не интересуюсь ими вообще. Ну вот в детстве играл в приставку, в юности на компьютере тоже играл - а потом стало скучно, перерос. У меня на нотубуках уже не одно десятилетие из игр - пасьянсы и маджонг, да и те я запускаю достаточно редко.

И тем не менее, есть одна игра, которую я неизменно устанавливаю, но не для себя, а для сына. Это SuperTux¹ - первая его компьютерная игра, которую он полюбил до невозможности. У нас даже свой специальный сленг появился: "ту́ксить", например, означает играть в SuperTux на компьютере. "Пап, я уроки сделал, можно потуксить?". Или вот: персонаж в виде падающего сверху блока у нас почему-то принято называть "хмырь". А еще популярна фраза: "Ненавижу попрыгу́ровни!!!" - уровни в игре, где нужно много прыгать и есть риск сорваться.

¹ https://www.supertux.org/

Поэтому мимо моего внимания ну вот никак не могла пройти новость о выходе после четырёх лет разработки новой версии игры SuperTux 0.7.0 - новыми плюшками и улучшениями:

OpenNET: Выпуск свободной игры SuperTux 0.7.0

И я немедленно загорелся идеей собрать эту обновлённую версию, дабы осчастливить сынищу. Собрал! Вот рецепт, спешите распаковать в /usr/ports/mystuff и топчите make install:

supertux-0.7.0.tar.gz

Пришлось, правда, несколько покорячиться, сочиняя патчи своими кривыми гуманитарными лапками: что-то я запатчил грубо и убого, а больше всего проковырялся с поиском причины, почему после прохождения make port-lib-depends-check и /usr/ports/infrastructure/bin/portcheck пакет успешно собирается и ставится, но при запуске выдаёт загадочную ошибку "Unexpected exception: Couldn't initialize physfs: no error".

Разгадка нашлась² на второй час гугления: при инициализации PhysicsFS в конструкторе нужно было учесть вот что: "Unix-like systems such as Linux _need_ to pass argv[0] from main() in here", в то время как авторы SuperTux в main.cpp передавали при инициализации nullptr вместо argv[0]:

² PhysicsFS Tutorial

В итоге У Меня Всё Работает. Прошел даже пару уровней, скачал дополнительные уровни, русский пакет локализации, поигрался с настройками, запускал даже редактор уровней - вроде всё как надо.

У сынищи сегодня будет праздник!

---

© @Muu 2023-2026 - Licensed under CC BY-SA 4.0

mailto:muu_online@inbox.ru