Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Динамические Реджекты в PrBoom
   Список разделов - Doom и его порты - Динамические Реджекты в PrBoomОтветить

Динамические реджекты в PrBoom
Нужны
15%
 15% [ 2 ]
Не нужны
15%
 15% [ 2 ]
Нужны, но не в PrBoom
69%
 69% [ 9 ]
Проголосовало думеров : 12
Всего оставлено голосов : 13
Голосование без ограничения по времени

АвторСообщение
Arsenikum
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 14 points
1276

Doom Rate: 1.54

Posts quality: +29
Ссылка на пост №1 Отправлено: 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
Banned flooder
4358

Doom Rate: 1.49

Posts quality: -23
Ссылка на пост №2 Отправлено: 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: +10
Ссылка на пост №3 Отправлено: 24.08.15 14:10:08
Вот меня месяц не было. Захожу. Что я вижу?

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

Doom Rate: 1.99

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

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

Doom Rate: 2.08

Posts quality: +1986
Ссылка на пост №5 Отправлено: 24.08.15 21:53:03
Мне кажется, игра не стоит свеч. Лучше бы применить свои программистские способности в совершенствовании здума. Или в создании универсального дум порта (о котором здесь как то шла речь, но потом все заглохло, как обычно).
1 7 2
BFG2407
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 79 points
1211

Doom Rate: 1.38

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

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

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №7 Отправлено: 24.08.15 22:16:07
Shadowman:
Или в создании универсального дум порта (о котором здесь как то шла речь, но потом все заглохло, как обычно).

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

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

Потому что нет цели, нет лидера, нет стимула. =)
1 3 1
[D2D]_Revenant
Banned flooder
4358

Doom Rate: 1.49

Posts quality: -23
Ссылка на пост №8 Отправлено: 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: +10
Ссылка на пост №9 Отправлено: 25.08.15 10:50:57
Как бы твоё желание не исполнилось, и на форуме не остались одни малолетки и наркоманы.
1
Monsterooovich
Chief Petty Officer
Next rank: - Warrant Officer - after 87 points
953

Doom Rate: 1.54

Posts quality: +11
Ссылка на пост №10 Отправлено: 25.08.15 13:18:31
alekv:
Что за универсальный порт? Есть ссылка на те собщения?


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

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


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

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


Никто не будет покупать дум порты.
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №11 Отправлено: 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: - 2nd Lieutenant - after 79 points
1211

Doom Rate: 1.38

Posts quality: +235
Ссылка на пост №12 Отправлено: 25.08.15 13:39:36
Monsterooovich:
Никто не будет покупать дум порты.

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

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

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

Doom Rate: 1.49

Posts quality: -23
Ссылка на пост №13 Отправлено: 25.08.15 15:02:01
BFG2407:
Хотя Donate никто не отменял

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

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №14 Отправлено: 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
Страница 1 из 1Перейти наверх
   Список разделов - Doom и его порты - Динамические Реджекты в PrBoom