CRUSIS 9000

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: CRUSIS 9000

Сообщение vada » 29.06.2016 17:35:21

Прикольно. Пили! Нравица!!!!! :)
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: CRUSIS 9000

Сообщение Cheb » 01.07.2016 13:58:17

Скомпилировал под FPC 3.0

О, о, о страшно то как :shock: Какие ты страшные вещи делаешь!

Окей, мой мир разрушен.

Я ищо когда ковырял paszlib, делая поддерживающую потоки версию, обратил внимание как ураганно быстро она распаковывает.
Код: Выделить всё
(поток №1) got a task: TFileLoadTask
  actualizing #4/13, TTextureFromImage
    ..asset refused, rescheduling.
(поток №1)    TFileLoadTask.Perform (*M/env/mc-oa-dm02/mc-oa-dm02_ft.png)...
  actualizing #5/13, TTextureFromImage
(поток №1)     TZipFile.ReadFile(*M/env/mc-oa-dm02/mc-oa-dm02_ft.png)...
    ..asset refused, rescheduling.
TLogic.ActualizeAssets end.

[кадр №65, 12:51:44.786, Пт, 01.07.2016]
(поток №1)       ..unpacked 269114 bytes in 5330 μs
(поток №1)      TFileLoadTask.Perform end(269114 bytes from *M/env/mc-oa-dm02/mc-oa-dm02_ft.png)...
(поток №1)   completed TFileLoadTask


Но, как никто не использует сжатие NTFS,

Я использую! :D Потому что SSD на ноутбуке не резиновый.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: CRUSIS 9000

Сообщение runewalsh » 30.11.2016 05:12:46

Когда прочитал про ReadDirectoryChanges.
Изображение
Последний раз редактировалось runewalsh 01.04.2018 19:21:15, всего редактировалось 1 раз.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение runewalsh » 19.01.2017 01:38:04

https://github.com/runewalsh/rox-loh/re ... .0/rox.rar
Сделал двухминутное кинцо.

Изображение

В целом, конечно, зря потратил время, но, по крайней мере, понял, как НУЖНО БЫЛО работать с окном в основном движке. Когда я там писал работу с окном (основной цикл, официальный финт с двойным контекстом OGL, ввод, вот это всё), я считал, что кукарекнуть в лог, а дальше будь что будет — допустимая обработка ошибки, а здесь вроде по уму получилось. Попробую как-нибудь потом дописать всякие фуллскрины и перенести реализацию. Это позволит, например, выбросить часть самопального GUI в OpenGL-вьюпорте, отвечающую за самопальную же мышку, воспользовавшись тем, что система уже сообщает. Один из сопутствующих бонусов — синхронность мышки в системе и в «своём» UI.

Бонусом же всего подхода с нормальной обработкой оконных ошибок является то, что всю эту OpenGL-кухню становится возможным встроить в другое приложение (как просмотрщик и т. п.), а не только саму делать приложением, но до этого, боюсь, не дойдёт.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение скалогрыз » 19.01.2017 03:58:23

аааааа! как V-sync отключить или в полноэкранный режим войти?
(у мну железка/дровишки глючные, в оконном режиме с включённым V-sync, почему-то жуткие тормоза!)

Погуглил - проблема с Nvidia панелью управления. Просто отключил принудительный Vsync.

Добавлено спустя 20 минут 3 секунды:
окончание классное xD стильно чо!
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: CRUSIS 9000

Сообщение Cheb » 03.02.2017 18:02:48

Когда прочитал про ReadDirectoryChanges.

Круто! Надо себе такую фичу сделать. Изображение
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: CRUSIS 9000

Сообщение runewalsh » 23.04.2017 21:06:51

Попробовал переписать пространственные деревья: моя реализация от 2k11 слегка глючила и требовала вызывать перестроение явно, а теперь решил для каждого узла вести учёт ИСКАЖЕНИЙ (красные прогрессбары толщиной в пиксель), и по превышении порога искажённости перестраивать узел без участия пользователя. По части глюков получилось ещё хуже прежних, вплоть до неработоспособности. На гифке-то всё в порядке, но вот на реальной сцене... Нужно ковырять. Например, записать последовательности операций с деревом, приводящие к «невозможным» результатам, и плясать от них. Эх, вот я криворучка.

Изображение
Последний раз редактировалось runewalsh 01.04.2018 19:21:43, всего редактировалось 1 раз.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение Cheb » 26.04.2017 10:18:49

Уй ё, брутально то как :(
Но вот без такой "подводной части айсберга" как раз получаются говнодвижки, вроде TES где ИИ тупит как пробка пока не запустишь на супер-пупер мощном процессоре.

Спасибо за идею, увидев это у меня расклинило мыслительный затык. До меня дошло, что объекты совершенно не обязательно хранить в той же структуре, что и мини-октри блоков чанка (в терминах майнкрафта). Можно же что-то совершенно не зависящее, типа BVH на сферах.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: CRUSIS 9000

Сообщение runewalsh » 26.04.2017 21:32:51

В «говнодвижках» это реализовано.

Только между нами, но на разумных количествах объектов без дерева быстрее, а неразумным дерево не поможет.
Например, у меня строится граф из 10000 путевых точек (само по себе глупость, ну да ладно) группами по 100, и каждая группа, присоединяясь, ищет ближайшие к каждой из своих, чтобы ими «склеиться».
Получается 16 мс с новым деревом (ну это ладно, предположим, я слишком агрессивную логику автоперестроения задал), 9 мс со старым... и 3 мс простым перебором вообще всех.

Я уже сталкивался с этим, когда решил проверить, на сколько же A* «быстрее» поиска в ширину — получился тот же самый, обратный ожидаемому результат. Нет, возможно, возмооожно, на миллионах точек, построенных специальным образом, поиск в ширину будет работать две секунды, а а-стар — всего лишь полторы...
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение Cheb » 26.04.2017 22:58:00

Только между нами, но на разумных количествах объектов

Ёлки Изображение
Так ведь можно в преждевременную оптимизацию вляпаться. :x

Хмм... Прикинем: мир 80 мегабайт, память 8 Гб/с, за секунду можно перебаламутить 100 раз с полным загрязнением кеша, то есть модифицировать *все* объекты - и то всё упрётся в расчётные алгоритмы, которые по времени не уложатся.

Так, решено: *прежде* чем разводить супер-пупер менеджеры памяти - взять и померить. И на i5 с ddr3 и на ARM с DDR2.
И измерить, сколько будет это "разумное количество". Может, 50..100.

Во, ещё идея возникла: гибрид ужа и ежа, octree и bvh. У каждого листа центр фиксированный а ещё радиус в который полностью влезают все объекты. Радиус ствршего листа такой, что влезают все дочерние листы.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: CRUSIS 9000

Сообщение Mirage » 27.04.2017 00:34:55

Да обычный grid решает проблему, что вы мучаетесь. Деревья если и нужны, то в очень специфических случаях.
Mirage
энтузиаст
 
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia

Re: CRUSIS 9000

Сообщение zub » 27.04.2017 22:34:51

Стиль написания кода очень оригинальный)) использую для тестов fpc-passrc - на багтрекере матерятся, но правят))
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: CRUSIS 9000

Сообщение runewalsh » 21.04.2018 15:57:18

Оффтоп, т. к. в движок пока встраивать не буду, просто всегда хотел это проверить.
_resetstkoflw.png
TL;DR: можно попытаться восстановиться после переполнения стека, вызвав _resetstkoflw из Visual C++ Runtime.
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение runewalsh » 01.08.2020 09:44:54

Я не окончательно сдох, так вышло, всё будет, спокойно, ещё немного.
Сделал себе лог в несколько колонок для разных потоков. На такой лог удобно медитировать со стаканом чая, анализируя post mortem ход работы вашего многопоточного приложения. (⋈◍>◡<◍)。✧♡
HTML.png
Аватара пользователя
runewalsh
энтузиаст
 
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Re: CRUSIS 9000

Сообщение Alex2013 » 11.08.2020 14:43:12

Ух ты "а все таки она вертится !" :idea: Поддерживаю ! (А то живых проектов на форуме как-то маловато,что пытаются делать Cheb да Зуб... ну и я что-то пишу под девизом "попытка не пытка" ... :roll: :wink: )

Теперь по сути :
1 Что насчет "третьего измерения" или все "сугубо в 2д"?
2 Даже проект "2Д онли" можно успешно вытащить в ВиАр . (На Стиме полно визуальных навел под ВиАр )
Отсюда мысля ... А почему бы не сделать "ВиАр сцену" и в этом проекте ? :idea:
Alex2013
долгожитель
 
Сообщения: 3049
Зарегистрирован: 03.04.2013 11:59:44

Пред.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru