pseudo3DEngine
pseudo3DEngine copied to clipboard
Игра не отображается под Windows
Привет!
Прошу помощи в сборке и запуске данного проекта под Windows. Преодолев некоторые первичные трудности с подключением SFML и компиляцией проекта, игра компилируется, запускается, появляется меню. Но после нажатия на Play игра как будто бы работает (выросла нагрузка на проц, упал FPS, курсор всегда в центре окна), но в окне по-прежнему отображается всё то же меню.
Для решения проблемы с компиляцией пришлось добавить один инклуд в файлик Camera.h
:
#include <condition_variable>
Без этого компилятор ругался и предлагал это сделать:
In file included from C:\Users\Paul\CLionProjects\pseudo3DEngine\Menu.h:10,
from C:\Users\Paul\CLionProjects\pseudo3DEngine\Menu.cpp:5:
C:\Users\Paul\CLionProjects\pseudo3DEngine\Camera.h:119:10: error: 'condition_variable' in namespace 'std' does not name a type
std::condition_variable startCV;
^~~~~~~~~~~~~~~~~~
C:\Users\Paul\CLionProjects\pseudo3DEngine\Camera.h:119:5: note: 'std::condition_variable' is defined in header '<condition_variable>'; did you forget to '#include <condition_variable>'?
Параметры моей системы:
- Windows 10 Pro версия 2004
- IDE CLion 2020.2.4.
- MinGW-W64 версии
x86_64-8.1.0-posix-seh-rt_v6-rev0
(с другими 64-битными версиями не компилировалось; ещё компилировалось под 32 бита сi686-8.1.0-posix-dwarf-rt_v6-rev0
, но там всё то же самое) - Версия SFML:
GCC 7.3.0 MinGW (SEH) - 64-bit
Также я записал скринкаст видео, демонстрирующее проблему: https://youtu.be/n9fpNlZG0sY
MinGW используй тот же, что использовался для компиляции SFML. Ссылки есть на странице загрузки SFML, в красной рамке.
Версия MinGw тут ни при чем, игра видь запускаеться. Тут с кодом накосячили, и думаю я не один человек который пытаеться разобраться с етим (извините за мой Рукиий)
Та же проблема под Linux (
Сделал чек-аут на коммит 46c15371f93f598512f93aeedffab586cd7abb29, добавил condition_variable, thread в Camera.h и изменил CMakeLists.txt для сборки под Ubuntu линукс 20.04 - игра запустилась.
@AleksandrSae я тоже попробовал сделать и у меня тоже получилось. Огромное вам спасибо за помощь! Похоже, что мерж пулл-реквеста от Neirokan сломал игру.
@AleksandrSae я тоже попробовал сделать и у меня тоже получилось. Огромное вам спасибо за помощь! Похоже, что мерж пулл-реквеста от Neirokan сломал игру.
тоже так думаю
@AleksandrSae но здесь нет врагов
Для решения проблемы с компиляцией пришлось добавить один инклуд
Каюсь, я использовал VS2019, а там mutex включает в себя condition_variable, поэтому я не заметил отсутствие библиотеки.
Похоже, что мерж пулл-реквеста от Neirokan сломал игру.
Полегче. Я действильно забыл include и не завершил обновление отрисовки, но оно работает. Если ваш FPS упадёт достаточно низко, чтобы заметить проблему (пол/небо/здоровье врагов смещаются позже, чем стены/бонусы/враги) - закомментируйте #define BACKGROUND_THREADS
в Camera.h, но возможно это снизит ваш FPS.
Ваша же "поломка" решается проще. Автор добавил режим обучения, который отключает отрисовку ради скорости обучения нейросети. Просто измените в main.cpp значение флага learn
c true
на false
.
Два примечания, на случай если кто-то ещё решит поиграться с проектом:
-
learn = false;
не выключает само обучение, оно лишь включает отрисовку. Если вы хотите отключить обучение - отключите функцииgeneration.newGeneration
иgeneration.saveNetwork
. - Если кто-то решит доделать моё обновление, а не просто выключить его - добавьте в класс Camera информацию о повороте камеры и положении противников в предыдущем кадре, а также внесите изменения в саму отрисовку.
@OldiLo разумеется у вас нет врагов после отката на два обновления, потому что нейросети были добавлены только в последнем из них.
Логично, там даже небыло файлов enemy.cpp enemy.h
Для решения проблемы с компиляцией пришлось добавить один инклуд
Каюсь, я использовал VS2019, а там mutex включает в себя condition_variable, поэтому я не заметил отсутствие библиотеки.
Похоже, что мерж пулл-реквеста от Neirokan сломал игру.
Полегче. Я действильно забыл include и не завершил обновление отрисовки, но оно работает. Если ваш FPS упадёт достаточно низко, чтобы заметить проблему (пол/небо/здоровье врагов смещаются позже, чем стены/бонусы/враги) - закомментируйте
#define BACKGROUND_THREADS
в Camera.h, но возможно это снизит ваш FPS.Ваша же "поломка" решается проще. Автор добавил режим обучения, который отключает отрисовку ради скорости обучения нейросети. Просто измените в main.cpp значение флага
learn
ctrue
наfalse
.Два примечания, на случай если кто-то ещё решит поиграться с проектом:
learn = false;
не выключает само обучение, оно лишь включает отрисовку. Если вы хотите отключить обучение - отключите функцииgeneration.newGeneration
иgeneration.saveNetwork
.- Если кто-то решит доделать моё обновление, а не просто выключить его - добавьте в класс Camera информацию о повороте камеры и положении противников в предыдущем кадре, а также внесите изменения в саму отрисовку.
за ето спасибо