infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
|
|
1 | |
Игра Лабиринт 3D (вторая часть) – генерация уникального большого лабиринта (4 уровня сложности)17.05.2017, 08:07. Просмотров 1052. Ответов 17
Метки нет Все метки)
(
Игра Лабиринт 3D от первого лица с генерацией уникального лабиринта. Под ОС Windows
В первой части этой игры рассмотрели скорость рисования в OpenGL: Игра Лабиринт. 3D движок от первого лица (WinAPI C++ OpenGL) + исходник кода Во второй части добавлена генерация уникального лабиринта (4 уровня сложности). Что хотелось бы протестировать в этой игре: 1. Логику генерации лабиринта (использовано: srand(), Sleep() и rand()). Использование только rand() приводит к плохой генерации случайных чисел. srand() и Sleep() улучшают случайность внедрением в них определенных значений – это: Время мс. и любые значение цифр из логики генерации. 2. Рисование производится через такт: SetTimer(hWnd,1,10,NULL). И здесь хотелось бы протестировать на многих ли компьютерах оно будет работать так, как положено (Без сбоев по времени такта). 3. Применены рекурсивные функции для рисования. Рисование последовательного пути полигонов от нахождения камеры. Тут можно еще оптимизировать. Но я поленился это сделать. И это приводит к большому числу рисования полигонов 1000 шт., а с оптимизацией можно было достичь и 30-50 штук. Но на это уйдет непомерно много времени на разработку упрощение полигонов на большие куски(оно не стоит этих усилий)). Что хотелось бы получить от участников теста: 1. Fps (количество кадров в секунду) 2. Время на рисование сцены 3. Время загрузки лабиринта? Оно примерно должно быть от нескольких секунд до 1,5 минут (4 уровень). У кого больше или тормоза и зависания – сообщите. 4. Ваши системные требования компьютера (Частота процессора, модель видеокарты) 5. Любые ошибки в игре Есть одна проблема, которую я не решил. Пока не знаю как. Через 6 секунд Windows сигнализирует о том, что программа (не отвечает). Как можно убрать этот дефект и не пугать клиентов. Я понимаю, что в будущем нужно будет долгие циклы делить и выполнять порциями меньше одной секунды (100 мс), тогда этого зависания не будет. То есть 100 мс выполняем цикл и даем программе реагировать на действия окна. Сейчас один цикл генерации лабиринта может достигать по времени до 60 секунд. Поэтому не пугайтесь [зависания], через 1 минуту должно закончится.
0
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
17.05.2017, 08:07 |
Ответы с готовыми решениями:
17
Игра лабиринт. ИИ в лабиринте. Как задать лабиринт Генерация уникального ID компьютера Генерация уникального значения
|
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
|
|
17.05.2017, 08:09 [ТС] | 2 |
Срин игры
0
|
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
|
|
17.05.2017, 08:11 [ТС] | 3 |
Скрин2
0
|
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
|
|
17.05.2017, 08:23 [ТС] | 4 |
Пардон архив не записался!
Скачать!
0
|
Kill100
|
|
21.05.2017, 01:01 | 5 |
Система. win 10. CPU: intel i7-4700mq RAM: 16gb 1366x768
intel hd 4600 1. Fps: 64fps 2. 4 - 6ms 3. 1й ур ~4сек, 2й ~ 6сек, 3 ~ 14сек, 4 ~ 40сек nvidia 850m 1. Fps: 60fps (судя по gpu-z сработала вертикальная синхронизация, так как нагрузка ~2%, и частоты карта не увеличила) 2. 14-19ms 3. 1й ур ~4сек, 2й ~ 6сек, 3 ~ 14сек, 4 ~ 40сек Система. win 10. CPU: intel i7-3770к (4.5ghz) RAM: 16gb? 1920х1080 AMD RADEON HD7870 1. Fps: 64fps 2. 1ms 3. примерно так же
0
|
eXPonent
99 / 52 / 27
Регистрация: 21.05.2012
Сообщений: 1,170
|
|
30.05.2017, 01:55 | 7 |
О как интересно
![]() Советую почитать мой пост, может что интересное найдешь, улучшишь генерацию: Генератор псевдо-случайных чисел, как хэш-функция Добавлено через 5 минут это происходит в том случае если происходит одни и те же операции циклические (попробуй добавить запись в память, в какой-нить массив каждую 1/10 секунды) или ждать действия, нажатия клавиши
0
|
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
|
|
30.05.2017, 05:29 [ТС] | 8 |
Это проблема решается так: Альтернатива Application.ProcessMessages для WinAPI
Нужно окну дать реагировать. Кстати это на Windows 7 происходит. В Windows 8 и 10 программа не зависает. А по поводу массива, то это и так во время генерации массив заполняется данными.
0
|
_20_
12 / 11 / 4
Регистрация: 29.09.2011
Сообщений: 281
|
|
23.06.2017, 00:57 | 9 |
Первое впечатление - нужно мышку ускорить, слишком медленно.
60 fps, GeForce 970, win 7. Теперь нельзя выйти из лабиринта, хотя надпись о прохождении появляется. Добавлено через 15 секунд Первое впечатление - нужно мышку ускорить, слишком медленно. 60 fps, GeForce 970, win 7. Теперь нельзя выйти из лабиринта, хотя надпись о прохождении появляется.
1
|
KokosSPb
128 / 86 / 10
Регистрация: 03.02.2011
Сообщений: 477
|
|
06.07.2017, 21:43 | 11 |
Привет. Приношу извинения за такую задержку. На компе посмотрел мельком - всё гуд, FPS везде 60, сейчас добрался до ноутбука:
Сложность 1: 1) 63.9-64.5 FPS 2) 4-6 мс 3) 2 секунды Сложность 2: 1) 63.6-64.5 2) 4-6 мс 3) 3 секунды Сложность 3: 1) 63.7-64.5 FPS 2) 5-6 мс 3) 16 секунд Сложность 4: 1) 63.9-64.5 FPS 2) 5-7 мс 3) 42 секунды 4) Тестировалось на ноутбуке Samsung NP350E5C-S0ARU Core i7 3630QM DDR3 8Гб Видяхи 2, какая работала не знаю Radeon HD 7670M или Intel HD 4000 5) Иногда при повороте промелькивает черный фон, как будто "выход", а по факту там стены, это если коридор длинный впереди (на втором уровне было заметно не один раз, но только при одной из генераций, проверял несколько раз, но повторения не встретил 0_о и на четвёртом тоже всего не один раз, но только на одной из генераций, выходишь из-за угла и коридор в конце чёрный на какое-то мгновение, а потом всё норм)
0
|
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
|
|
07.07.2017, 05:22 [ТС] | 12 |
Я в курсе! Тут алгоритм так устроен. Я поленился сделать далекий расчет рисования стен. Там нужно было хорошо поработать над алгоритмом рисования стен. Следующую игру выпущу кубик рубик для Windows. Ее нет в свободном доступе для Windows. Я столкнулся с тяжелыми пространственными задачами. Алгоритм вращения кубика будет другим. Не как у тех игр, которые есть в планшетах на андроиде. Предполагается, лучшее решение вращения кубика.
1
|
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
|
|
09.07.2017, 08:03 [ТС] | 14 |
Это была провокация получить от меня ответ методом лжеподстановки? Я предприниматель и не целюсь стать послушным программистам для других предпринимателей. Я сам работаю на себя. И игра 3D стрелялка нисколько меня не интересует как предпринимателя заработать на этом деньги.
Я не ставил цель делать 3D стрелялку. Я ставил цель создать программное обеспечение по расчету инженерных коммуникаций. На пути возникла потребность получить опыт в трехмерной графики перед тем как строить каркас для будущей программы. Я поставил себе цель сделать игру Лабиринт и Кубик рубик. В игре лабиринт получил один опыт. В игре кубик рубик получил и получаю другой опыт с пространственными задачами. В кубике рубике возникли серьезные задачи, реализации которых нет в интернете и данный алгоритм вращения покрыт большой завесой таинст. Кватернион + приемы вращения кубика с запоминанием поворота и его накладываемой трансфармацией поворота. Это сродни задачам гения математики. Слава богу нашелся программист, который хоть что-то знает в этом. Частично коды получены, но есть еще почва проработать лучшее решение. Добавлено через 2 часа 31 минуту Если есть У Вас знакомые гении трехмерных задач - дайте контакты. Мне нужны готовые алгоритмы кватернионных вращений и тому подобное. Конечно я готов платить за хорошие алгоритмы в трехмерной графике. Нужны профессионалы. Фрилансеры здесь слабые водятся. Мне нужны гении математики в трехмерных задачах.
0
|
Evg
![]() ![]() |
|
09.07.2017, 14:49 | 15 |
Нет. Хотелось, чтобы ты поделился своим отрицательным (как мне показалось) опытом с другими. Отрицательный опыт зачастую намного более полезен, чем положительный
Значит я ошибся Коль скоро ты ставишь себе цель научиться, то очень рекомендую почитать матчасть: https://habrahabr.ru/post/248153/ Понимание того, как оно устроено под капотом, на мой взгляд, является намного более полезными знаниями, чем умение что-то написать при помощи готовой библиотеки. Да и позволит намного лучше понять работу с библиотекой Добавлено через 8 минут Если ты имеешь в виду матрицу поворота в однородных координатах, то наверное ты имел в виду вот это: http://sernam.ru/book_mm3d.php?id=60 В любом случае с такими вопросами тебе лучше в этот раздел: http://www.cyberforum.ru/graphics/
2
|
DenNik
Непрофессионал
2028 / 1552 / 308
Регистрация: 26.07.2011
Сообщений: 8,203
|
|
19.08.2017, 11:13 | 16 |
1. в игре ~ 64 +/- 1 FPS (в окне), 55-64 (в развернутом)
2. ~ 5-11 ms (в окне), 15-25 мс (в развернутом виде) 3. 4 уровень ~ 50-60 сек 4. 5. в полноэкранном режиме изредка не работает Esc; при генерации лабиринта мышь захвачена по-умолчанию - не удобно, дергается по центру окна; при генерации лабиринта в заголовке окна надпись ... (не отвечает); кнопка [1] назначена на два действия: "захват мыши" и "уменьшение скорости", т.о. я скорость увеличил, а уменьшить не смог; некорректно работает максимальная скорость (иногда при большой скорости вплотную к стене не может подойти) при загрузке игры ошибка, дальше работает:
1
|
DenNik
Непрофессионал
2028 / 1552 / 308
Регистрация: 26.07.2011
Сообщений: 8,203
|
|
19.08.2017, 11:13 | 17 |
дубль
1
|
infobos
Строитель
455 / 72 / 4
Регистрация: 18.06.2010
Сообщений: 499
|
|
19.08.2017, 17:33 [ТС] | 18 |
По поводу дерганья экрана, это скорее всего из-за долгого рисования кадра. Тут надо просто код монетизировать ускорять обработку рисования.
Надпись не отвечает, тоже разобрался из-за чего. Из-за долгого цикла во время генерации. Во время генерации нужно давать окну обработку сообщений от виндовс: Альтернатива Application.ProcessMessages для WinAPI Кнопка ESC у меня тоже на старом ПК не работает. Вроде понятно из-за чего разберусь позже. Проблема в коде. Выбирается код клавиши не верный. Берется видимо из библиотеки. Нужно будет принудительно задать код клавиши. По поводу клавиши управления перепутал: Управляются клавишей 2,3. По поводу окна ошибки, не хватает функции у видеокарты. Это сглаживание растровых изображений, чтобы не было ряби.
0
|
19.08.2017, 17:33 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
19.08.2017, 17:33 |
PL\SQL генерация уникального id Генерация уникального кода договора
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |