Автор | Сообщение |
Archi]ASTS[ = Commissar =
| 5405 |
Doom Rate: 1.9 Posts quality: +61 |
Отправлено: 29.03.09 09:44:01 | | | Здесь будут скапливаться идеи для проектов или будут переносится темы, созданные без правил. Маппер(моддер) может выбрать одну из идей для ее реализации, и тогда идея будет удалена из списка.
Темы, свободные: 1.Город смерти 2.Satan Return 3.Batman Forevor 4.Nord: Frozen Death 5.Зартак:Тёмное измерение 6.Doom: Battle on Mars 7.Demon Return 8.X-ray 9.Gotic Citadel 10.Down into Hell 11.K.O. on ring 12.Nord Lich 13.Monsters wars 14.Mega berserker(krovopijca) 15.1 weapon mod(krovopijca) //16.RPG 17.добавит в дум 3 что-то из Вахи(Комиссар) 18.Crapi2(DXZ) 19.Действие будет происходить в Египте(DXZ) 20.Mission packs for doom 3(DXZ) 21.Гарри Думер(DXZ) 22.Бухой Думер(DXZ) 23.Two weapons(Big Fuckin Gun 2407) 24.Future(Часовщик) 25.Мертвый думер(Комиссар) 26.Ghost(DoomExpert) 27.Go2hell!(Комиссар) 28.Died teleporter(chernogon) 29.Angel destroyer(Hamsterheart) 30.Амнезия(Hamsterheart) 31.Высокогорный дум(Arsenikum) 32.Many worlds(M@@@H!aK) 34.Колезей арена(Комиссар) 35.Коробки(chernogon) 36.Город Dome(Big Fuckin Gun 2407) 37.Разнобой плеерклассов(Hamsterheart) 38.Tower Defence(M@@@H!aK) 39.HeXeN MMORPG(Big Fuckin Gun 2407) 40.сконвертить дум2д на гздум с помощью мода Pagostik(Soosisya San) 41.файтинг на тему дума(Soosisya San) 42.Третья сторона противников.(Soosisya San)
Dragon: 1. Некромикон: Тень Давних времён. 2. Solder: Demon attack 3. Elemental of hell 4. Lost life(Are you ready to die?) 5. Sarg 6. Pinki Puck!( You like The Pinki? Do you don't want kill it? PINKI Like kill Other Monsters!) 7. General Pain(He is SUCK!) 8. Harry Gudini 9. Theatre to Deaths 10. Infernal clowns 11. Roma 12. Satan vs. God 13. Gold Mines 14. Dark Chaos 15. Das is Gitler Kaput! 16. Big Bob 17. УПЯЧКА! 18. IMMO: Smile vs. Sad 19. Shadow of Hell 20. WarLord 21. Парк Демонического периода 22. Сердце Ада 23. Волна О каждой идее может рассказать тот, кто ее придумал.
Самые распространённый темы/стили: 1.ад 2.природа 3.город 4.деревня 5.база 6.космос 7.Море 8.Треш 9.Кибер панк 10.Хорор 11.История 12.Аниме и Манга 13.КАТАКОМБЫ 14.Разнобой 15.Герои 16.ДМ карты(аренки, мяснилки, дуэли , кланворы и т.д. ...) |
Рейтинг сообщения: +1, отметил(и): alekv |
|
1 |
2 |
1 |
|
|
| |
Часовщик = Corporal =
| 117 |
Doom Rate: 3.41
|
Отправлено: 20.10.09 22:00:46 | | | Не так давно на форуме в разделе "Проекты и идеи" висела тема Драгона "White labirinth". Кто-то из форумчан заметил, что хорошо бы было сделать вад "реиграбельным" посредством генерации нового лабиринта при каждом новом запуске левела. Недавно, когда я познакомился с гоззой, я стал думать о всяких фишках, которые возможно навертеть с помощью ветвящихся скриптов с условием, и вспомнил о идеи генерации лабиринтов. При поиске специализированной литературы наткнулся на интересную книжку по обжект паскалю в которой в весьма доступной форме были описаны два алгоритма генерации лабиринтов. Один из них, алгоритм Прима, трудоёмкий и сложный в описании (ИМХО), другой, алгоритм Краскаля, показался мне крайне простым и лёгким в исполнении. К тому же, его вполне можно реализовать с помощью ACS. Для начала создадим заготовку: клетчатое поле (скажем 5х5), где каждая граница клетки (сектора) является стеной. Каждая клетка - локация. Локация - часть нашего поля, отделённая от остального поля непроницаемыми стенами, из каждого места локации можно попасть в любое другое её место. Дальше действуем по алгоритму:
х - количество локаций в лабиринте 1) пока х > 1 2) выбираем случайную стену в лабиринте 3) ЕСЛИ стена разделяет две локации - [сделать стену проницаемой] -> [х - 1] -> [вернуться на первый пункт] ЕСЛИ стена разделяет меньше двух локаций -> [вернуться на первый пункт] [КОНЕЦ]
Теперь перед нами встаёт вопрос, как сделать так, чтобы при выборе стен компьютер не повторялся, не выбирал уже когда-то выбраную и обработаную стену. В книге есть ответ: можно сделать два масива чисел. Один масив - теги линий, другой - любые неодинаковые числа:
масив "а" масив "А" теги: любые числа: a = 1 A = 6 b = 2 B = 8 c = 3 C = 2 d = 4 D = 1
сопоставим данные двух масивов, так чтобы каждому числу из масива "а" соответствовало одно любое число из масива "А", а одному числу из масива "А" соответствовало только одно число из масива "а". дальше уже сопоставленые данные отсортируем по возрастанию, но так чтобы числа одного масива перемещались вдоль списка вместе с поставленными им в пару числами из другого масива, то есть если некоторое число "х" из одного масива переместилось с пятой строки на первую, то и число "у" поставленное с "х" в пару переместится со своей позиции на первую строку. надеюсь суть понятна. врядли это дословно можно реализовать на ACS, но как-нибуть думаю это возможно (наверное есть даже какая-нибуть спец команда которая поможет в данном случае). дальше, будем просто по порядку брать пары чисел из списка и "а" подставлять в алгоритм вместо "Случайной стены". Лабиринт построен. Дальше, наверняка потребуется сделать файнал поинт лабиринта, точку, которая будет находиться от точки спона игрока дальше всех. Используем для этого алгоритм волновой трассировки. Сектору в котором находится спонпоинт присваиваем тег = 1. Окружающим этот сектор доступным (не загороженым непроницаемыми стенами) секторам присваеваем тег, который больше чем тег первого сектора на 1. Доступным секторам окружающим сектор(а) с тегом 2 (кроме предыдущего сектора с тегом 1) присваеваем тег = 2 + 1. И так далее. Каждому доступному сектору, акромя секторов уже заново протеженых, присваеваем тег на один больший тега предыдущего сектора. Когда скрипт не сможет затежить хоть один сектор, остановить скрипт. В сектор с наибольшим тегом споним файналпоинт (тхинг в пикап стейте которого прописана экзекуция скрипта, заканчивающего левел). вот и всё в общем. надеюсь кому-то это пригодится. | |
|
| |
Archi]ASTS[ = Commissar =
| 5405 |
Doom Rate: 1.9 Posts quality: +61 |
Отправлено: 21.10.09 11:38:17 | | | Многабукаф... А мысль интересная. Не пробовал делать сам то, а?
Я честно говоря не понял некоторых вещей(к примеру как можно количество х рассчитать, или 3й пункт). Но все равно старался, расписал довольно много... | |
|
1 |
2 |
1 |
|
|
| |
Часовщик = Corporal =
| 117 |
Doom Rate: 3.41
|
Отправлено: 21.10.09 17:46:37 | | | Archi: | Не пробовал делать сам то, а? |
знаний у меня в гоззе мало пока. может как-нибуть опыта поднакоплю и возьмусь если другой кто не станет делать.
Archi: | х рассчитать, или 3й пункт |
кол-во локаций тебе выбирать. это смотря какую заготовку ты будешь брать, сколько на сколько клеточек. если скажем по вертикали в твоей заготовке 10 секторов, а по горизонтали 20, то получится что в общем целом у тебя 200 (10*20) клеток. а каждая клетка в начале есть локация (так как отгорожена от других клеток стенками). вот и получается что кол-во локаций (х) в первоначальном лабиринте = 200. третий пункт алгоритма краскаля? ну если плеер не может перейти из одной локации в другую, то стену между этими локациями стоит разрушить. Это нужно для того, чтобы из любой точки лабиринта в конце его построения можно было попасть в любую другую его точку. | |
|
| |
c4tnt UAC Sergeant Major
| 796 |
Doom Rate: 1.92 Posts quality: +5 |
Отправлено: 21.10.09 19:09:14 | | | Нужно тогда ещё подумать о том, какой лабиринт хочется получить. Этот алгоритм даёт лабиринт без колец, в котором каждая из комнат доступна. Только проблема в том, что подсчёт локаций может затянуться надолго. Лучше уж тогда отмаркировать все секторы лабиринта тэгом 2. Тэгом 1 отмечается вход лабиринта
А сам алгоритм такой: 1. Найти случайный сектор (А) с тэгом 1 2. Открыть случайные стены этого сектора (одну и более). Открывать стену можно только если за ней сектор с тэгом 2 2а. Если стену открыть невозможно, сектор просто помечается как 0, в него можно ложить вкусности - это тупичок. 3. Параллельно с открыванием стен помечаем сектор за ними тэгом 1 4. Отметить (А) тэгом 0 5. Повторять, пока есть сектора с тэгом 0
Параллельно можно считать рассотяние от входа до локации (если там есть местечко под число) чтобы воткнуть выход.
Только это всё больше подходит для самостоятельных программ типа oblige и прочих. | |
|
| |
Часовщик = Corporal =
| 117 |
Doom Rate: 3.41
|
Отправлено: 21.10.09 19:41:20 | | | сей алгоритм как раз куда более трудоёмкий чем Краскалевский. и получится лабиринт простой, дырявый легкопроходимый. в нём возможно образование комнат в которые нельзя пройти. подщёт локаций осуществляется при написании скрипта маппером. программа только с каждым циклом скрипта будет (или не будет) отнимать единицу от общего числа. это очень просто и займёт очёнь маленький объём памяти. | |
|
| |
c4tnt UAC Sergeant Major
| 796 |
Doom Rate: 1.92 Posts quality: +5 |
Отправлено: 21.10.09 22:05:23 | | | Там вроде одной локацией считаются все соединённые комнаты. Поэтому подсчёт не подходит. | |
|
| |
Часовщик = Corporal =
| 117 |
Doom Rate: 3.41
|
Отправлено: 22.10.09 20:34:54 | | | если стена разрушается, две локации объеденяются в одну, от общего их числа отнимается единица. всё правильно. перепроверено несколько раз. | |
|
| |
c4tnt UAC Sergeant Major
| 796 |
Doom Rate: 1.92 Posts quality: +5 |
Отправлено: 22.10.09 23:28:55 | | | Основная проблема вот тут:
| 3) ЕСЛИ стена разделяет две локации |
| |
|
| |
Lainos - Captain -
| | 2299 |
Doom Rate: 1.8 Posts quality: +336 |
Отправлено: 22.10.09 23:55:06 | | | Народ, лучше помучайтесь над конкретной задачей, которая мне например нужна сейчас очень. Как бы в классике сделать элемент случайности? Неважно, случайности чего именно. Хотя бы чего-нибудь. Буду очень признателен, если кто-нить найдет лазейку. | |
|
1 |
10 |
1 |
|
|
| |
c4tnt UAC Sergeant Major
| 796 |
Doom Rate: 1.92 Posts quality: +5 |
|
| |
Lainos - Captain -
| | 2299 |
Doom Rate: 1.8 Posts quality: +336 |
Отправлено: 23.10.09 08:37:49 | | | c4tnt О, спасибо большое! Теперь смогу сделать то, что задумал, хотя бы частично. Алсо, ты автор, или кто другой? Мне же нужно будет указать, чью идею спер. | |
|
1 |
10 |
1 |
|
|
| |
c4tnt UAC Sergeant Major
| 796 |
Doom Rate: 1.92 Posts quality: +5 |
Отправлено: 23.10.09 09:14:08 | | | Я, но мне не жалко В принципе при желании с давилками и полами можно и поинтереснее что-нибудь попробовать собрать. Жаль, что в думе нет аналога "расширителя" из дума 2д. Кстати, если у кого есть способ запустить два разных действия от одного свитча в классике - было бы очень интересно посмотреть. | |
|
| |
Lainos - Captain -
| | 2299 |
Doom Rate: 1.8 Posts quality: +336 |
Отправлено: 23.10.09 14:20:29 | | | c4tnt: | Кстати, если у кого есть способ запустить два разных действия от одного свитча в классике - было бы очень интересно посмотреть. |
Ну, рычагами никак не сделаешь, ибо придется два раза лишь запускать, как бы ни исхищриться... Но я такую проблему решал: просто делаю свитч на полу (читай - кнопку на полу). Ну а к ней можно довольно много экшенов приклеить. | |
|
1 |
10 |
1 |
|
|
| |
BeeWen Lieutenant Colonel
| | 3458 |
Doom Rate: 1.61 Posts quality: +860 |
Отправлено: 25.11.09 03:03:58 | | | ЛайносID: | Ну, рычагами никак не сделаешь, ибо придется два раза лишь запускать, как бы ни исхищриться... Но я такую проблему решал: просто делаю свитч на полу (читай - кнопку на полу). Ну а к ней можно довольно много экшенов приклеить. |
В классике так и делается, а кол-во разных действий несоизмеримо. Придумал такую штуку: едешь себе в лифте вниз, а он раз и встал в пути. Сломался значить. Ессно начинаешь тут суетится, по выключателю звонить по стенам, ничего не едет. Давай теперь палить во все будем, благо в лифте патронов коробка нашлась. Стрелять первым делом конечно по свитчу. Лифтец довольно таки тесный, стоять приходится к свитчу близко. Ну я сделал фальшивый проем ( middle texture ), поставил в нишу експлорербаррел, на заднюю стену ниши навесил свитч на выстрел. С первой очереди- бабах! Лучше было рядом не стоять: лифт резко падает (действительно падает, без дураков). Если задрать голову, видно разницу высот. Пришлось повозится с сектором самого выключателя, при падении все время стремился уйти в пол, зараза. Эффект не тот. Сделал потом как надо. | |
|
1 |
1 |
1 |
|
|
| |
Danny Lamb = Master Corporal =
| 251 |
Doom Rate: 2.44 Posts quality: +28 |
Отправлено: 29.11.09 13:24:44 | | | Кто нибудь пробовал сделать вад по мотивам (не побоюсь этого слова)культового фильма CUBE\Куб (1997 года)
Я не силён в билдере. Но может кого-то заинтересует из смотревших фильм эта невспаханная тема. можно было бы сделать отличный хоррор вад. | |
|
| |
Часовщик = Corporal =
| 117 |
Doom Rate: 3.41
|
Отправлено: 29.11.09 15:05:10 | | | Протект вроде в своём ваде на одной карте реализовал некоторые фишки из этого фильма. | |
|
| |
VladGuardian = Commissar =
| 5537 |
Doom Rate: 1.28 Posts quality: +1934 |
Отправлено: 29.11.09 16:04:26 | | | Danny Lamb Часовщик
Есть идея игры по теме Куба (не вад, сорри). Концепт уже примерно наполовину готов. Жанр: turn-based strategy, survival, элементы RPG. 2D вид - сверху.
Кто-нибудь знает, в мире уже есть нечто подобное описанному? (чтоб я не делал велисопед )
BeeWen Если текст набираешь в Notepad, перед самой вставкой отключай "Перенос по словам", и строки не будут ломаться. | |
|
4 |
10 |
23 |
|
|
| |
Danny Lamb = Master Corporal =
| 251 |
Doom Rate: 2.44 Posts quality: +28 |
Отправлено: 20.12.09 15:33:07 | | | недавно в голове витала бредовая мысль(после прохождения инди-игры Braid)
о том возможно ли в думе реализовать перемотку времени назад? хотя бы на 20-30 секунд назад. я знаю, что тогда должен быть криптор записывающий траектории движения врагов, траектории выстрелов и прочее.
это вообще possible? не в теории. | |
|
| |
Arsenikum = Warrant Officer =
| 1276 |
Doom Rate: 1.54 Posts quality: +29 |
Отправлено: 21.12.09 01:14:27 | | | Исходники Дума лежат в сети. Вперёд. Начать советую с Chocolate Doom, он проще.
И вообще, зачем ЭТО Думу нужно? Это МЯСО, а не глубокая головоомка. | |
|
6 |
3 |
|
|
| |