Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Forum archive | iddqd.ru
Wolf 3D
RulesRules SearchSearch
18+
Динамические Реджекты в PrBoom
   Forum Index - Doom и его порты - Динамические Реджекты в PrBoomPost a reply

Тип вашего основного переносного компьютера
Нужны
16%
 16% [ 2 ]
Не нужны
16%
 16% [ 2 ]
Нужны, но не в PrBoom
66%
 66% [ 8 ]
Number of voted doomers : 12
Total votes12
Poll does not expire

AuthorMessage
Arsenikum
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 32 points
1258

Doom Rate: 1.54

Posts quality: +7
Link to post #1 Posted: 24.08.15 01:13:19
Короче, попробовал вернуться к своему старому проекту Reject8 (к тому самому, с пауком который). И пришел к мысли, а не сделать ли мне реджекты динамическими?
Что это мне даст:
1) Независимость от всяческих RMB, Zennode и прочих сторонних приблуд. Тупо в начале уровня выставил нужную комбинацию реджектов через вуду-доллз и всё.
2) Такая ситуация. Темная-темная комната, где-то поблизости тусят импы и бароны, которые из-за реджектов не видят игрока. Игрок проходит эту зону, заходит в комнату и дергает рубильник. Включается свет, и теперь монстры ВИДЯТ игрока. Поэтому если он вздумает возвращаться тем же маршрутом, то они непременно на него набросятся.
3) Мигает свет, игроку надо быстро пересечь комнату, пока свет не зажегся, иначе его спалят. Или еще лучше, разные секции освещаются в определенной последовательности, игрок не должен попасть под прожектор.
Экшоны я собирался делать такие:
- Включить-отключить видимость сектора А из сектора В. Передать номера секторов можно через offset текстур, примерно как экшн произвольного скроллинга текстуры.
- Включить-отключить видимость сектора А для всех секторов (safe сектор).
- Включить-отключить видимость ИЗ сектора А для всех секторов (blind сектор).

И вот я радостно потирая руки, собрался это воплотить, но буквально сразу же столкнулся с проблемой.
Реджект - структура сугубо статическая, прописана как константа в исходниках. Соответственно память под нее выделяется и освобождается одним куском. Можно конечно, покопаться в коде и убрать ее константность. Но тут возникает другая, более серьезная задача. Реджект не сохраняется, когда игрок делает сейв, это часть уровня, которая читается при его загрузке и больше не изменяется (ну изменяется один раз при эмуляции переполнения). Чистая матрица при 2000 секторах весит 512 кб, при среднем весе сейва в два раза меньше сохранять его в сыром виде - не комильфо. Значит, надо хранить изменение состояния отдельно, так называемую дельту. И отдельно хранить текущий, уже динамический реджект, который и будет вызываться при проверке видимости монстров.
При сохранении архивируется только дельта. Учитывая, что количество затрагиваемых секторов будет невелико, сожмется она сильно. А при загрузке необходимо расжимать ее и применять к статическому реджекту уровня :shock:.

Ну собственно вопрос, а стоит ли игра свеч? Переделки предстоят серьезные, нужно ли это кому-нибудь кроме меня? :oops:
Таки да, я предпочитаю теплый ламповый PrBoom, потому что мне НЕ нравится физика ZDoom. Ну может, еще какие-нибудь движки подскажете. Eternity, например.
6 3
[D2D]_Revenant
- Colonel -
Next rank: = Colonel = after 64 points
4376

Doom Rate: 1.57

Posts quality: +462
Link to post #2 Posted: 24.08.15 12:58:12
Arsenikum :
Ну может, еще какие-нибудь движки подскажете.

3DGE попробуй. Собсна мне непонятно, почему тебе не нравится нормальная физика в здуме и нравится забагованный прбум, в котором даже рендеринг неправильно работает.
10 2 6
Thirteen
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 20 points
1620

Doom Rate: 1.93

Posts quality: +5
Link to post #3 Posted: 24.08.15 14:10:08
Вот меня месяц не было. Захожу. Что я вижу?

Ревенант крутит свою заезженную пластинку.
1
cybermind
Chief Petty Officer
Next rank: - Warrant Officer - after 69 points
971

Doom Rate: 1.99

Posts quality: +88
Link to post #4 Posted: 24.08.15 16:27:07
Это, конечно, все замечательно, костыли городить легко и этим можно заниматься сколько угодно, но это тупиковый путь развития. Говорю, как создавший режим Invasion средствами MBF (как раз для проверки возможностей PrBoom+)

К слову, в Eternity Engine есть средства управления поведением монстров, например, там как раз можно через ACS сделать так, чтобы монстры начали видеть игрока, правда возможностей там все же намного меньше, чем в ZDoom.
1 1 1
Shadowman
= Commissar =
Next rank: - UAC Commissar - after 173 points
5627

Doom Rate: 2.33

Posts quality: +228
Link to post #5 Posted: 24.08.15 21:53:03
Мне кажется, игра не стоит свеч. Лучше бы применить свои программистские способности в совершенствовании здума. Или в создании универсального дум порта (о котором здесь как то шла речь, но потом все заглохло, как обычно).
1 7 2
BFG2407
- Warrant Officer -
Next rank: = Warrant Officer = after 75 points
1065

Doom Rate: 1.4

Posts quality: +98
Link to post #6 Posted: 24.08.15 22:15:10
Arsenikum
Идея с реджектами хорошая, но вот исполнение которые ты задумал - сомнительное. Я "страдаю", по нормальному игровому языку в дум, с помощью которого можно было бы полноценно перепрограммировать дум, не залезая в исходники: кандидат на роль - JS (google v8 machine).

Shadowman
Ну на самом деле, неплохо свою руку уже приложил к делу ZZYZX, но он писал тупо порталы под ZD, и забросил. Короче у него полноценный портальный форк ZD. А я за два года страдания всякой фигней, и писания говнокода только-только определился с направлением. Да и видишь, прогеры люди такие, кооперироваться не хотят. Да и часто бывает тупо лень что-либо делать.
2 1 1
alekv
Lieutenant Colonel
Next rank: Lieutenant Colonel after 130 pointsForum moderator
3510

Doom Rate: 1.93

Posts quality: +471
Link to post #7 Posted: 24.08.15 22:16:07
Shadowman :
Или в создании универсального дум порта (о котором здесь как то шла речь, но потом все заглохло, как обычно).

Что за универсальный порт? Есть ссылка на те собщения?

BFG2407 :
Да и видишь, прогеры люди такие, кооперироваться не хотят. Да и часто бывает тупо лень что-либо делать.

Потому что нет цели, нет лидера, нет стимула. =)
1 3 1
[D2D]_Revenant
- Colonel -
Next rank: = Colonel = after 64 points
4376

Doom Rate: 1.57

Posts quality: +462
Link to post #8 Posted: 25.08.15 05:42:23
Thirteen
Советую не заходить тебе сюда вообще, я сильно беспокоюсь за твое психздоровье.

Добавлено спустя 1 минуту 57 секунд:

alekv :
Потому что нет цели, нет лидера, нет стимула.
Это мотму что бесплатно.
10 2 6
Thirteen
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 20 points
1620

Doom Rate: 1.93

Posts quality: +5
Link to post #9 Posted: 25.08.15 10:50:57
Как бы твоё желание не исполнилось, и на форуме не остались одни малолетки и наркоманы.
1
Monsterooovich
Chief Petty Officer
Next rank: - Warrant Officer - after 91 points
949

Doom Rate: 1.54

Posts quality: -4
Link to post #10 Posted: 25.08.15 13:18:31
alekv :
Что за универсальный порт? Есть ссылка на те собщения?


Я даже целый тред сделал.
http://i.iddqd.ru/viewtopic.php?t=406

alekv :
Потому что нет цели, нет лидера, нет стимула.


А ещё потому что делают не то, что нужно. А ещё всем лень.

[D2D]_Revenant :
Это мотму что бесплатно.


Никто не будет покупать дум порты.
ZZYZX
- Colonel -
Next rank: = Colonel = after 20 pointsForum moderator
4420

Doom Rate: 1.76

Posts quality: +947
Link to post #11 Posted: 25.08.15 13:30:59
Arsenikum :
Чистая матрица при 2000 секторах весит 512 кб, при среднем весе сейва в два раза меньше сохранять его в сыром виде - не комильфо. Значит, надо хранить изменение состояния отдельно, так называемую дельту. И отдельно хранить текущий, уже динамический реджект, который и будет вызываться при проверке видимости монстров.

Реджект весит 500000 байт, только по той причине, что это 2000*2000/8. Они используют по одному биту на значение.
А дельта для большого количества секторов в таком случае будет выглядеть либо как (2000*2000*4 + 2000*2000/8), либо как (2000*2000*5). Лично меня обе цифры впечатляют.
Почему? Потому что смысл дельты в том, что туда пишутся не все сектора.
А раз не все, то в отличие от изначального реджекта (в который пишутся ВСЕ сектора и поиск происходит по схеме видимость_сектора = reject[id_второго_сектора*количество_секторов+id_сектора]), придётся хранить 3 значения.
2 байта — сектор из которого смотрим, 2 байта — сектор в который смотрим, 1 байт — видно/не видно. Или 1 бит, но тогда чтение и запись из упакованного реджекта будут выглядеть очень интересно, т.к. границы значений не будут выровнены по 1 байту.

В итоге если мы захотим записать туда много секторов (например чтобы из всех секторов не было видно данный), получатся вышеописанные 16500000 байт.
2 2 1
BFG2407
- Warrant Officer -
Next rank: = Warrant Officer = after 75 points
1065

Doom Rate: 1.4

Posts quality: +98
Link to post #12 Posted: 25.08.15 13:39:36
Monsterooovich :
Никто не будет покупать дум порты.

Это верно. Хотя Donate никто не отменял ;)

Народ если у кого есть опыт программиста в какой-нибудь компании, т.е. не фрилэнс и не хобби, то можно для начала просто систематизировать подход коллективной разработки:
1. Кооперация программистов, независимо от нашего мнения друг о друге (детей чай вместе не крестить)
2. Формирование концепта порта, исходя из насущных и перспективных потребностей
3. Вынесение на коллективное одобрение сообществом
4. Открытие страницы проекта с донатом: нет доната - нет порта (в дальнейшем нет доната - нет обновлений и баг фиксов)
5. Регламентирование сдельной оплаты
6. Написание ТЗ распределение ролей по заданиям
7. Назначение координатора проекта - независимый, ответственный человек, причём не участвующий непосредственно в разработке (менеджер)

Все мы должны понимать, что огромных денег это не принесёт, однако сделать за программный модуль пару тысяч рублей - а почему бы и нет? Тут всё по честному: независимо от-того является ли человек соавтором порта, не написал ни строчки - ничего не получил. От силы тебя запишут в титрах в "спасибо". Менеджер проекта отвечает за распределение финансов, анонсы релизов, и проведение акций в старт сборов (старт работ/обновление), так-же формирует сессионную команду из желающих поучаствовать программистов. *оффтоп
2 1 1
[D2D]_Revenant
- Colonel -
Next rank: = Colonel = after 64 points
4376

Doom Rate: 1.57

Posts quality: +462
Link to post #13 Posted: 25.08.15 15:02:01
BFG2407 :
Хотя Donate никто не отменял

Я предлагал создать фонд и нанять прогеров, но всем как-то п**уй.
Мы же такое дружное сообщество.
10 2 6
alekv
Lieutenant Colonel
Next rank: Lieutenant Colonel after 130 pointsForum moderator
3510

Doom Rate: 1.93

Posts quality: +471
Link to post #14 Posted: 25.08.15 18:59:16
[D2D]_Revenant :
Это мотму что бесплатно.

Все те же причины.. Есть цель, есть лидер, будет стимул, все просто =) Ну и конечно же в налоговой оформиться надо для компашки, иначе нормально бабки не соберешь)
Да и люди за бесплатно делают хорошие проекты, а со спонсором (которого находят когда есть что показать) получаются шЫдевры =)
А если думать как бы рыбку съесть и на х.. сесть, то так ничего не получится, конечно если только в кентах есть какой спонсор... Или дядя вася из готовой компашки.
Monsterooovich :
Я даже целый тред сделал.
http://i.iddqd.ru/viewtopic.php?t=406
http://i.iddqd.ru/viewtopic.php?t=406

Ну это я видел еще давно, но такого порта нет, потому что кто пытается, они делают порт, а надо делать двиг который потом можно продавать или использовать в коммерческих целях, т.е. есть двиг, на нем делаешь игру и игру продаешь, двиг как бы бесплатно.. но не всякие навороченные UE4 которые у 50% нормально не запустятся, это лучше оставить для биг компашек =)

Monsterooovich :
Никто не будет покупать дум порты.

Порты конечно никто не купит, моды еще ладно и то качество не ниже того же Total Chaos, кстати показывал нескольким знакомым видео и спросил купили бы или нет? Говорят купили бы, да и реакция на видео не плохая если учесть что это гозза.
Но кто пытался сделать порт(скорее двиг) который позволяет продавать игры но не GLOOME(глум это тупик видимо..) и брать % с продаж? Смартфоны тоже никто не отменял, гозза же работает, а для смартов не мало людей кинулись бы делать игрульки =)
1 3 1
Page 1 of 1Go to top
   Forum Index - Doom и его порты - Динамические Реджекты в PrBoom