HLFX.Ru Forum
Показать все 22 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Технические вопросы (https://hlfx.ru/forum/forumdisplay.php?forumid=20)
-- Save/restore compatibility (https://hlfx.ru/forum/showthread.php?threadid=5151)


Отправлено ~ X ~ 10-12-2018 в 19:22:

Half-Life Save/restore compatibility

Краткий вопрос.
Я тут переделал save/restore механизм, дабы всё что нужно умещалось, "сжималось" и вообще приносило радость.
Чтобы .sav-файлы не выглядели так по-ублюдски (и было легче отлаживать), я убрал HashString() и вместо него запилил простой непрерывный список строк.
Вопрос: движок ХЛ не сломается от этого?

PS: hazardous course теперь сохраняется со всеми стволами и патронами, кучами снарядов, кусков и прочего рандома.
PS2: алгоритм хэшрования и записи - это вообще "веселье". Пока разберёшься что, зачем и к чему прибавляется и куда циклируется - рехнёшься без специальных проф.резистов.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 10-12-2018 в 20:21:

Сломается конечно. Когда не понимаешь что делаешь, непонятно что и где сломается Но так даже интереснее - можно 17 лет ДЕБАЖИТЬ.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ~ X ~ 11-12-2018 в 11:55:

Дядя Миша у тебя есть на 2019 год график периодов когда ты дело говоришь и херню, чтоб лишний раз время не тратить?

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено FiEctro 11-12-2018 в 12:23:

Если от отсортированного delta.lst не сломался, то тут думаю всё будет хорошо

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 11-12-2018 в 15:20:

~ X ~ Любые слова можно воспринимать как угодно, вне зависимости от того, чем они являются на самом деле.
Лимит на уникальные строки - 4095 штук. Посчитай, сколько записал ты.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ~ X ~ 13-12-2018 в 09:59:

Дядя Миша и что же должно сломаться? Количество строк не изменится. А на порядок строк в savedata, судя по всему, халве вообще пофиг. В данный момент у меня всё работает, но есть какой-то странный глюк с положением декалей, которые пишутся движком. Собственно, из-за него всё это и переписывал.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 13-12-2018 в 10:52:

Что такое "простой непрерывный список строк"?
Ты дубликаты как сохраняешь?

__________________

xaerox on Vivino


Отправлено Дядя Миша 13-12-2018 в 14:34:

Цитата:
~ X ~ писал:
и что же должно сломаться?

Раз ты эту тему создал - значит не вполне понимаешь что ты сделал. Вот и боишься что что-нибудь сломается
Угадать что именно сломается при порче памяти сложно. Халфовский менеджер никак за ней не следит, поэтому лезут необъяснимые глюки, которые ты дебажишь уже 17 лет.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ~ X ~ 14-12-2018 в 09:05:

Дядя Миша я просто спросил - ДВИЖОК В ХАЛВЕ ДЕЛАЕТ ХЭШИ ИЛИ НЕТ?
Я заменил index = HashString(string) на index = FindOrAddString(string); всё. Ибо уже достало в sav-файлах наблюдать рандомную блевотину из пробелов и кусков говна. Я хочу узнать, кто-то кроме гаме.длл будет это говно читать или нет? Будут пытаться хэши сверять или нет? Я такого кода не нашёл, но решил уточнить. Вдруг "авторитетный рдач" знает.

Добавлено 14-12-2018 в 12:05:

Цитата:
XaeroX писал:
Что такое "простой непрерывный список строк"?
Ты дубликаты как сохраняешь?


valve:
[0] = anus
[1] = 0
[2] = podgoranus
[3] = fufel
[4] = 0
...
[1524] = kagdila
[sizeof-1] = surprise

xdm:
[0] = anus
[1] = podgoranus
[2] = fufel
[3] = kagdila
[4] = surprise
[5] = 0
...
[sizeof-1] = 0

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 14-12-2018 в 09:49:

Цитата:
~ X ~ писал:
Я хочу узнать, кто-то кроме гаме.длл будет это говно читать или нет? Будут пытаться хэши сверять или нет?

Нет.
Цитата:
~ X ~ писал:
FindOrAddString

Линейный поиск?
Я правильно понимаю, что ты разоптимизировал код ради красоты бинарного файла?

__________________

xaerox on Vivino


Отправлено ~ X ~ 14-12-2018 в 10:19:

Цитата:
XaeroX писал:
Нет.

Линейный поиск?
Я правильно понимаю, что ты разоптимизировал код ради красоты бинарного файла?

Условно-да. Там циклический поиск свободных "хэш-индексов". Там было так:
- считается хэш строки инт32
- режется до инт16
(хотел тут расписать всё, но лучше оставлю так. если так интересно - сами код почитаете. делюсь кайфом от ковыряния в говне в коде. возможно, тогда придет понимание того, зачем это уничтожать убирать под дефайн)
....
- в свободное место пишется строка

по сравнению с этим, поиск свободного места при куче совпадений - пустяковая нагрузка.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 14-12-2018 в 10:31:

Цитата:
~ X ~ писал:
по сравнению с этим, поиск свободного места при куче совпадений - пустяковая нагрузка.

Давай вообразим ситуацию, что нам нужно сохранить сотню специализированных энтитей, у которых есть поле "m_iszXWider". До этих энтитей мы уже сохранили 1000 других строк от предыдущих энтитей. Допустим, хэш строки "m_iszXWider" указал на занятое поле, но через 2 поля - уже свободное. Тогда с хэшем мы имеем 100 вычислений хэша и 2*100=200 strcmp. А с линейным поиском мы имеем 0 вычислений хэша и 1000*100=100000 strcmp. Ты правда думаешь, что это пустяковая разница?

__________________

xaerox on Vivino


Отправлено ~ X ~ 14-12-2018 в 12:14:

XaeroX я не хочу отнимать у тебя радость задротства, но лучше поищи тему где ДМ доказывал, что strcmp это никакая нагрузка. мне.
Здраво говоря, тебе реально больше хотелось потрепаться, чем отвечать на вопрос.
save/restore происходит единовременно при сохранении или смене карты. при этом появляется надпись saving/loading. при этом самая дорогая операция - запись на диск. при этом всё равно время сохранения в современном мире ничтожно. при этом на фпс в самой игре влияния нет. при этом хотя бы обесечивается лучшее сжатие сейвов, читабельность кода и стабильность алгоритма. И - да, не нравится - форкай и пиши по-другому. Хотя даже форкать не надо - собрать с другим флагом.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 14-12-2018 в 12:29:

Цитата:
~ X ~ писал:
Здраво говоря, тебе реально больше хотелось потрепаться, чем отвечать на вопрос.

Мне не нравится, когда под соусом "очевидного" подают далеко не очевидные вещи.
Цитата:
~ X ~ писал:
save/restore происходит единовременно при сохранении или смене карты. при этом появляется надпись saving/loading.

Я очень люблю квиксейвиться, и мне нравится, что на современном железе в халфе это происходит мгновенно. И мне не не нравится, что кто-то хочет заменить 200 вызовов функции на 100000, замедлив хотя бы часть процесса в 500 раз.
Цитата:
~ X ~ писал:
при этом самая дорогая операция - запись на диск.

Это в эпоху SSD-то? Запись сотни килобайт - самая дорогая операция?
Цитата:
~ X ~ писал:
при этом хотя бы обесечивается лучшее сжатие сейвов, читабельность кода и стабильность алгоритма.

Насколько лучше будет сжатие твоих сейвов? Можешь показать какую-то статистику?
Про читабельность кода и стабильность алгоритма я вообще не понял пассаж. Почему ты считаешь код классического хеширования с линейным разрешением конфликтов менее читабельным, чем код линейного поиска? Чем последний алгоритм стабильнее первого?
Цитата:
~ X ~ писал:
И - да, не нравится - форкай и пиши по-другому.

Я пытаюсь понять, чем это нравится тебе.
Пока - безуспешно.

__________________

xaerox on Vivino


Отправлено ~ X ~ 14-12-2018 в 13:52:

XaeroX во ты занудил. тут человек вальвокод отлаживает, а тебе прям чешется чужую мотивацию прочувствовать ) когда уже две строчки в ДЖЕК допишешь? У меня уже денег на донаты не останется скоро.

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено XaeroX 14-12-2018 в 14:54:

~ X ~
Ну приехали... Ты тему создал, а когда люди начали обсуждать - начал обзываться и стрелы двигать.

__________________

xaerox on Vivino


Отправлено Дядя Миша 14-12-2018 в 17:32:

Цитата:
~ X ~ писал:
я просто спросил - ДВИЖОК В ХАЛВЕ ДЕЛАЕТ ХЭШИ ИЛИ НЕТ?

Не обманывай. Ты спросил
Цитата:
~ X ~ писал:
движок ХЛ не сломается от этого?

А я ответил что конечно сломается. А хэши он не делает и по хэшам ничего не ищет - доверяет это дллке.
Цитата:
~ X ~ писал:
Я хочу узнать, кто-то кроме гаме.длл будет это говно читать или нет?

Нет, не будет. Движок если это и читает, то при помощи game.dll. Сам не лезет.
Цитата:
~ X ~ писал:
Ибо уже достало в sav-файлах наблюдать рандомную блевотину из пробелов и кусков говна.

Ну как-то эта "рандомная блевотина" прекрасно работала последние 20 лет и никому не мешала. Так в чём же дело?
Если быть более точным - чем это отличается от сортировки строчек в delta.lst и какую полезную нагрузку несёт?
Цитата:
~ X ~ писал:
где ДМ доказывал, что strcmp это никакая нагрузка. мне.

Я от своих слов не отказываюсь. strcmp, особенно, когда строки сильно разные и фейлятся уже на первом символе, это действительно небольшая нагрузка для небольших массивов. То есть на массиве в 4096 элементов разница будет заметна едва - ли. Но ты лучше покажи где я доказывал что надо брать рабочий код, который абсолютно всех устраивал и полностью его переписывать под заведомо идиотским предлогом "строки идут не по порядку". А завтра ты узнаешь, что халфа выделяет не целую область памяти, а рандомные куски в оперативе? Ты что начнёшь писать дефрагментатор памяти и запускать его перед запуском халфы?
Цитата:
~ X ~ писал:
Хотя даже форкать не надо - собрать с другим флагом.

Очевидно же что никто ничего не будет собирать ни с каким флагом.
Цитата:
~ X ~ писал:
тут человек вальвокод отлаживает

Отлаживает код, к которому на протяжении 20 лет ни у кого не было ни единой претензии? Я вот в прошлом году выяснил что LightPoint оказывается попадает не в люксель точно под линией, а куда-то её может вообще вбок увести из-за ошибок округления. И если рядом будет тень, то вполне возможна ситуация, когда монстр стоящий на свету полностью затеняется. Вот такая была бага, я её исправлял. Вот тебе пример мелочи, которая действительно требовала исправления, хотя её тоже 20 лет никто не замечал.
Цитата:
~ X ~ писал:
а тебе прям чешется чужую мотивацию прочувствовать

Каждое действие должно быть чем-то обосновано. Если человек что-то творит и не может обосновать, то он поехавший и творит беспредел. Сегодня ему хэши не угодили, завтра телевышку подпилит, а после завтра начнёт с ножом на прохожих кидаться.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено ~ X ~ 14-12-2018 в 18:39:

Цитата:
Дядя Миша писал:
Но ты лучше покажи где я доказывал что надо брать рабочий код, который абсолютно всех устраивал и полностью его переписывать под заведомо идиотским предлогом "строки идут не по порядку".

Ой, блин.. и вправду - забыл у рдача спросить, что мне делать. Забыл написать заявление на изменения свщенного всех устраивающего вальвокода за месяц до изменения. Забыл написать объяснительную, почему поднял клавиатуру на священные коды. И почему мне, язычнику такому, вообще перестало хватать священных знаний SDK. Ибо тексты сии дарованы были пророку Габену Великими Писателями Вальве.
Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

Я объяснял как-то, зачем я переписывал код, но вы, фарисеи, не слушали, ибо истина не люба более взгляду вашему.
Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.


Добавлено 14-12-2018 в 21:35:

Цитата:
Дядя Миша писал:
И если рядом будет тень, то вполне возможна ситуация, когда монстр стоящий на свету полностью затеняется. Вот такая была бага, я её исправлял. Вот тебе пример мелочи, которая действительно требовала исправления, хотя её тоже 20 лет никто не замечал.

Куда занести денег тебе на памятник? Бронзу или сразу золото?
Путину уже отослано прошение признать тебя героем Росии - об этом не беспокойся )
Вот только показал бы ты, что ты кроме кода скопипастилнаписал за эти годы? А в коде даже самоубийство гауссом не исправил. Это, наерное, поважнее тёмного монстра (его кто-нибудь видел?) будет?

Добавлено 14-12-2018 в 21:37:

РДАЧ

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


Добавлено 14-12-2018 в 21:39:

/thread

__________________
Минутка полезного:
Бесплатный UT-подобный Half-Life mod.
Бесплатный редактор для 32-битных текстур. Без дотнета.
Бесплатный IDE для любых компиляторов и ЯП.
Бесплатная Windows-подобная ОС.
Проверка грамматики русского языка.
Чат по hl[fx]: [email protected]


Отправлено Дядя Миша 14-12-2018 в 19:55:

Цитата:
~ X ~ писал:
Ой, блин.. и вправду - забыл у рдача спросить, что мне делать

Ну ты же создал эту тему? Значит не забыл

Цитата:
~ X ~ писал:
Забыл написать заявление на изменения свщенного всех устраивающего вальвокода за месяц до изменения.

Мы тебе намекнули что ты ерундой занимаешься. А ты начал поясничать.

Цитата:
~ X ~ писал:
Я объяснял как-то, зачем я переписывал код, но вы, фарисеи, не слушали

Да мы и так знаем зачем. Чтобы ДЕБАЖИТЬ

Цитата:
~ X ~ писал:
Вот только показал бы ты, что ты кроме кода написал за эти годы?

А што кроме кода можно еще писать? Весёлые рассказы? Поучительные притчи?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 14-12-2018 в 20:27:

Цитата:
~ X ~ писал:
Когда вместо одного ответа на вопрос разводится полемика о том, зачем задавался вопрос, что автор хотел этим сказать и почему в его вопросе столько букв.

"Парламент - не место для дискуссий" (с)?

__________________

xaerox on Vivino


Отправлено Ghoul [BB] 05-01-2019 в 20:23:

~X~ по-моему, именно так и работает жидовская модель общения, когда вместо чёткого ответа на вопрос собеседник начинает увиливать и нести всякую несусветную хрень, при этом всячески пытаясь выставить спросившего полным дураком.

__________________
Ты топчешь мир своими ботинками,
Не замечая куда наступаешь,
А время от тебя уходит цветными картинками,
Но ты даже этого не понимаешь.

Компрометирую данные своей учётной записи.
ЛОГИН: Ghoul [BB]
ПАРОЛЬ: paladin_solo


Отправлено Дядя Миша 06-01-2019 в 15:50:

Ghoul [BB] нее, браток. Русский тот творит херню с умным видом и ни с кем не советуется. Ну вот как мы с Ксером. А вы неуверенные в себе жидки, потому что сделаете глупость и бежите спрашивать - правильно мы сделали или нет? А мы как истинные русские над вам потешаемся, и это правильно, тому шо наш завсегда над недругом верх одержит.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 21:30.
Показать все 22 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024