Inline
Пользователь
- Регистрация
- 8 Июн 2017
- Сообщения
- 217
- Симпатии
- 98
- Пол
- Мужской
Первоисточник - Dedicated-Server.ru
ReHLDS это результат реверс-инжиниринга оригинального HLDS (build 6152/6153) с использованием отладочной информации DWARF, встроенной в linux-версию HLDS, engine_i486.so.
В процессе реверс-инжиниринга было обнаружено и исправлено множество недостатков и потенциальных багов.
Ссылки:
Мотивация: Главная мотивация - valve ничего не делает и нет возможности нормально исправлять баги.
Цели:
Текущий статус: Движок стабилен, почти все функции работают корректно.
Как использовать? ReHLDS полностью совместим с оригинальным HLDS. Все, что от вас требуется, это загрузить бинарные файлы rehlds и заменить оригинальные swds.dll/engine_i486.so. При этом до замены движка сервер должен быть обновлен через steamcmd до последней 6xxx+ beta.
Скомпилированные файлы доступны здесь (выберите .zip с наиболее свежей датой изменения).
Директория архива bin содержит 2 поддиректории, 'bugfixed' и 'pure'.
'pure' рассчитана на работу в точности как оригинальный HLDS от valve.
'bugfixed' содержит некоторые исправления и улучшения.
Внимание! Файлы ReHLDS бинарно несовместимы с оригинальным HLDS, так как скомпилированы другим компилятором. Это означает, что плагины, делающие анализ бинарного кода (Orpheu например), вероятно, не будут работать с rehlds. Соответственно, dproto тоже не будет работать. Но для большинства плагинов уже есть улучшенная замена.
Что это нам дало?Стало возможно не просто изучать движок, но и легко вносить в него изменения. Раньше для этого требовалось писать патчащие память модули, что довольно трудоемко. Это годится лишь для исправления критических багов, для которых уже написаны эксплойты, так как на каждый мелкий недочет писать патчи слишком муторно. Теперь можно без особых проблем исправлять любые ошибки движка и делать его улучшения. В перспективе про HLDS от Valve можно будет забыть и поддерживать серверный движок самостоятельно.
ReHLDS это результат реверс-инжиниринга оригинального HLDS (build 6152/6153) с использованием отладочной информации DWARF, встроенной в linux-версию HLDS, engine_i486.so.
В процессе реверс-инжиниринга было обнаружено и исправлено множество недостатков и потенциальных багов.
Ссылки:
- English thread on cs.rin.ru
- Код проекта на github
- Скомпилированные dev-билды
- Сравнение производительности ReHLDS и HLDS от Valve
Мотивация: Главная мотивация - valve ничего не делает и нет возможности нормально исправлять баги.
Цели:
- Предоставить более стабильный HLDS с расширенным API для модов и плагинов.
- Оптимизация производительности.
Дополнительное описание и перевод на русский язык присутствует, история ведеётся не сначала, но все равно полезна.
[EN] Commit № 568-569
[RU] Коммит № 568-569
- Merge pull request #479 from dreamstalker/hash_cdkey · dreamstalker/rehlds@ba2d9e2 · GitHub
- Hash cdkey once when client connected · dreamstalker/rehlds@55da681 · GitHub
- Now cdkey is hashed just once when connected, and not every time you send svc_updateuserinfo (which is responsible for updating values in setinfo)
- Merge pull request #479 from dreamstalker/hash_cdkey · dreamstalker/rehlds@ba2d9e2 · GitHub
- Hash cdkey once when client connected · dreamstalker/rehlds@55da681 · GitHub
- Теперь cdkey хешируется всего один раз при подключении, а не каждый раз при отправке svc_updateuserinfo (которое отвечает за обновление значений в setinfo)
[EN] Commit № 570
[RU] Коммит № 570
- GCC 5.X: Force disable macro _GLIBCXX_USE_CXX11_ABI for compatibility… · dreamstalker/rehlds@eac20ae · GitHub
- Fixes compatibility with GCC 5.X and HLTV "Invalid rcon challenge" error.
- GCC 5.X: Force disable macro _GLIBCXX_USE_CXX11_ABI for compatibility… · dreamstalker/rehlds@eac20ae · GitHub
- Исправлена совместимость с компиляторами GCC 5.X и ошибка HLTV "Invalid rcon challenge"
[EN] Commit № 571-572
[RU] Коммит № 571֊572
- Fix compilation under linux with ICC 17 (GCC 6.2) · dreamstalker/rehlds@b630405 · GitHub
- Merge pull request #486 from In-line/patch-6 · dreamstalker/rehlds@534522f · GitHub
- Fix compilation under linux with ICC 17 (GCC 6.2)
- Fix compilation under linux with ICC 17 (GCC 6.2) · dreamstalker/rehlds@b630405 · GitHub
- Merge pull request #486 from In-line/patch-6 · dreamstalker/rehlds@534522f · GitHub
- Исправлена компиляция под linux с ICC 17 (GCC 6.2)
[EN] Commit № 573
[RU] Коммит № 573
- Rework of #5 to support CS Beta (#487 fix) · dreamstalker/rehlds@17fdec3 · GitHub
- Merge pull request #488 from WPMGPRoSToTeMa/serversayfix · dreamstalker/rehlds@61952ba · GitHub
- Support CS Betа chat
- Rework of #5 to support CS Beta (#487 fix) · dreamstalker/rehlds@17fdec3 · GitHub
- Merge pull request #488 from WPMGPRoSToTeMa/serversayfix · dreamstalker/rehlds@61952ba · GitHub
- Поддержка чата из CS Betа
[EN] Commit № 574
[RU] Коммит № 574
- Use mtune=generic instead of march for GCC · dreamstalker/rehlds@cd9e83d · GitHub
- Merge pull request #492 from In-line/patch-6 · dreamstalker/rehlds@195a436 · GitHub
- Use more generic and better optimization options for GCC
- Use mtune=generic instead of march for GCC · dreamstalker/rehlds@cd9e83d · GitHub
- Merge pull request #492 from In-line/patch-6 · dreamstalker/rehlds@195a436 · GitHub
- Использовать более универсальные и лучшие оптимизацияя для компиляции под GCC
[EN] Commit № 575
[RU] Коммит № 575
- Added BOM skipping for .cfg files · dreamstalker/rehlds@ccd8207 · GitHub
- Merge pull request #493 from WPMGPRoSToTeMa/patch-9 · dreamstalker/rehlds@49f657e · GitHub
- Added BOM (Byte order marker) skipping for .cfg files
- Added BOM skipping for .cfg files · dreamstalker/rehlds@ccd8207 · GitHub
- Merge pull request #493 from WPMGPRoSToTeMa/patch-9 · dreamstalker/rehlds@49f657e · GitHub
- Добавлен пропуск BOM (маркер последовательности байтов) для .cfg файлов
[EN] Commit № 576
[RU] Коммит № 576
- Fix accuracy, improve bullet physics. · dreamstalker/rehlds@f85feab · GitHub
- Merge pull request #494 from In-line/patch-7 · dreamstalker/rehlds@ec204e5 · GitHub
- Minor change to README.md, which main purpose was trolling noobs
- Fix accuracy, improve bullet physics. · dreamstalker/rehlds@f85feab · GitHub
- Merge pull request #494 from In-line/patch-7 · dreamstalker/rehlds@ec204e5 · GitHub
- Вторичное изменение README.md, главная цель которого потроллить нубов
Текущий статус: Движок стабилен, почти все функции работают корректно.
Как использовать? ReHLDS полностью совместим с оригинальным HLDS. Все, что от вас требуется, это загрузить бинарные файлы rehlds и заменить оригинальные swds.dll/engine_i486.so. При этом до замены движка сервер должен быть обновлен через steamcmd до последней 6xxx+ beta.
Скомпилированные файлы доступны здесь (выберите .zip с наиболее свежей датой изменения).
Директория архива bin содержит 2 поддиректории, 'bugfixed' и 'pure'.
'pure' рассчитана на работу в точности как оригинальный HLDS от valve.
'bugfixed' содержит некоторые исправления и улучшения.
Внимание! Файлы ReHLDS бинарно несовместимы с оригинальным HLDS, так как скомпилированы другим компилятором. Это означает, что плагины, делающие анализ бинарного кода (Orpheu например), вероятно, не будут работать с rehlds. Соответственно, dproto тоже не будет работать. Но для большинства плагинов уже есть улучшенная замена.
Что это нам дало?Стало возможно не просто изучать движок, но и легко вносить в него изменения. Раньше для этого требовалось писать патчащие память модули, что довольно трудоемко. Это годится лишь для исправления критических багов, для которых уже написаны эксплойты, так как на каждый мелкий недочет писать патчи слишком муторно. Теперь можно без особых проблем исправлять любые ошибки движка и делать его улучшения. В перспективе про HLDS от Valve можно будет забыть и поддерживать серверный движок самостоятельно.
Последнее редактирование модератором: