Russian thread

Аналогичная проблема: libVCAI.so: undefined symbol: _ZN2fl13InputVariableC1ERKSsdd

ОС Gentoo (ядро x86 с включеным PAE), пробовал собирать из портежа (есть ебилд к одной из старых редакций 0.98), после попробовал ручную сборку согласно инструкции на Wiki. Опции cmake: -DCMAKE_INSTALL_PREFIX=/home/kacnep/vcmi/trunk/install -DENABLE_LAUNCHER=OFF

Проблема абсолютно аналогична и идентична. Подозреваю, какая то из библиотек-зависимостей имеет проблему (например, необходима пересборка и перелинковка после обновления ядра), либо в коде игры закопан баг, например, где то пробрались зависимости от Ot5 за пределы кода лаунчера (а лаунчер отключен именно по причине жёстких зависимостей от Qt5).

Буду рад любой помощи. Написать в английскую ветку могу только при помощи переводчика, т.к. языком не владею, поэтому сначала пишу сюда.

edt: из логов, которые сохраняет игра в ~/.cache/vcmi/ информативным оказался только VCMI_Client.log. Вот последние записи перед крешем:

2015-Nov-19 11:52:25.478525 TRACE global [afb25b40] - 	Human player interface for player 0 being constructed
2015-Nov-19 11:52:25.478593 TRACE global [afb25b40] - 	Initializing the interface for player 0
2015-Nov-19 11:52:25.539607 TRACE network [afb25b40] - Preparing interface for player 1
2015-Nov-19 11:52:25.539717 INFO network [afb25b40] - Player 1 will be lead by VCAI
2015-Nov-19 11:52:25.539808 INFO global [afb25b40] - Opening VCAI
2015-Nov-19 11:52:25.582016 INFO global [afb25b40] - Loaded VCAI
2015-Nov-19 11:52:25.582284 TRACE ai [afb25b40] - Entering VCAI::VCAI().
2015-Nov-19 11:52:25.582322 TRACE ai [afb25b40] - Leaving VCAI::VCAI().
2015-Nov-19 11:52:25.582374 TRACE global [afb25b40] - 	Initializing the interface for player 1
2015-Nov-19 11:52:25.582418 TRACE ai [afb25b40] - Entering virtual void VCAI::init(std::shared_ptr<CCallback>).

Итак, в продолжение написанного. Долгие копания во всех направлениях привели к следующему. Игра успешно собирается во всех случаях, но

  • если fuzzylite установлен в системе (пробовались версии 5.0 и 5.1 с гитхаба) - то вылетает эта вот ошибка, которая описана в предыдущих постах мной и RoM4iK;
  • если fuzzylite из системы удалить - то игра соберёт собственный (!) fuzzylite, который приложен вместе с ней в исходниках. И уже вместе с ним будет замечательно запускаться

В исходниках игры приложен fuzzylite версии 5.0 (согласно ChangeLog`у), и он собирается в статик-либу. Всё это жутко странно, сравнивать диффом исходники я не стал.

Таким образом, решение вопроса найдено. Для гентушников я подготовил ебилд (в личку или в почту).

И теперь возник СЛЕДУЮЩИЙ ВОПРОС: в процессе ковырятельств со сборкой, я всётаки установил launcher и появилась возможность менять настройки. Первым же делом я попробовал сменить разрешение, но получил в VCMI_Client_log.txt вот такое содержание:

2015-Nov-21 03:03:46.274859 INFO global [b4541a40] - Loading settings: 207
2015-Nov-21 03:03:46.274917 INFO global [b4541a40] - VCMI 0.98f (client)
2015-Nov-21 03:03:46.568485 INFO global [b4541a40] - Found 2 render drivers
2015-Nov-21 03:03:46.568598 INFO global [b4541a40] -    opengl (active)
2015-Nov-21 03:03:46.568660 INFO global [b4541a40] -    software
2015-Nov-21 03:03:46.568724 ERROR global [b4541a40] - Selected resolution 1440x900 was not found!
2015-Nov-21 03:03:46.568974 ERROR global [b4541a40] - Falling back to 800x600
2015-Nov-21 03:03:46.715615 INFO global [b4541a40] - Created renderer opengl
2015-Nov-21 03:03:46.719877 INFO global [b4541a40] -    Initializing screen: 99
2015-Nov-21 03:03:46.720201 INFO global [b4541a40] -    Initializing video: 0
2015-Nov-21 03:03:46.729792 INFO global [b4541a40] - Initializing screen and sound handling: 1

Not implemented feature? :slight_smile:

Для поддежржки других разрешений надо ставить отдельный мод через лаунчер vcmi/extraResolutions.

На счет фузилайта “наша” версия изменений не содержит (но может наверное отличаться от какого-то конкретного оф. релиза), а так да 5.0. В дебиане fuzzylite отдельный пакет и все типа нормально работает.

Выкладывай сразу на github/gist. Кому надо найдет.

Там с этим модом только все очень хитро на линуксе потому как он является субмодом VCMI который при этом не лежит в гите даже. Лаунчер после обновления репозиториев по-идее должен предлагать обновить его, но вот если этот мод у тебя уже где-то в /usr/share/vcmi/Mods лежит то будет фейл.

Короче надо разбираться:
bugs.vcmi.eu/view.php?id=2260

PS: И да, самый простой способ проблему решить это ручками его скачать, распаковать и положить в ~/.local/share/vcmi/Mods/
download.vcmi.eu/mods/repository/vcmi.zip

Там не всё так чисто с этим ебилдом :slight_smile: надо приписать к нему awk который будет выпиливать из мейкфайла проверку на наличие в системе fuzzylite и найти способ заставить линкер вязать не на системную либу, а на ту, которая идёт с кодом. А пока там просто костыль в виде проверки на наличие в системе fuzzylite и выхода с ошибкой если он есть.

А вот за это огромное спасибо, теперь можно начать играть :slight_smile:

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

Ну мы и есть разработчики.

Насколько я понимаю проблема прежде всего в том, что fuzzylite это не libstdc++ или SDL2 со стабильным ABI и кодом, а потому если VCMI не будеть юзать свою версию, то есть вероятность что что-то сломается. При этом из-за того за что собственно отвечает либа (нечеткая логика, решения ИИ) понять что оно сломалось не так просто. Более того оно ранее при обновлении на новую версию либы именно так и ломалось, к частью сам автор fuzzylite помог пофиксить.

Тратить время на отслеживание изменений в fuzzylite тут никто особо желанием не горит, тем более что часть разработчиков сидит на винде, а я на Ubuntu 14.04 где fuzzylite вообще нет в репозиториях.

SXX, может тогда имеет смысл в мейкфайле сделать отвязку от системного fuzzylite и собирать/линковать во всех случаях собственную?

Конечно имеет, но для этого мне придется нормально разобраться с CMake. Если пришлешь патчик с радостью его потестирую на убунте, проверю чтобы ничего не ломал и замержу.

А так конечно запишу себе в список задач по cmake на будущее, т.к у меня давно есть желание переделать там несколько мест дабы можно было депы при сборке для винды из под линукса линковать статически (но не все).

PS: В Cmake такую штуку конечно надо пилить опцией, т.к для реп того же дебиана надо системные библиотеки использовать. Но гемор по сборке и совместимости там лежит на майтейнере, а не на нас.

Боюсь, мои познания в cmake бедны до безобразия. Я обошёлся простым костылём:

trunk\vcmi\AI\CMakeLists.txt:

-find_package(Fuzzylite)
+#find_package(Fuzzylite)

Игра собралась и запустилась при любых условиях - как при наличии FL в системе, так и при её отсутствии. Просто воткнул эту радость в ебилд и пойду выложу в оверлей.

Эта идея для будущего на годы вперед (возможно уже и озвученная). Пока говорить об этом оооооочень рано, но все же было бы очень круто если б была возможность

искать игроков и коннектится прямо в игре!!

Интересно насколько сложно это реализуемо…

С этого места попродробнее:) Ничо не поянял.

я сейчас без компа, скрин вставить поэтому не могу. Имел ввиду : новая игра - многопользовательская - и там где менюшка хотсит, тср ip итд кажется вторая кнопка снизу “игра по интернету” . так вот, в идеале сделать эту кнопку активной, чтобы ее нажать и увидеть список комнат открытых игр. Играть с людьми через саму игру это круто. Без всяких хамач, геймрейнджеров итд. В идеале, если будет исключена возможность читерства еще и сделать рейтинг. Ну это конечно вообще на грани фантастики)))
т.к будут ли люди массово для игры и будет ли сама игра в играбельном состоянии.

Пока даже в планах нет. Об этом можно будет думать когда обчный мультиплеер будет стабилен.

Ну, собственно, это и была идея на будущее)

Это все не настолько сложно реализовать когда будет играбельно. :wink:

Народ, а имеется ли русская версия хоты для VCMI?

Нет.

Хайль!
Мне кажется, раз уж ХотА включена в качестве полу-официального мода, - стоит разделить и заново совместить моды.
Поясняю. Сейчас под ХотА понимается собственно город Причал. Но при этом есть и некоторые другие реализованные в виде модов хотовские нововведения - например - отрицательная удача.

Кажется, оптимальным было бы решение - переименовать мод ХотА в мод “город Причал”. Создать мод ХотА, требующий мод на город Причал, мод на отрицательную удачу, и на все дальнейшие в будущем реализованные под ВЦМИ нововведения ХотЫ.

Это было сделано с самого начала :slight_smile: хота - это 6 модов и причал один из них, просто организовано по-нашему - через субмоды, а не отдельно.

Да? Ну тогда хорошо. Просто в вашей вики, получается, некоторые субмоды присутствуют и как отдельные моды? (на отрицательную удачу, например). Или они чем-то отличаются?