Выложил апдейт демо-версии.
У кого есть время и желание - потестите, пожалуйста.
Изменения следующие:
1) Немного вправил мозги монстрам: они теперь охотнее преследуют игрока, а также получили фичу firing persistance - т.е. стреляют некоторое время туда, где видели игрока, прежде чем бежать за ним. Это для борьбы с тактикой "выскочил - выстрелил - спрятался". Также поправлена пара мелких багов в коде ИИ, и чуть увеличена скорость бега и поворота варриоров ("лазерщиков").
2) Добавлен пункт "Разрешить автосохранения" в меню "Игра". По умолчанию автосейвы по триггеру включены, но если хочется ещё больше треша и хардкора - можно выключить в меню.
__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!
У Ion Fury, когда она была в early access (и там по сути была не игра, а демо), тоже при апдейтах ломались сейвы.
__________________
Dr. Bowman: "So what was it?"
Sly: "Anachronox! Man, you guys are dumb."
Dr. Bowman: "But... You said it started with a 'U'."
Sly: "Yeah I know."
А планируется, кстати, размещение где-нибудь кроме стима? Ну там GOG, какой-нибудь, Epic Store и прочее? Я то всеми этими магазинами не пользуюсь, но охват аудитории явно должно увеличить
Да, теперь стычки с лазерщиками кажутся более органичными, наверное. С этой "стрельбой вдогонку", и вроде бы как больше странные маневры не совершают. А есть рандомизация в этом их поведении? Чтобы все же не было "заучил повадки, и все".
Сложность на "харде" нравится - в том плане, что напряженно достаточно, и при этом важно знание ресурсов на карте (в т.ч. секретов). Что хорошо, если у игрока подход "сначала проходишь на изи или медиум, а потом если хочется, на более тяжелом, когда уже игру знаешь".
__________________
Dr. Bowman: "So what was it?"
Sly: "Anachronox! Man, you guys are dumb."
Dr. Bowman: "But... You said it started with a 'U'."
Sly: "Yeah I know."
К стати, пока не забыл. Я тут перечитывал обзор Фабиена на D3 и в частности он там ссылается на интервью с Кармаком. Освежил его в памяти и вот что он там сказал. D3 стал мультипоточным, но smp они выбросили нахрен. Потому что, как выяснилось GL может адекватно ренедить только в том потоке, в котором было создано окно. Но весь цымес заключается в том, что при попытках это ускорить, драйвер не падает, а выдаёт UB. Т.е. где-то на каких-то дравах и каких-то вендорах можно реально получить некоторый прирост от smp. Где-то наоборот - сильное падание. И понять что происходит абсолютно невозможно. Они потом (уже в Rage) как я понимаю, вынесли в отдельный поток обработку энтить, физики, а рендер оставили в основном и это было наилучшим решением. Я конечно не знаю, может быть D3D и умеет нормально работать в нескольких потоках. Но в целом эта идея с smp была мертворождённой всегда. Это говно поидее надо дропнуть и забыть как страшный сон.
Дядя Миша писал: Потому что, как выяснилось GL может адекватно ренедить только в том потоке, в котором было создано окно.
GL изначально заточен под многопоточность со своей системой контекстов. Кроме того, сервер, принимающий команды, сам по себе живёт в своём потоке.
Можно, пожалуйста, цитату из этого скандального интервью?
Цитата:
Дядя Миша писал: Это говно поидее надо дропнуть и забыть как страшный сон.
Дропнуть и забыть реальный инструмент ускорения рендеринга просто потому, что кто-то в каком-то интервью что-то сказал? Интересный у тебя подход к выбору технологий.
Fabien Sanglard - The rendering system is now broken down in a frontend/backend: It reminds me of the design of a compiler which usually has a frontend->IR->backend pipeline. What this inspired by the design of LCC which was used for Quake3 bytecode generation ? I wonder what are the advantages over a monolithic renderer like Doom, idTech1 and idTech2.
John Carmack - This was explicitly to support dual processor systems. It worked well on my dev system, but it never seemed stable enough in broad use, so we backed off from it. Interestingly, we only just found out last year why it was problematic (the same thing applied to Rage’s r_useSMP option, which we had to disable on the PC) – on windows, OpenGL can only safely draw to a window that was created by the same thread. We created the window on the launch thread, but then did all the rendering on a separate render thread. It would be nice if doing this just failed with a clear error, but instead it works on some systems and randomly fails on others for no apparent reason.
The Doom 4 codebase now jumps through hoops to create the game window from the render thread and pump messages on it, but the better solution, which I have implemented in another project under development, is to leave the rendering on the launch thread, and run the game logic in the spawned thread.
Пожалуйста цитато.
Вот ключевое
Цитата:
OpenGL can only safely draw to a window that was created by the same thread
Причём, как я понял, это не приводит к явным ошибкам, а просто к странному повидению. То есть если ты создал четыре потока и на каждом своё акошко - это будет прекрасно работать, а если ты из двух потоков рендеришь в одно окно, то получится ерунда. То есть ты ничего не исправил в SMP. Это невозможно исправить в принципе.
Добавлено 08-05-2020 в 20:30:
Цитата:
XaeroX писал: Дропнуть и забыть реальный инструмент ускорения рендеринга
Ну ты создай опрос, у кого фпс выше - со включённой мультипоточностью или с отключённой. Вот и посмотрим.
Дядя Миша
Эта фраза, "OpenGL can only safely draw to a window that was created by the same thread", ничем не обоснована и не подтверждается никакой официальной информацией (по крайней мере я не нашёл). Нужен реальный пруф, а не мутные рассуждения в стиле "у нас глючило, поэтому технология плохая". Вспомним, как у Кармака его собственная хвалёная мегатекстура глючила почти у всех, пока не вышел патч.
Вот, например, официальная инфа 2018 года с сайта Microsoft, которая прямо говорит о том, что SMP это круто:
Цитата:
The GDI does not support multiple threads. You must use a distinct device context and a distinct rendering context for each thread. This tends to limit the performance advantages of using multiple threads with single-processor systems running OpenGL applications. However, there are ways to use threads with a single processor system to greatly increase performance. For example, you can use a separate thread to pass OpenGL rendering calls to dedicated 3-D hardware.
Symmetric multiprocessing (SMP) systems can greatly benefit from using multiple threads. An obvious strategy is to use a separate thread for each processor to handle OpenGL rendering in separate windows. For example, in a flight-simulation application you could use separate processors and threads to render the front, back, and side views.
A thread can have only one current, active rendering context. When you use multiple threads and multiple rendering contexts, you must be careful to synchronize their use. For example, use one thread only to call SwapBuffers after all threads finish drawing.