[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Форум Panda3D - по русски » Panda3D » Общие вопросы » отрисовка мира в MMORPG
отрисовка мира в MMORPG
unkierДата: Вторник, 13.07.2010, 17:34 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
интересно мне какие вообще существуют подходы к отрисовке большого мира (в mmorpg) и в частности интересно какие из существующих открытых движков наиболее для таких целей пригодны.

пока на ум приходит только один способ. деление на некие зоны которые подгружаются и выгружаются по необходимости. а как происходит деление ? зоны 2х мерные или 3х ? в том же wow мир довольно плоский и даже подземелья вниз не глубоко уходят, наверно нет смысла делать 3х мерные зоны.

на панде mmorpg есть зарелизенные. наверно что то готовое для решения этих проблем есть ?

P.S. смотрю доки по CrystalSpace. тут есть специальный Zone Manager. The zone manager is a powerful property class that manages dynamic loading (loading of the map files that are required at a given time in the game)

 
BlackCatДата: Среда, 14.07.2010, 00:56 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 144
Награды: 0
Репутация: 1
Статус: Offline
Та же Lineage 2 работает на Unreal Engine какой-то там версии. И там все вполне нормально с зональным делением. Подземелья там просто отдельной локацией реализованы, что, имхо, самое правильное. Думаю, что в ВоВе точно такой же подход.

http://alphahole.do.am - версия 0.015 вышла 22.02.10
 
unkierДата: Среда, 14.07.2010, 10:38 | Сообщение # 3
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
Unreal Engine и всё такое это. я не сомневаюсь что это можно к любому движку прикрутить, вопрос лишь - какой ценой. какието движки к этому более готовы, какие то менее. вот и интересно как такое сделать в панде ?
 
ninthДата: Среда, 14.07.2010, 16:28 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Чего-то готового я в панде не видел, всё же панда не совсем конструктор - реализация разбиения мира на совести программиста. Панда - двиг, претендующий на универсальность, а разбиение карты довольно специфичная штука.
Самый стандартный и, наверное, простой вариант - подгрузка ресурсов, по мере приближения. Т.е. у нас есть некий рельеф и некоторая дистанция (range), на которой видит камера, рельеф не трогаем, догружаем объекты окружения при приближении к ним и выкидываем при удалении, но за пределами видимости камеры, причём самые дальние по-хорошему используют лоды и даже спрайты. Если площадь очень большая, то рельеф тоже придётся бить на куски, но это не так сложно и менее ресурсоёмко, чем, допустим, грузить целый кусок локации.
 
unkierДата: Среда, 14.07.2010, 20:01 | Сообщение # 5
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
ну короче нужно своей некий ZoneManager реализовать с нуля. наверно покурю это http://www.panda3d.org/manual/index.php/Terrain на предмет собственного terrain generator`а для начала.
 
ninthДата: Среда, 14.07.2010, 20:06 | Сообщение # 6
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
А чем существующий террайн не устраивает? Ведь террайн - это по-сути всего лишь фон и его в итоге почти не видно под другими объектами.
 
unkierДата: Среда, 14.07.2010, 20:16 | Сообщение # 7
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
я подумал для очень большого мира существующий терраин генератор (который по карте высот землю строит) не очень подходит ? я не прав ? просто создать гигантскую карту высот с запасом на все времена и на ней всё делать ? в принципе вариант. только как дизайнерам этой картой работать. внутриигрового редактора нет ?

и еще. а как в земле сделать дырку ? вспомните например в сталкере бункер где Сидорович сидит. что то типа того.

Сообщение отредактировал unkier - Среда, 14.07.2010, 20:32
 
ninthДата: Четверг, 15.07.2010, 07:54 | Сообщение # 8
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Если нужны "дыры", пещеры и пр. без отдельной загрузки, тогда карта высот вообще не вариант, если не нужны (в линейке вроде нормально без "дыр" живут, в варике - не помню), то что мешает разбить карту высот на нужное количество квадратов? Какие-то наброски редактора я в direct видел, но он похоже он находится на очень ранней стадии разработки
 
unkierДата: Четверг, 15.07.2010, 10:36 | Сообщение # 9
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
а почему карта высот не вариант ? ведь в итоге из нее строится тупо меш. почему нельзя сделать что в нужных местах в этом мэше дырка и к этой дырке прикреплен другой мэш который например нарисован уже в 3д редакторе и это пещера...
в вове не знаю как сделано, но подвальчики и всякие пещерки там есть. может земля там особый меш для которого границы видимости особым образом определяются....
да, редактор нашел случайно в коде. всё сыро/заброшено. но для примера взять можно.
 
ninthДата: Четверг, 15.07.2010, 13:13 | Сообщение # 10
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Quote (unkier)
почему нельзя сделать что в нужных местах в этом мэше дырка и к этой дырке прикреплен другой мэш

Как ты дашь понять к каким вершинам меша лепиться карте высот? Да и если делать кастомную карту высот, то наверно придётся делать на сях - питон слабоват будет для обработки большого кол-ва вершин (если конечно планируется перестроение поверхности)
 
unkierДата: Четверг, 15.07.2010, 13:52 | Сообщение # 11
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
в общем. как это мне видится.
1. земля. это мэш который загружается/сохраняется в/из карты высот. плюс предусмотреть какое то особое значение высоты которое будет означать что этой вершины нет и тут должна быть дырка. всё это безобразие в остальном должно работать как GeoMipTerrain. только хотелось бы уметь править ландшафт внутри игры.
2. все остальные статические обьекты карты, дома, деревья, подземелья, подвалы - это обычные мэши. показывать/скрывать их нада в зависимости от удаленности до наблюдателя.

какие еще варианты ?

 
ninthДата: Четверг, 15.07.2010, 14:13 | Сообщение # 12
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
Наложить на гео террайн карту прозрачности )
 
unkierДата: Четверг, 15.07.2010, 14:25 | Сообщение # 13
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
это нормальное решение ? не костыль ?
 
ninthДата: Четверг, 15.07.2010, 16:53 | Сообщение # 14
Admin
Группа: Администраторы
Сообщений: 1555
Награды: 5
Репутация: 46
Статус: Offline
По - сути всё это костыль ) Но, думаю, что с картой прозрачности будет работать быстрее чем кастом на питоне, если конечно вы не хотите на сях переписывать. Если дыры и беззагрузочный переход в них так важны, то лучше уж тогда поверхность затайливать мешами, и работать как с прочими объектами - подгружать по мере надобности, хотя работы моделлерам будет больше, но зато можно какой душе угодно ландшафт делать
 
unkierДата: Четверг, 15.07.2010, 18:06 | Сообщение # 15
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
на сях то не проблема если надо. террайны которые в поставке так и так на сях реализованы. а костыли это плохо, они выходят боком.
дак всё таки как сделать чтобы выполнялись требования и без костылей ?
для примера беру игру 5 летней давности, мой любимый вов.
в части красот вов кстати довольно скромен. вся геометрия низко полигональная, вся выглядит красиво благодаря хорошим текстурам. но там есть и реки, и здания с подвалами и.т.д.
мысль проста. например я хочу сделать world of warcraft. что нужно допилить в панде чтобы его сделать ?


Сообщение отредактировал unkier - Четверг, 15.07.2010, 18:21
 
Форум Panda3D - по русски » Panda3D » Общие вопросы » отрисовка мира в MMORPG
Страница 1 из 212»
Поиск: