HLFX.Ru Forum Страницы (11): « Первая ... « 2 3 4 5 [6] 7 8 9 10 » ... Последняя »
Показать все 158 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Quake Remake (https://hlfx.ru/forum/forumdisplay.php?forumid=32)
-- Quake Wrap (https://hlfx.ru/forum/showthread.php?threadid=4964)


Отправлено Дядя Миша 07-07-2017 в 17:51:

Цитата:
XaeroX писал:
Можно сделать лумп произвольных данных, и детектить контент по расширению

У вадов нет расширения, у них есть тип данных, в виде одного байта. Причём Кармак решил оформить эти типы данных в виде печатных символов, т.е. они начинаются с 65-го. Впрочем там есть еще свободные места в структуре описания лумпов.

Добавлено 07-07-2017 в 20:51:

Ну чтоже, приступил к имплементации. Весьма интересная задачка для меня.
И ЧСХ, тоже первый случай в мире такого сращивания. До меня еще никто не делал
В чистой халфе скорее всего этот фокус не провернуть, но с ксашевскими интерфейсами всё должно пройти гладко.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 07-07-2017 в 18:06:

Цитата:
Дядя Миша писал:
У вадов нет расширения, у них есть тип данных, в виде одного байта.

Ну точку в имени лумпа же можно поставить? Вот и расширение.

__________________

xaerox on Vivino


Отправлено Дядя Миша 08-07-2017 в 12:55:

А я продолжаю операцию по сращиванию. Пока что всё проходит гладко, но впереди самая сложная часть - с посылкой мессаг на клиент. Чтобы было легче заценить мосштаб трогедии, приведу код посылки мессаги из кваки и халфы, для наглядности:

C++ Source Code:
1
WriteByte (MSG_BROADCAST, SVC_TEMPENTITY);
2
WriteByte (MSG_BROADCAST, TE_TELEPORT);
3
WriteCoord (MSG_BROADCAST, org_x);
4
WriteCoord (MSG_BROADCAST, org_y);
5
WriteCoord (MSG_BROADCAST, org_z);

Это квака.
C++ Source Code:
1
MESSAGE_BEGIN( MSG_BROADCAST, SVC_TEMPENTITY, pev->origin );
2
WRITE_BYTE( TE_TELEPORT );
3
WRITE_COORD( pev->origin.x );
4
WRITE_COORD( pev->origin.y );
5
WRITE_COORD( pev->origin.z );
6
MESSAGE_END();

А это халфа.
В чём заключается основная проблема? SVC_ и TE_ скорее всего не совпадут у кваки с халфой. А если даже и совпадут, мы всё равно не сможем грамотно перенаправить поток в нужном нам направлении, т.к. в кваке нет понятия END_MESSAGE, из-за чего не получится по нормальному узнать где она закончилась и где началась следующая. Из-за чего их ремап сопряжён с серъезными трудностями. Единственный боле-мене грамотный выход из ситуации заключается в том, чтобы парсить мессагу на сервере, ремапить и посылать её. Но при таком подходе будет проблематично восстановить их порядок при условии, что они запишутся в разные буффера. Возможно это и не имеет особого значения. Вообщем потенциальных проблем вышыкрышы.

Добавлено 08-07-2017 в 15:55:

А в сорцах хипнотика еще и вот такое грёбаное чудо встречается
C++ Source Code:
1
WriteByte (MSG_ONE, SVC_UPDATEENTITY|15); // 0x80|1|2|4|8
2
WriteByte (MSG_ONE, 64); // 0x40
3
WriteEntity(MSG_ONE,camera);
4
WriteCoord(MSG_ONE,camera.origin_x);
5
WriteCoord(MSG_ONE,camera.origin_y);
6
WriteCoord(MSG_ONE,camera.origin_z);

которое напрямую использует механизмы дельты движка.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дядя Миша 09-07-2017 в 22:47:

Цитата:

SV_LoadProgs: initailized extended EntityAPI ver. 140
SV_LoadProgs: initailized extended PhysicAPI ver. 6
Dll loaded for mod Quake
Playing shareware version.
Programs occupy 400K.
1.33 Mb alloced by server packet entities
Spawn Server: start
OP_ADDRESS: edict 2, localoffset 28, address 001C0002
OP_STORE: edict 2, localoffset 28, address 001C0002
OP_ADDRESS: edict 2, localoffset 95, address 005F0002
OP_STORE: edict 2, localoffset 95, address 005F0002
OP_ADDRESS: edict 0, localoffset 28, address 001C0000
OP_STORE: edict 0, localoffset 28, address 001C0000
OP_ADDRESS: edict 0, localoffset 95, address 005F0000
OP_STORE: edict 0, localoffset 95, address 005F0000
OP_ADDRESS: edict 0, localoffset 28, address 001C0000
OP_STORE: edict 0, localoffset 28, address 001C0000
OP_ADDRESS: edict 0, localoffset 95, address 005F0000
OP_STORE: edict 0, localoffset 95, address 005F0000
OP_ADDRESS: edict 0, localoffset 28, address 001C0000
OP_STORE: edict 0, localoffset 28, address 001C0000
OP_ADDRESS: edict 0, localoffset 95, address 005F0000
OP_STORE: edict 0, localoffset 95, address 005F0000

Первый пробный запуск

__________________
My Projects: download page

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

Цитата:

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


Отправлено Дядя Миша 11-07-2017 в 14:37:

Так товарищи, вчера состоялся первый полноценный запуск враппера под квейком. Полноценный, это который не окончился вылетом, как можно догадаться. Выглядит пока что всё грустно, монстры не ходят, двери не открываются, факелы выглядят как артефакты, а игрок не слушается комманд. Но начало положено - виртуальная машинка работает правильно.
А многочисленные баги связаны с наличием двух наборов entvars и необходимостью теперь постоянно копировать из движкового в игровой и обратно. Это одна из основных неприятностей. Когда я её устраню, то скорее всего это примет уже достаточно играбельный вид. Но самое главное уже сделано и апробировано. К слову сказать, если кто-то полагает, что достаточно скопировать из кваки pr_exec, pr_edict и pr_cmds, то он очень сильно ошибается. Портированию препятствует масса архитектурных различий, решения для которых приходится изобретать находу. Да вон спросите у Ксерокса.

Добавлено 11-07-2017 в 17:37:

А где этот товарищ, который всё прогрессом интерисовался и писал что у него руки чешутся.

__________________
My Projects: download page

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

Цитата:

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


Отправлено st1x51 11-07-2017 в 15:30:

Прячется где-то небось.

__________________
//generated by Quake, do not modify
//I want QuakeC in XashNT
http://www.moddb.com/games/conscript


Отправлено Дядя Миша 11-07-2017 в 16:50:

st1x51 тово и гляди сбудется твоя мечта. Как дальше жить-то будешь? Без мечты.

__________________
My Projects: download page

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

Цитата:

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


Отправлено st1x51 11-07-2017 в 20:00:

Цитата:
Дядя Миша писал:
st1x51 тово и гляди сбудется твоя мечта. Как дальше жить-то будешь? Без мечты.


Я почти перестал мечтать.

__________________
//generated by Quake, do not modify
//I want QuakeC in XashNT
http://www.moddb.com/games/conscript


Отправлено Дядя Миша 11-07-2017 в 20:14:

Игрок уже ходит, а монстры атакуют
Параллельно исправляются некоторые мелкие огрехи в движке.

__________________
My Projects: download page

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

Цитата:

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


Отправлено KiQ 11-07-2017 в 21:50:

Дядя Миша а для врапа понируется какой-то отдельный билд движка, или вот это всё дублирование энтварсов в основную ветку пойдет?

__________________
-Brain is dead-


Отправлено Ku2zoff 12-07-2017 в 04:34:

Ну вот, теперь у меня наконец-то появился повод перепройти кваку, пройти первый раз Quake Remake, и сравнить эти дела с "чистой" квакой под ксашем. Заодно и моды будем вспаиграть. Ждём-с.


Отправлено Дядя Миша 12-07-2017 в 08:22:

KiQ так дублирование не затрагивает собственно движок, оно на уровне игровой дллки. На уровне движка пришлось сделать один-единственный хак - отключить флаг FL_FROZEN через систему features. Потому что в квкаке это флаг FL_JUMPRELEASED и всякий раз отпуская кнопку прыжка игрок замораживается.

В целом польза враппера для отладки движка несомненна, я только вчера вычистил из него около десятка мелких багов, которые там сидели с 2010-го года. Ну там даже не то что баги - несоответствия. Ну например, дефолтовый бинд кнопки SPACE был +moveup, а должен был быть +jump. Вот такого плана.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Cybermax 12-07-2017 в 14:09:

Цитата:
Ku2zoff писал:
Заодно и моды будем вспаиграть. Ждём-с.

Моды на квейк вспоиграть можно будет?


Отправлено Ku2zoff 12-07-2017 в 14:47:

Цитата:
Cybermax писал:
Моды на квейк вспоиграть можно будет?

Ну так-то да, ведь ксаш теперь умеет грузить progs.dat, кодить новые фичи из модов не надо. Как и перемоделивать модели, т.к. alias-модели теперь поддерживаются нативно. Оно конечно ещё неизвестно, как скоро всё будет играбельно, и насколько играбельно. Надо будет помочь тестированием.


Отправлено Дядя Миша 12-07-2017 в 15:19:

Цитата:
Cybermax писал:
Моды на квейк вспоиграть можно будет?

Дык затем и делается

Цитата:
Ku2zoff писал:
Оно конечно ещё неизвестно, как скоро всё будет играбельно, и насколько играбельно.

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

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 17:05. Страницы (11): « Первая ... « 2 3 4 5 [6] 7 8 9 10 » ... Последняя »
Показать все 158 сообщений этой темы на одной странице

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