HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Save/restore compatibility
SAVERESTORE SAVEDATA DEFINE_FIELD DOSTALO
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Half-Life Save/restore compatibility

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

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

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

Сообщить модератору | | IP: Записан
Сообщение: 174179

Старое сообщение 10-12-2018 19:22
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32132
Нанёс повреждений: 392 ед.

Рейтинг



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

__________________
My Projects: download page

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

Цитата:

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

Сообщить модератору | | IP: Записан
Сообщение: 174181

Старое сообщение 10-12-2018 20:21
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


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

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

Сообщить модератору | | IP: Записан
Сообщение: 174186

Старое сообщение 11-12-2018 11:55
- За что?
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 12832
Возраст: 32

Рейтинг



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

__________________
Иван Топорышкин пошел на охоту,
С ним пудель пошел, перепрыгнув забор,
Иван, как бревно провалился в болото,
А пудель в реке утонул, как топор.

Сообщить модератору | | IP: Записан
Сообщение: 174189

Старое сообщение 11-12-2018 12:23
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32132
Нанёс повреждений: 392 ед.

Рейтинг



~ 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'

Сообщить модератору | | IP: Записан
Сообщение: 174193

Старое сообщение 11-12-2018 15:20
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


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

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

Сообщить модератору | | IP: Записан
Сообщение: 174196

Старое сообщение 13-12-2018 09:59
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 174198

Старое сообщение 13-12-2018 10:52
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 32132
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
~ 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'

Сообщить модератору | | IP: Записан
Сообщение: 174201

Старое сообщение 13-12-2018 14:34
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


Дядя Миша я просто спросил - ДВИЖОК В ХАЛВЕ ДЕЛАЕТ ХЭШИ ИЛИ НЕТ?
Я заменил 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]

Сообщить модератору | | IP: Записан
Сообщение: 174205

Старое сообщение 14-12-2018 09:05
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

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

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

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 174206

Старое сообщение 14-12-2018 09:49
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


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

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

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

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

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

Отредактировано ~ X ~ 14-12-2018 в 10:20

Сообщить модератору | | IP: Записан
Сообщение: 174208

Старое сообщение 14-12-2018 10:19
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

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

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 174209

Старое сообщение 14-12-2018 10:31
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


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

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

Сообщить модератору | | IP: Записан
Сообщение: 174210

Старое сообщение 14-12-2018 12:14
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34491
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


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

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

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

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

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

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

__________________
Правдой дорожить, лжи не потакать,
Дальних не судить, ближним помогать,
С тишиной сойтись на исходе дня
Научи меня, Родина моя!

Сообщить модератору | | IP: Записан
Сообщение: 174211

Старое сообщение 14-12-2018 12:29
-
~ X ~
offline

Дата регистрации: Oct 2005
Проживает: Архангельск
Сообщений: 3619

Рейтинг



Награды
 
[1 награда]


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

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

Сообщить модератору | | IP: Записан
Сообщение: 174212

Старое сообщение 14-12-2018 13:52
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 07:41. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Save/restore compatibility
SAVERESTORE SAVEDATA DEFINE_FIELD DOSTALO
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

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