Версия для печати темы
Город Мастеров _ Шарды рунета _ Инстансы?
Автор: denis0k Nov 18 2010, 21:46
Один диалог привёл меня к такому вот вбросу
Пусть есть нвн1-сервер Х, на нём крутится пве модуль. Партия 1 собирается в данж за зелипупенской зелибякой, подходит к порталу и дёргает за рычаг. В этот момент в фоне нвнх грузит ещё один сервер из этой же папки (но видимо на другой порт) с модулем из одного данжа, после загрузки партия кидается туда и тусит там до окончания. Пока они там, партия 2 хочет в такой же данж, дёргает рычаг, грузит ещё один сервер-придаток и тоже проходит тот же данж параллельно партии 1. Волт общий, база общая.
Реально?
Автор: Ilerien Nov 19 2010, 00:01
Зачем запускать каждый раз новый сервер? Проще скопировать локации из шаблона, благо NWNX Areas позволяет, навесить на переходы нужные теги - и вуаля. Как это отразится на производительности - другой вопрос, но, думаю, что не сильно.
Автор: greye Nov 20 2010, 11:05
Цитата(Ilerien @ Nov 19 2010, 01:01)
Зачем запускать каждый раз новый сервер?
Так лучше сервер - можно редактировать различные модули и подгружать только их, не трогая основной сервер.
Автор: Ilerien Nov 20 2010, 11:21
На вкус и цвет, конечно, но мне запуск нескольких процессов нвнсервера нравится значительно меньше, чем копирование локаций с шаблона.
Цитата
Так лучше сервер - можно редактировать различные модули и подгружать только их, не трогая основной сервер.
Вообще, в этом есть и обратная сторона медали - если ты хочешь внести глобальные изменения (спелл какой пофиксить, скажем), то придётся редактировать оба модуля либо ещё как извращаться - с той же динамической подгрузкой скриптов через NWNX, например.
Автор: virusman Nov 20 2010, 12:09
Цитата(greye @ Nov 20 2010, 11:05)
Так лучше сервер - можно редактировать различные модули и подгружать только их, не трогая основной сервер.
А для этого есть NWNX ResMan, который позволяет обновлять и добавлять ресурсы без перезагрузки сервера.
Автор: elsefalse Nov 26 2010, 01:34
Кстати о переходах. Есть способ поменять Transition Target, или придется применять костыли?
Автор: virusman Nov 26 2010, 07:57
Цитата(elsefalse @ Nov 26 2010, 01:34)
Кстати о переходах. Есть способ поменять Transition Target, или придется применять костыли?
Да, можно повесить скрипт на событие http://www.nwnlexicon.com/compiled/event.onareatransitionclick.html.
На дверях должно работать, на триггерах - не знаю.
Ещё за переходы отвечает скрипт NW_G0_Transition.
Автор: denis0k Nov 26 2010, 09:00
Можно сделать динамические триггеры, но мы в своё время отказались от этого - нестандартные триггеры у нас криво работали на забегание либо с мышки, либо с клавиатуры. С одного девайса - всё ок, с другого - как-то неестественно себя вело, не помню уже. Имхо там только часть кода в скрипте и часть в движке.
Автор: Ilerien Nov 26 2010, 10:31
Проще всего дописать nw_g0_transition - это не костыль, а вполне себе приличная реализация динамических триггеров.
Цитата
Можно сделать динамические триггеры, но мы в своё время отказались от этого - нестандартные триггеры у нас криво работали на забегание либо с мышки, либо с клавиатуры. С одного девайса - всё ок, с другого - как-то неестественно себя вело, не помню уже. Имхо там только часть кода в скрипте и часть в движке.
У нас были проблемы со скрытыми переходами - событие onEnter с клавы (или с мышки - тоже не помню) частенько не срабатывало.
Автор: elsefalse Nov 26 2010, 14:28
Да, еще вопрос. Если игрок выйдет с откопированной локи(NWNX_Areas), локу удалить, игрок возвращается в игру в эту самую удаленую локу. Что будет?
Автор: virusman Nov 26 2010, 15:26
Цитата(elsefalse @ Nov 26 2010, 14:28)
Да, еще вопрос. Если игрок выйдет с откопированной локи(NWNX_Areas), локу удалить, игрок возвращается в игру в эту самую удаленую локу. Что будет?
Сервер валится.
Если серьёзно, была такая проблема, но я не помню, фиксил ли я её или нет.
Автор: elsefalse Dec 3 2010, 04:05
Таки валится.
Автор: virusman Dec 3 2010, 07:56
На винде или линухе? В виндовой версии на пару багов больше.
Когда освободится время - может, поправлю.
Автор: kiruhs Oct 20 2011, 09:16
Вот такой вопрос по нвнх. Допустим есть модуль на 250 локаций. Каждая локация представлена в вариантах зима, лето, осень, весна. Итого уже 1000 локаций, что не очень хорошо для производительности. Но одновременно в модуле используется только 250.
Возможно ли реализовать такой вариант: есть два модуля - main(скрипты, палитра, т.е. движок модуля) и support(локации). При загрузке main мы берем нужные локации из support и копируем их в main. Или может как-то возможно при запуске main копировать в темп файлы с локами из определенной папки? Думаю суть задачи понятна
Автор: virusman Oct 20 2011, 11:09
Можно просто держать один основной модуль без локаций, а все локи - в папке ресурсов ResMan (с разными префиксами или суффиксами для времён года). При загрузке модуля делать LoadArea для всех лок с нужными приставками.
Автор: Flaristan Oct 20 2011, 14:57
Цитата(denis0k @ Nov 26 2010, 09:00)
Можно сделать динамические триггеры, но мы в своё время отказались от этого - нестандартные триггеры у нас криво работали на забегание либо с мышки, либо с клавиатуры. С одного девайса - всё ок, с другого - как-то неестественно себя вело, не помню уже. Имхо там только часть кода в скрипте и часть в движке.
Сделал у себя динамические переходы через двери (не триггер, а дверной проем «area transition») – вроде неплохо себя зарекомендовали.
Цитата(kiruhs @ Oct 20 2011, 09:16)
Вот такой вопрос по нвнх. Допустим есть модуль на 250 локаций. Каждая локация представлена в вариантах зима, лето, осень, весна. Итого уже 1000 локаций, что не очень хорошо для производительности. Но одновременно в модуле используется только 250.
Как раз последнее над чем работал (и еще спрашивал в разделе по скриптам) – подсистема для придания локациям «зимнего» вида. ИМХО это перебор с локациями, гораздо проще и выгоднее с т.з. системных ресурсов ввести «киберкалендарь» (что я у себя и сделал и дорабатываю) который работает с имеющимися локациями и изменяет их в соответствии с временами года, месяцами, неделями, временами суток.
Автор: kiruhs Oct 20 2011, 16:08
Цитата(Flaristan @ Oct 20 2011, 14:57)
Как раз последнее над чем работал (и еще спрашивал в разделе по скриптам) – подсистема для придания локациям «зимнего» вида. ИМХО это перебор с локациями, гораздо проще и выгоднее с т.з. системных ресурсов ввести «киберкалендарь» (что я у себя и сделал и дорабатываю) который работает с имеющимися локациями и изменяет их в соответствии с временами года, месяцами, неделями, временами суток.
Флэр тут как тут... С точки зрения системных ресурсов гораздо проще сделать разные локи, чем городить в одной кучу ненужных скриптов. Да и не представляю как летний тайл можно превратить в зимний. Вариант "Пусть игроки включают воображение и сами додумывают" не предлагать
Да и нужно это не для смены сезонов. Это был как пример
Автор: denis0k Oct 20 2011, 17:29
Цитата
ИМХО это перебор с локациями, гораздо проще и выгоднее с т.з. системных ресурсов ввести «киберкалендарь» (что я у себя и сделал и дорабатываю) который работает с имеющимися локациями и изменяет их в соответствии с временами года, месяцами, неделями, временами суток.
Для КЛ пробовали разные варианты, в результате пришли к выводу, что проще ретекстурить в зиму все тайлы и сделать 2 копии одной локи, чем городить плейсы и эффекты - всё равно по-человечески не сделать. Ни траву/крыши в снег не перекрасить, ни листья с деревьев не скинуть, ни ручьи льдом не покрыть.
Автор: Flaristan Oct 20 2011, 19:09
Падающий снег, наметы, зимние скайбоксы - помоему вполне достаточно для придании локации зимней атмосферы...
Автор: kiruhs Oct 20 2011, 19:26
Цитата(Flaristan @ Oct 20 2011, 18:09)
Падающий снег, наметы, зимние скайбоксы - помоему вполне достаточно для придании локации зимней атмосферы...
Забыл табличку поставить "Сейчас зима" или лучше прямиком в лог писать
Лично я вижу зеленую траву и зеленые кроны деревьев с непонятной белой субстанцие вокруг. У меня не настолько развито воображение
Автор: Flaristan Oct 20 2011, 20:00
Не забыл – в логе комментируются события имеющие влияние на персонажей (непогода, заморозки, наступление светового дня…).
Это лучше чем «ничего».
А с Края Лесов я помню систему дублирующихся локаций (зима – лето) – она вызывала значительные сбои в функционировании шарда (вплоть до того что сервер становился неиграбельным, зиму называли «ядерной», и чтоб продолжать нормально играть на шарде требовалось просить в письменном виде администрацию перекрутить игровое время на весну).
Автор: denis0k Oct 20 2011, 21:43
Цитата
Не забыл – в логе комментируются события имеющие влияние на персонажей (непогода, заморозки, наступление светового дня…).
Ммм.. Можно сделать MUD на движке нвн!
Цитата
она вызывала значительные сбои в функционировании шарда (вплоть до того что сервер становился неиграбельным, зиму называли «ядерной», и чтоб продолжать нормально играть на шарде требовалось просить в письменном виде администрацию перекрутить игровое время на весну).
Хостинг подкачал - на пг субд отваливается время от времени, а модуль на ней сильно завязан. Плагин был без реконнекта (хотя реконнект немногое бы решил).
Ну и когда я ушёл, систему поломали окончательно
Сайрус не синхронизировал скрипты в модулях, а потом вообще забил на зимнюю версию. Сейчас я бы сделал по-другому, через тот же ресман, было бы офигенно круто, но смысла нет некрофилией заниматься.
Автор: Ilerien Oct 20 2011, 22:30
Цитата
Хостинг подкачал - на пг субд отваливается время от времени, а модуль на ней сильно завязан. Плагин был без реконнекта (хотя реконнект немногое бы решил).
Сейчас проблему порешали - поставили мускулю таймаут побольше, а я простенький реконнект в плагин дописал.
Цитата
Падающий снег, наметы, зимние скайбоксы - помоему вполне достаточно для придании локации зимней атмосферы...
На скринах поздняя осень, но никак не зима, сорри
Сама по себе идея смены времён года в экстерьерных локациях мне кажется очень интересной, но крайне трудной в полноценной реализации. Слишком сильно уменьшает количество юзабельных тайлов и плейсов. Мы от неё отказались в пользу разнообразия тайлов.
Автор: denis0k Oct 20 2011, 23:14
Цитата
Сейчас проблему порешали - поставили мускулю таймаут побольше
Да, сурово Драгит работает
Его при мне 2 раза поднимали
И как только нагрузка растёт, он там видимо ещё циферку подкручивает. Оригинальное решение, сродни хранению бекапов на одном винте с данными (поэтому бэд-блоки убивали найтсы 2 раза).
Цитата
а я простенький реконнект в плагин дописал.
А "потерянные" запросы пересылает до победного конца? Иначе смысла нет, простой реконнект был и так, на геме кажется очень редко ломались чары (если в момент регистрации дискало), на кл ломалось вообще всё и 100%
Цитата
Слишком сильно уменьшает количество юзабельных тайлов и плейсов.
Некоторые тайлы довольно просто ретекстурятся
Но это десятки человекочасов, проверено на себе. Но зато результат довольно забавный, такое было кажется только в ультиме, остальные онлайновые миры статичны до мозга костей.
P.S. На скринах ранняя осень
Поздняя осень в далеко не северном Черноземье (по меркам, опять же, России) выглядит куда суровее.
Автор: Flaristan Oct 21 2011, 00:11
Цитата(Ilerien @ Oct 20 2011, 22:30)
На скринах поздняя осень, но никак не зима, сорри
Цитата(denis0k @ Oct 20 2011, 23:14)
На скринах ранняя осень
Поздняя осень в далеко не северном Черноземье (по меркам, опять же, России) выглядит куда суровее.
Это вы еще новый год в Крыму не встречали.
На самом деле да – смысла бороться со статичностью НВН нет никакого (со всем уважением к КЛ, но все же дублирование локаций для разных времен года – это всеравно извратский изврат). Но тем не менее мне кажется для переходных регионов (между теми где «вечная» зима и лето) такая «поздне-ранняя осень» вполне достойный компромисс (особенно учитывая что оно не подгружает особо модуль скриптами и создает хоть какую-то часть иллюзии «живущего» мира) – в модуле оно смотрится довольно неплохо, кому надо оценят.
Автор: Flaristan Oct 21 2011, 00:11
//продублировался пост
Автор: Ilerien Oct 21 2011, 00:23
Цитата
Да, сурово Драгит работает Его при мне 2 раза поднимали И как только нагрузка растёт, он там видимо ещё циферку подкручивает. Оригинальное решение, сродни хранению бекапов на одном винте с данными (поэтому бэд-блоки убивали найтсы 2 раза).
Ахха, сурово. Постгрес-то ставить не хотят.
Цитата
А "потерянные" запросы пересылает до победного конца? Иначе смысла нет, простой реконнект был и так, на геме кажется очень редко ломались чары (если в момент регистрации дискало), на кл ломалось вообще всё и 100%
*пожал плечами* Один раз. Судя по логам, с того момента, как поставился фикс, фатальные потери были только раз за последние пару месяцев, причём там не СУБД была виновата, а связь между машиной с нвнсервером и машиной с базой. Будут нехорошие симптомы - дописать недолго.
Цитата
Некоторые тайлы довольно просто ретекстурятся Но это десятки человекочасов, проверено на себе.
...и лишние гигабайт-полтора хаков.
Автор: kiruhs Oct 21 2011, 07:31
Цитата(Flaristan @ Oct 21 2011, 00:11)
Это вы еще новый год в Крыму не встречали.
Встречали
Цитата
...и лишние гигабайт-полтора хаков
Во времена скоростного интернета это не проблема
Автор: denis0k Oct 21 2011, 07:33
Цитата
Ахха, сурово. Постгрес-то ставить не хотят.
Более крупные проекты на мускле крутятся и ничего. Просто, во-первых, там ещё что-то навешивали на ту же машину без апгрейдов, и, во-вторых, софт там тоже редко обновляют. Сейчас просто, а в момент популярности нвн кулхацкеры задалбывали
То форум положат, то в админку залезут, то ддосят за бан подсети. Весёлые времена были, в общем.
Цитата
...и лишние гигабайт-полтора хаков.
В принципе, это уже ничего не решает. Дисковое пространство стоит копейки, а если хаков уже гиг без зимнего дубля, то на помегабайтовом трафике его всё равно качать особо никто не будет. За пределами мкада мегабайт стоит около 50-60 коп (хотя за Уралом и не в крупных городах думаю побольше).
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)