pseudo3DEngine icon indicating copy to clipboard operation
pseudo3DEngine copied to clipboard

Игра не отображается под Windows

Open gugglegum opened this issue 4 years ago • 11 comments

Привет!

Прошу помощи в сборке и запуске данного проекта под 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

gugglegum avatar Oct 13 '20 22:10 gugglegum

MinGW используй тот же, что использовался для компиляции SFML. Ссылки есть на странице загрузки SFML, в красной рамке.

NexSqaud avatar Oct 25 '20 09:10 NexSqaud

Версия MinGw тут ни при чем, игра видь запускаеться. Тут с кодом накосячили, и думаю я не один человек который пытаеться разобраться с етим (извините за мой Рукиий)

OldiLo avatar Oct 28 '20 18:10 OldiLo

Та же проблема под Linux (

AleksandrSae avatar Oct 29 '20 15:10 AleksandrSae

Сделал чек-аут на коммит 46c15371f93f598512f93aeedffab586cd7abb29, добавил condition_variable, thread в Camera.h и изменил CMakeLists.txt для сборки под Ubuntu линукс 20.04 - игра запустилась.

AleksandrSae avatar Oct 29 '20 16:10 AleksandrSae

@AleksandrSae я тоже попробовал сделать и у меня тоже получилось. Огромное вам спасибо за помощь! Похоже, что мерж пулл-реквеста от Neirokan сломал игру.

gugglegum avatar Oct 29 '20 16:10 gugglegum

@AleksandrSae я тоже попробовал сделать и у меня тоже получилось. Огромное вам спасибо за помощь! Похоже, что мерж пулл-реквеста от Neirokan сломал игру.

тоже так думаю

OldiLo avatar Oct 30 '20 21:10 OldiLo

@AleksandrSae но здесь нет врагов

OldiLo avatar Oct 30 '20 21:10 OldiLo

Для решения проблемы с компиляцией пришлось добавить один инклуд

Каюсь, я использовал VS2019, а там mutex включает в себя condition_variable, поэтому я не заметил отсутствие библиотеки.

Похоже, что мерж пулл-реквеста от Neirokan сломал игру.

Полегче. Я действильно забыл include и не завершил обновление отрисовки, но оно работает. Если ваш FPS упадёт достаточно низко, чтобы заметить проблему (пол/небо/здоровье врагов смещаются позже, чем стены/бонусы/враги) - закомментируйте #define BACKGROUND_THREADS в Camera.h, но возможно это снизит ваш FPS.

Ваша же "поломка" решается проще. Автор добавил режим обучения, который отключает отрисовку ради скорости обучения нейросети. Просто измените в main.cpp значение флага learn c true на false.

Два примечания, на случай если кто-то ещё решит поиграться с проектом:

  1. learn = false; не выключает само обучение, оно лишь включает отрисовку. Если вы хотите отключить обучение - отключите функции generation.newGeneration и generation.saveNetwork.
  2. Если кто-то решит доделать моё обновление, а не просто выключить его - добавьте в класс Camera информацию о повороте камеры и положении противников в предыдущем кадре, а также внесите изменения в саму отрисовку.

Neirokan avatar Nov 14 '20 23:11 Neirokan

@OldiLo разумеется у вас нет врагов после отката на два обновления, потому что нейросети были добавлены только в последнем из них.

Neirokan avatar Nov 14 '20 23:11 Neirokan

Логично, там даже небыло файлов enemy.cpp enemy.h

OldiLo avatar Nov 15 '20 00:11 OldiLo

Для решения проблемы с компиляцией пришлось добавить один инклуд

Каюсь, я использовал VS2019, а там mutex включает в себя condition_variable, поэтому я не заметил отсутствие библиотеки.

Похоже, что мерж пулл-реквеста от Neirokan сломал игру.

Полегче. Я действильно забыл include и не завершил обновление отрисовки, но оно работает. Если ваш FPS упадёт достаточно низко, чтобы заметить проблему (пол/небо/здоровье врагов смещаются позже, чем стены/бонусы/враги) - закомментируйте #define BACKGROUND_THREADS в Camera.h, но возможно это снизит ваш FPS.

Ваша же "поломка" решается проще. Автор добавил режим обучения, который отключает отрисовку ради скорости обучения нейросети. Просто измените в main.cpp значение флага learn c true на false.

Два примечания, на случай если кто-то ещё решит поиграться с проектом:

  1. learn = false; не выключает само обучение, оно лишь включает отрисовку. Если вы хотите отключить обучение - отключите функции generation.newGeneration и generation.saveNetwork.
  2. Если кто-то решит доделать моё обновление, а не просто выключить его - добавьте в класс Camera информацию о повороте камеры и положении противников в предыдущем кадре, а также внесите изменения в саму отрисовку.

за ето спасибо

OldiLo avatar Nov 15 '20 00:11 OldiLo