Динамические реджекты в PrBoom |
Нужны | | 15% | [ 2 ] |
Не нужны | | 15% | [ 2 ] |
Нужны, но не в PrBoom | | 69% | [ 9 ] |
| Проголосовало думеров : 12 | Всего оставлено голосов : 13 | | Голосование без ограничения по времени |
|
Автор | Сообщение |
Arsenikum = Warrant Officer =
| 1276 |
Doom Rate: 1.54 Posts quality: +29 |
Отправлено: 24.08.15 01:13:19 | | | Короче, попробовал вернуться к своему старому проекту Reject8 (к тому самому, с пауком который). И пришел к мысли, а не сделать ли мне реджекты динамическими? Что это мне даст: 1) Независимость от всяческих RMB, Zennode и прочих сторонних приблуд. Тупо в начале уровня выставил нужную комбинацию реджектов через вуду-доллз и всё. 2) Такая ситуация. Темная-темная комната, где-то поблизости тусят импы и бароны, которые из-за реджектов не видят игрока. Игрок проходит эту зону, заходит в комнату и дергает рубильник. Включается свет, и теперь монстры ВИДЯТ игрока. Поэтому если он вздумает возвращаться тем же маршрутом, то они непременно на него набросятся. 3) Мигает свет, игроку надо быстро пересечь комнату, пока свет не зажегся, иначе его спалят. Или еще лучше, разные секции освещаются в определенной последовательности, игрок не должен попасть под прожектор. Экшоны я собирался делать такие: - Включить-отключить видимость сектора А из сектора В. Передать номера секторов можно через offset текстур, примерно как экшн произвольного скроллинга текстуры. - Включить-отключить видимость сектора А для всех секторов (safe сектор). - Включить-отключить видимость ИЗ сектора А для всех секторов (blind сектор).
И вот я радостно потирая руки, собрался это воплотить, но буквально сразу же столкнулся с проблемой. Реджект - структура сугубо статическая, прописана как константа в исходниках. Соответственно память под нее выделяется и освобождается одним куском. Можно конечно, покопаться в коде и убрать ее константность. Но тут возникает другая, более серьезная задача. Реджект не сохраняется, когда игрок делает сейв, это часть уровня, которая читается при его загрузке и больше не изменяется (ну изменяется один раз при эмуляции переполнения). Чистая матрица при 2000 секторах весит 512 кб, при среднем весе сейва в два раза меньше сохранять его в сыром виде - не комильфо. Значит, надо хранить изменение состояния отдельно, так называемую дельту. И отдельно хранить текущий, уже динамический реджект, который и будет вызываться при проверке видимости монстров. При сохранении архивируется только дельта. Учитывая, что количество затрагиваемых секторов будет невелико, сожмется она сильно. А при загрузке необходимо расжимать ее и применять к статическому реджекту уровня .
Ну собственно вопрос, а стоит ли игра свеч? Переделки предстоят серьезные, нужно ли это кому-нибудь кроме меня? Таки да, я предпочитаю теплый ламповый PrBoom, потому что мне НЕ нравится физика ZDoom. Ну может, еще какие-нибудь движки подскажете. Eternity, например. | |
|
6 |
3 |
|
|
| |
[D2D]_Revenant Banned flooder
| 4358 |
Doom Rate: 1.49 Posts quality: -23 |
Отправлено: 24.08.15 12:58:12 | | | Arsenikum: | Ну может, еще какие-нибудь движки подскажете. |
3DGE попробуй. Собсна мне непонятно, почему тебе не нравится нормальная физика в здуме и нравится забагованный прбум, в котором даже рендеринг неправильно работает. | |
|
10 |
2 |
6 |
|
|
| |
Thirteen = 2nd Lieutenant =
| 1620 |
Doom Rate: 1.93 Posts quality: +10 |
Отправлено: 24.08.15 14:10:08 | | | Вот меня месяц не было. Захожу. Что я вижу?
Ревенант крутит свою заезженную пластинку. | |
|
| |
cybermind - Warrant Officer -
| 1045 |
Doom Rate: 1.99 Posts quality: +163 |
Отправлено: 24.08.15 16:27:07 | | | Это, конечно, все замечательно, костыли городить легко и этим можно заниматься сколько угодно, но это тупиковый путь развития. Говорю, как создавший режим Invasion средствами MBF (как раз для проверки возможностей PrBoom+)
К слову, в Eternity Engine есть средства управления поведением монстров, например, там как раз можно через ACS сделать так, чтобы монстры начали видеть игрока, правда возможностей там все же намного меньше, чем в ZDoom. | |
|
1 |
2 |
1 |
|
|
| |
Shadowman UAC General
| 8389 |
Doom Rate: 2.08 Posts quality: +1986 |
Отправлено: 24.08.15 21:53:03 | | | Мне кажется, игра не стоит свеч. Лучше бы применить свои программистские способности в совершенствовании здума. Или в создании универсального дум порта (о котором здесь как то шла речь, но потом все заглохло, как обычно). | |
|
1 |
7 |
2 |
|
|
| |
BFG2407 = Warrant Officer =
| 1211 |
Doom Rate: 1.38 Posts quality: +235 |
Отправлено: 24.08.15 22:15:10 | | | Arsenikum Идея с реджектами хорошая, но вот исполнение которые ты задумал - сомнительное. Я "страдаю", по нормальному игровому языку в дум, с помощью которого можно было бы полноценно перепрограммировать дум, не залезая в исходники: кандидат на роль - JS (google v8 machine).
Shadowman Ну на самом деле, неплохо свою руку уже приложил к делу ZZYZX, но он писал тупо порталы под ZD, и забросил. Короче у него полноценный портальный форк ZD. А я за два года страдания всякой фигней, и писания говнокода только-только определился с направлением. Да и видишь, прогеры люди такие, кооперироваться не хотят. Да и часто бывает тупо лень что-либо делать. | |
|
2 |
2 |
1 |
|
|
| |
alekv - Colonel -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 24.08.15 22:16:07 | | | Shadowman: | Или в создании универсального дум порта (о котором здесь как то шла речь, но потом все заглохло, как обычно). |
Что за универсальный порт? Есть ссылка на те собщения?
BFG2407: | Да и видишь, прогеры люди такие, кооперироваться не хотят. Да и часто бывает тупо лень что-либо делать. |
Потому что нет цели, нет лидера, нет стимула. | |
|
1 |
3 |
1 |
|
|
| |
[D2D]_Revenant Banned flooder
| 4358 |
Doom Rate: 1.49 Posts quality: -23 |
Отправлено: 25.08.15 05:42:23 | | | Thirteen Советую не заходить тебе сюда вообще, я сильно беспокоюсь за твое психздоровье.
Добавлено спустя 1 минуту 57 секунд:
alekv: | Потому что нет цели, нет лидера, нет стимула. | Это мотму что бесплатно. | |
|
10 |
2 |
6 |
|
|
| |
Thirteen = 2nd Lieutenant =
| 1620 |
Doom Rate: 1.93 Posts quality: +10 |
Отправлено: 25.08.15 10:50:57 | | | Как бы твоё желание не исполнилось, и на форуме не остались одни малолетки и наркоманы. | |
|
| |
Monsterooovich Chief Petty Officer
| 953 |
Doom Rate: 1.54 Posts quality: +11 |
Отправлено: 25.08.15 13:18:31 | | | alekv: | Что за универсальный порт? Есть ссылка на те собщения? |
Я даже целый тред сделал. http://i.iddqd.ru/viewtopic.php?t=406
alekv: | Потому что нет цели, нет лидера, нет стимула. |
А ещё потому что делают не то, что нужно. А ещё всем лень.
[D2D]_Revenant: | Это мотму что бесплатно. |
Никто не будет покупать дум порты. | |
|
| |
ZZYZX - UAC Commissar -
| | 6284 |
Doom Rate: 1.65 Posts quality: +1630 |
Отправлено: 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 =
| 1211 |
Doom Rate: 1.38 Posts quality: +235 |
Отправлено: 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 |
Отправлено: 25.08.15 15:02:01 | | | BFG2407: | Хотя Donate никто не отменял |
Я предлагал создать фонд и нанять прогеров, но всем как-то п**уй. Мы же такое дружное сообщество. | |
|
10 |
2 |
6 |
|
|
| |
alekv - Colonel -
| | 4168 |
Doom Rate: 1.87 Posts quality: +949 |
Отправлено: 25.08.15 18:59:16 | | | [D2D]_Revenant: | Это мотму что бесплатно. |
Все те же причины.. Есть цель, есть лидер, будет стимул, все просто Ну и конечно же в налоговой оформиться надо для компашки, иначе нормально бабки не соберешь) Да и люди за бесплатно делают хорошие проекты, а со спонсором (которого находят когда есть что показать) получаются шЫдевры А если думать как бы рыбку съесть и на х.. сесть, то так ничего не получится, конечно если только в кентах есть какой спонсор... Или дядя вася из готовой компашки.
Ну это я видел еще давно, но такого порта нет, потому что кто пытается, они делают порт, а надо делать двиг который потом можно продавать или использовать в коммерческих целях, т.е. есть двиг, на нем делаешь игру и игру продаешь, двиг как бы бесплатно.. но не всякие навороченные UE4 которые у 50% нормально не запустятся, это лучше оставить для биг компашек
Monsterooovich: | Никто не будет покупать дум порты. |
Порты конечно никто не купит, моды еще ладно и то качество не ниже того же Total Chaos, кстати показывал нескольким знакомым видео и спросил купили бы или нет? Говорят купили бы, да и реакция на видео не плохая если учесть что это гозза. Но кто пытался сделать порт(скорее двиг) который позволяет продавать игры но не GLOOME(глум это тупик видимо..) и брать % с продаж? Смартфоны тоже никто не отменял, гозза же работает, а для смартов не мало людей кинулись бы делать игрульки | |
|
1 |
3 |
1 |
|
|
| |