HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 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]


Временная зона GMT. Текущее время 19:39. Страницы (2): [1] 2 »
Показать все 22 сообщений этой темы на одной странице

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