Главная Новые сообщения Регистрация Правила Поиск
UO: Квинтэссенция - Форумы
Страница 27 из 28«1225262728»
Модератор форума: M@X, Exorcist, Sa1nt 
Форум » Основной » Технический отдел » Новости разработки
Новости разработки
StaticZ Дата: Пятница, 2017.03.31, 02:35 | Сообщение # 521
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Цитата Makaveli ()
Необязательно, есть смысл из башни замка наблюдать о подходе вражеских войск например, или с маяка наблюдать за кораблями. Применение такому "обзору" можно много где найти.
Возможно применение найти и можно, но подобный обзор или должен подчиняться правилам той же системы видимости, что технически не возможно т.к. расчет на большие расстояния слишком ресурсоемкая задача. Или же подчиняться не должен и тогда вы будите стоя на той же башне наблюдать за движением войск через горный хребет или крепость и тд и тп, что ставит под сомнения сам принцип системы видимости. С морем проще так как это априори открытое пространство, где правилами системы видимости можно пренебречь, хотя и тут будут косяки, так скажем в подзорную трубу можно будет разглядеть корабль через горы на каком нибудь полуострове, но это все же единичные случаи, которыми можно пренебречь, в угоду повышения интересности мореплавания, ибо без подзорной трубы нарваться на чужое судно даже специально будет не просто.

Да и лишнее оно на суше, зачем занижать роль разведчиков, к тому же движение войск не повседневное событие.

Цитата Makaveli ()
Главное то, что речь не идет о трэкинге в его обычном УО понимании. Скорее наоборот. Просмотр крупных объектов, таких как судна, или войска, нежели конкретные мобайлы или игроки.

...
Цитата Makaveli ()
Речь не идет о том чтобы бегать за гз и "выслеживать" игроков, а скорее о системе охоты, чтобы выследить зверя, или обнаружить лагерь бандитов по их же следам

Может чего-то и не понимаю, но по моему одно противоречит другому. В любом случае, как подметил Cmex пока не до этого, да и это все настолько туманно и расплывчато, что я даже не могу себе примерно представить как это могло бы работать.


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
Спирт Дата: Вторник, 2017.05.02, 09:03 | Сообщение # 522
Legendary
Legendary
Сообщений: 689
Репутация: 5
Статус: Offline
тадам!


Флудокрафтер (=

* Радимир
* Молчан
 
Vikky Дата: Вторник, 2017.05.02, 23:38 | Сообщение # 523
Apprentice
Apprentice
Сообщений: 36
Репутация: 1
Статус: Offline
Цитата Спирт ()
тадам!

Парам-пам biggrin
 
StaticZ Дата: Среда, 2017.05.03, 21:30 | Сообщение # 524
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Над продолжением сейчас работаю, приношу извинения из-за проблем с работой был вынужден прерваться...

Но есть и хорошие новости - основной дизайн нового сайта уже фактически готов и сейчас идет верстка...


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
Спирт Дата: Четверг, 2017.05.04, 05:41 | Сообщение # 525
Legendary
Legendary
Сообщений: 689
Репутация: 5
Статус: Offline
айеее ((=


Флудокрафтер (=

* Радимир
* Молчан
 
Cmex Дата: Воскресенье, 2017.06.11, 03:42 | Сообщение # 526
Apprentice
Apprentice
Сообщений: 30
Репутация: 0
Статус: Offline
чет опять затишье )
 
Makaveli Дата: Понедельник, 2017.06.12, 05:54 | Сообщение # 527
Adept
Adept
Сообщений: 146
Репутация: 0
Статус: Offline
McDonald's или KFC?
 
StaticZ Дата: Вторник, 2017.06.20, 01:51 | Сообщение # 528
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Много воды утекло с тех самых пор и надо сказать не даром никто и нигде не реализовал ранее систему видимости для многоуровневой изометрии. После множества попыток и долгих размышлений пришлось отказаться от FoV в угоду LoS, хотя и не совсем стандартному, так как расчет видимости будет занимать всего дюжину машинных инструкций. Это хоть и вызывает опасения для перегруженных объектами сцен, но все таки в большинстве рядовых ситуаций куда менее громоздко чем расчет FoV. С двухмерным вариантом все легко и просто, есть множество алгоритмов и решений, с различными оптимизациями, суть которых в общем-то следует из того простого факта, что препятствие на линии обзора перекрывает целиком часть тайлов следующих за ним. Но в 3х мерном случае это работает лишь в случае сферической системы координат, что во первых крайне не удобна, так как вызывает множество проблем с преобразованием координат и расчетом перекрытием ячеек, во вторых не позволяет оптимизировать входные данные так как в отличии от декартовой системы координат, где точка отсчета может быть перемещена простым сдвигом по трем осям, тут придется выполнять перерасчет всей области. Есть и еще одна неприятная особенность - черезмерное возрастание размерности задачи и неравномерное покрытие области (это очевидно, так как размеры и объемы ячеек образуемых в данном пространстве зависят от радиуса). Так, что после некоторых попыток я решил отказаться от попыток решить задачу в сферической системе координат...


И занялся описанием модели для расчета задачи в цилиндрической системе координат, как своеобразный компромисс между декартовой и сферической системой координат и в результате это привело к созданию очень пухлого алгоритма, что одновременно работал во всех трех системах координат (в цилиндрической, сферической и декартовой)! Там было много условностей и грубых приближений особенно при расчетах по оси Z, так как его описание потребует нескольких страниц, то вдаваться в подробности не буду. Основная его идея заключалась в том, расчет видимости параллельно выполнялся в нескольких плоскостях, при этом каждый объект отбрасывал тень какой-то длинны на каком-то расстоянии от себя, что зависело от разности высот и удаления между наблюдателем, объектом и целью. Собственно и выходило, что в плоскости XY расчет ввелся в цилиндрической системе координат, а в плоскости ZR - в сферической, ну а так как сама игра работает в декартовой системе координат - все было так или иначе завязано на ней. Несмотря, на то что это звучит крайне дико и сложно, алгоритм выходил очень удачным и красивым, но к сожалению для UO он не подошел, так как из-за обилия допущений и упрощений он оказался крайне чувствителен к количеству "этажей". Этот алгоритм хорошо бы подошел для игр с геометрией вроде X-COM3, но не для UO, где стены могут висеть в воздухе между этажами в очень широком диапазоне высот от 0 до 256.


И снова пришлось начинать с чистого листа, поняв что традиционными способами задачу решить не удастся, я решил попытаться зайти совсем с другой стороны. Для этого я решил представить пространство в виде октановых деревьев. Суть данного представления заключается в том, что пространство представляется в виде дерева, в котором каждый узел делит пространство на восемь новых октантов до тех пор пока все пространство внутри узла не станет однородным, последние "узлы" принято называть листьями.


Выше для наглядности, показана схема построение октанового дерева и квадротомическое разбиение 2х мерного пространства для представления некоторой фигуры (квадротомическое дерево аналогично октановому, но служит не для 3х мерного, а для 2х мерного разбиения, соответственно и пространство разбивается на 4 квадрата, а не на 8 кубов). В случае, какого-то здания в UO выходит нечто в этом роде (цветами заштрихованы узлы различных уровней):


Тут конечно может сразу возникнуть вопрос, а для чего оно вообще надо? А дело как раз в том, что данное представление позволяет описать целые открытые области одним значением. Скажем если персонаж и цель находятся в одном синем квадрате за стенами здания, то и ничего рассчитывать не надо можно сразу сказать, что они видят друг друга. А если в соседних квадратах, то вместо того чтобы перебирать десятки тайлов, достаточно просто проверить 2 квадрата. Удобно неправда ли? Но как Вы наверное уже догадались, этот подход тоже стал тупиком, причиной тому послужило, то что мне так и не удалось добиться выигрыша при расчете видимости. Проблема заключается в не очень удобном представление данных (по сути чтобы найти нужный узел нужно перебирать все узлы дерева начиная с самого верхнего) ну и сложность при расчете узлов что находятся на линии видимости в целом нивелируют выигрыш при небольших расстояниях и высокой плотности декораций в игре.


Забраковав данную идею я решил представить пространство в виде BSP (Binary Space Partitioning) дерева. Данный подход в свое время хорошо зарекомендовал себя и применялся в множестве игр, например Doom2, DukeNukem3D, Quake, Quake2, Thief2, SystemShock2 и тд. Суть его заключается в том, что пространство делиться на выпуклые множества (сектора) соединенные между собой так называемыми порталами. Таким образом если какой-то портал находиться на линии видимости, то и сектор в которой он ведет тоже является видимым. Процесс разбиения выглядит следующим образом (представлен не до конца, а лишь для листьев F и G, разбиение узлов Е и C для краткости пропущено):


Тут уже начинается совсем высший пилотаж, так как даже классическое BSP дерево не применимо к нашему случаю, так что математику и тех часть опущу и перейду сразу к заключению. Которое, в общем-то оказалось приемлемым, но из-за сложности реализации и главное из-за статичности данного разбиения от этого подхода пришлось тоже отказаться. Под статичностью имеется в виду, что в случае изменении сцены очень сложно обновить дерево не рассчитывая его целиком, а это нужно, к примеру для тех же дверей, что имеют мерзкое обыкновение открываться и закрываться...


В результате от FoV пришлось полностью отказаться и вернуться к LoS, правда как я уже отметил выше крайне шустрой. Но об ее устройстве я расскажу как нибудь потом, а пока предлагаю всем желающим присоединиться к тестированию системы видимости. Так как ее доработкой и улучшением после внедрения на сервер и клиент будет заниматься уже крайне сложно, то тестировать и править ее надо именно сейчас. Ссылка для скачивания приложения приведена ниже, для запуска потребуется .Net Framework 4.6.2 и приличный компьютер, благо с оптимизацией не заморачивался. После запуска нажмите кнопку "Помощь" для получения дополнительной справки о работе с данным приложением. Сейчас надо рассмотреть различные игровые сценарии, выявить неточности LoS и подобрать параметры для положения глаз наблюдателя и цели. Тут следует пояснить - фактическое положение игрока совпадает с высотой пола на котором он стоит, но так как глаза у нас растут вроде бы не на пятках, то их положение находиться выше. Собственно значение положение глаз это и есть добавочная высота к фактической координате игрока. Размер стандартного этажа в UO равняется 20. Из составления пропорции размеров тайлов стены и модели человека следует, что высота последнего в районе 16. Аналогично положение цели это добавочная высота к положению цели. Тут надо отметить, что для разных существ и предметов она может отличаться.
Так же обращу внимание, на то что тайлы помечаются видимыми не в том случае если они видны сами, а в том случае если размещенный на них объект оказался видимым игроку.
Цель считается видимой, если на линии проведенной от игрока до цели не оказалось ни одного препятствия. Причем сама система оперирует ячейками с высотой равной 4, что в свою очередь может вызывать определенные искажения. Приложение также позволяет отображать ячейки формирующие линию видимости до цели с подсвечиванием заблокированных ячеек. Общий вид программы с демонстрацией данной возможности представлен ниже. Сразу приношу извинения за свою лень, по причине которой я использовал "глобальные горячие клавиши", в результате чего после запуска программы, например, в асе перестанет работать пробел (естественно после закрытия приложения все вернется на свои места). Ну и на всякий случай, виртуальный слой позволяет размещать объекты в воздухе, а фильтр высоты скрывать объекты выше или ниже определенной высоты. По хорошему, надо создать несколько сцен (карт), так как на одной сцене рассмотреть все возможные сценарии вряд ли удастся.

Скачать LoSGen rev 6379.43182

Прикрепления: 6959371.png(109Kb) · 3445206.png(32Kb) · 2954203.png(3Kb) · 3209811.png(1519Kb) · 0264780.png(55Kb) · losgen-build-63.tbz(81Kb)


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
StaticZ Дата: Среда, 2017.06.21, 03:27 | Сообщение # 529
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Во время тестирования обнаружил в ряде случаев проблему с симметричностью линии обзора, а так же через мерно "толстыми" линиями видимости. По этой причине слегка переработал алгоритм формирования линии видимости (см. рисунок ниже) и добавил алгоритм сглаживания (как все остальное он настраивается в самом приложении), ну и заодно немного доработал мелкие ляпы и кое что добавил для большего удобства.

PS При установке уровня сглаживания 0 - автоматически включается старый алгоритм, что пока заметно шустрее нового. Собственно теперь помимо значения положения глаз и цели нужно также определиться и с каким уровнем сглаживания будем работать...



Список изменений:
  • Виртуальный пол и блоки визуализирующие линию обзора, больше не мешают переджвижению.
  • Добавленна возможность быстрой телепортации на выбранный тайл (Ins)
  • Добавленны горячие клавиши для управлением фильтром высоты (+ и - с shift\control)
  • Реализовано сглаживание и выравнивание (V) линии видимости (+ и - с shift для изменения уровня чувствительности)
  • Добавлена английская локализация (определяется автоматически, можно переключить вручную - F9)


Скачать LoSGen rev 6381.05320
Прикрепления: 5322236.png(69Kb) · 2962377.tbz(85Kb)


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
StaticZ Дата: Среда, 2017.06.21, 22:16 | Сообщение # 530
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Аппроксимация вектора видимости дала ощутимый рост поля обзора, что лично мне импонирует куда больше, чем "жесткий" и честный расчет. Тем не менее с этим оказалась связанна достаточно мерзкая проблема, которую я заметил только сегодня - сглаживание вектора видимости приводило к геометрической асимметричности, что в ряде сценариев смотрелось прямо таки крайне не естественно (см. рисунок ниже с примером). Как говориться "Veni, vidi, vici", так что ниже ссылка на очередное обновление с исправлениями и небольшими вторичными доработками. Надо сказать, расчет правильной прямой попил не мало кровушки, хотя казалось бы, что может быть проще??




Список изменений:
  • Улучшена геометрическая симметричность линий видимости в режиме сглаживания и выравнивания
  • повышена скорость обновления экрана, а так же исправлена потенциальная ошибка приводящая к крашам в редких случаях
  • Увеличена скорость работы с виртуальным слоем и линией видимости
  • Добавлена возможность редактировать "параметры наблюдателя" средствами графического интерфейса
  • Хоткей для переключения языка изменен с F9 на F8 (мешает сильно при работе)

Скачать LoSGen rev 6381.39509
Прикрепления: 3630526.tbz(87Kb) · 6111195.png(59Kb)


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
StaticZ Дата: Суббота, 2017.06.24, 05:30 | Сообщение # 531
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Список изменений:
  • Поправлена сортировка тайлов
  • Тайлы отсекаемые фильтром высот исключаются из расчета видимости (хорошее ускорение на больших картах)
  • Поправлено выделение тайлов, теперь тайлы выбираются, только среди не отсекаемых фильтром высот
  • Добавлено сочетание клавиш "Alt"+"+" и "Alt"+"-" для изменения положения персонажа по оси Z с шагом 20
  • Устранена инертность движения и прокрутки экрана после отжатия кнопок возникаемая в случае если ПК не успевает обсчитывать все данные
  • Добавлено кэширование векторов видимости (крайне ощутимая оптимизация, снижающая нагрузку на CPU в разы)
  • Добавлена возможность размещать и удалять тайлы на выделенной площади (путем удержании ЛКМ и ПКМ)

Скачать LoSGen rev 6384-09573

Прикрепления: 4296287.tbz(89Kb) · 8227636.png(484Kb) · 7578706.png(492Kb) · 9644349.png(509Kb)


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
Greg Дата: Воскресенье, 2017.06.25, 18:23 | Сообщение # 532
Master
Master
Сообщений: 263
Репутация: 4
Статус: Offline
Это явно всё круто, но это всё точно зря.


И где то на земле есть те, кто твердо знают, что все таки существует один способ предсказать будущее - это создать его.
 
StaticZ Дата: Воскресенье, 2017.06.25, 19:09 | Сообщение # 533
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Почему же? Система видимости не какой-то сахар, а фундаментальная механика, что меняет сам игровой процесс. Возможность прятаться, уходить от погонь, устраивать засады, выслеживать жертвы, разведывать местность и многое другое теряет всякий смысл если препятствия никак не влияют на обзор. Да и сами битвы и приключения становятся куда интереснее, ведь никогда не знаешь, кто Вас поджидает за углом, не говоря уже о том что враги могут "подкрасться" с тыла, особенно если сами будите сломя голову нестись за кем-то...


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
StaticZ Дата: Пятница, 2017.07.14, 21:35 | Сообщение # 534
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Возможно ли сделать комбинированный список (ака Combo box) в серверном гампе? Мой ответ - ДА:

Прикрепления: 5352139.png(347Kb)


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
Спирт Дата: Суббота, 2017.07.15, 12:37 | Сообщение # 535
Legendary
Legendary
Сообщений: 689
Репутация: 5
Статус: Offline
хотьба пишется через Д (((=

Добавлено (2017.07.15, 12:37)
---------------------------------------------
честно говоря я даже не понимаю на сколько это круто (=



Флудокрафтер (=

* Радимир
* Молчан
 
StaticZ Дата: Суббота, 2017.07.15, 13:39 | Сообщение # 536
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Цитата Спирт ()
хотьба пишется через Д (((=
все не русский, кроме я... ))))

Цитата Спирт ()
честно говоря я даже не понимаю на сколько это круто (=
Круто или нет уж не знаю, но чего-то подобного нигде ранее лично я не встречал


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
Greg Дата: Суббота, 2017.07.15, 16:33 | Сообщение # 537
Master
Master
Сообщений: 263
Репутация: 4
Статус: Offline
Шрифт трудно читаем.


И где то на земле есть те, кто твердо знают, что все таки существует один способ предсказать будущее - это создать его.
 
StaticZ Дата: Суббота, 2017.07.15, 16:48 | Сообщение # 538
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Тут больше дело в контрасте цвета текста и фона, сглаживании и масштабе изображения, для сравнения тот же шрифт:



А вообще шрифтов будет несколько, так как оригинальные шрифты вообще полный ужас. Но про них чуть попозже расскажу и покажу, так как их внедрение еще в процессе.
Прикрепления: 4319010.png(191Kb)


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
Vikky Дата: Воскресенье, 2017.07.16, 22:54 | Сообщение # 539
Apprentice
Apprentice
Сообщений: 36
Репутация: 1
Статус: Offline
Это за пределами моего понимания - но выглядит круто biggrin
 
StaticZ Дата: Воскресенье, 2017.07.23, 20:16 | Сообщение # 540
Legendary
Legendary
Сообщений: 1648
Репутация: 38
Статус: Online
Насколько я понял это никому не интересно, но все таки порядка ради считаю необходимым своевременно предупредить об окончании и закрытии тестирования системы видимости в четверг (27.07)




Ну и на закуску, скрин из одной новой, реализованной на досуге системы, которая предназначена для создания разнообразных "заскриптованных" сцен. Тут же можно видеть и дальнейшее развитие идеи с контекстным меню, что теперь обзавелся рабочей полосой прокрутки и может отображать очень длинные списки:


Еще одним значимым нововведением стал ввод поддержки сервером мультиязычного текста, теперь все гампы и сообщения отсылаемые сервером клиенту выводятся на русском или английском языке, в зависимости от используемого клиентом языка (речь конечно об отсылаемом сервером тексте, а не о тексте, хранящемся в файлах локализации аля cliloc.enu). Технически присутствует возможность легкого добавления локализации и на других языках, как знать, возможно когда нибудь кто-то решиться заняться локализацией на суахили. Ну а пока можно лишь довольствоваться английской локализацией, которая осуществляется опытным профессиональным переводчиком - Makaveli, за что ему отдельное спасибо. Тоже меню, представленное выше, но уже при смене языка в клиенте на английский:


Подобная двуязычность будет затрагивать не только гампы, но и все остальное, например имена существ и имена NPC и предметов. (ЗЫ На скрине выше небольшая путаница с подписями мой косяк, заметил только сейчас)
Прикрепления: 4964193.png(179Kb) · 7081220.png(294Kb)


Game isn't a dream, it is the reality, reality which is coming while we dream...
 
Форум » Основной » Технический отдел » Новости разработки
Страница 27 из 28«1225262728»
Поиск:
Copyright 2009-2017 Quintessence. Все права защищены.
Используются технологии uCoz