отрисовка мира в 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
Группа: Администраторы
Сообщений: 1582
Награды: 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
Группа: Администраторы
Сообщений: 1582
Награды: 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
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Если нужны "дыры", пещеры и пр. без отдельной загрузки, тогда карта высот вообще не вариант, если не нужны (в линейке вроде нормально без "дыр" живут, в варике - не помню), то что мешает разбить карту высот на нужное количество квадратов? Какие-то наброски редактора я в direct видел, но он похоже он находится на очень ранней стадии разработки
|
|
| |
unkier | Дата: Четверг, 15.07.2010, 10:36 | Сообщение # 9 |
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
| а почему карта высот не вариант ? ведь в итоге из нее строится тупо меш. почему нельзя сделать что в нужных местах в этом мэше дырка и к этой дырке прикреплен другой мэш который например нарисован уже в 3д редакторе и это пещера... в вове не знаю как сделано, но подвальчики и всякие пещерки там есть. может земля там особый меш для которого границы видимости особым образом определяются.... да, редактор нашел случайно в коде. всё сыро/заброшено. но для примера взять можно.
|
|
| |
ninth | Дата: Четверг, 15.07.2010, 13:13 | Сообщение # 10 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 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
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| Наложить на гео террайн карту прозрачности )
|
|
| |
unkier | Дата: Четверг, 15.07.2010, 14:25 | Сообщение # 13 |
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
| это нормальное решение ? не костыль ?
|
|
| |
ninth | Дата: Четверг, 15.07.2010, 16:53 | Сообщение # 14 |
Admin
Группа: Администраторы
Сообщений: 1582
Награды: 5
Репутация: 46
Статус: Offline
| По - сути всё это костыль ) Но, думаю, что с картой прозрачности будет работать быстрее чем кастом на питоне, если конечно вы не хотите на сях переписывать. Если дыры и беззагрузочный переход в них так важны, то лучше уж тогда поверхность затайливать мешами, и работать как с прочими объектами - подгружать по мере надобности, хотя работы моделлерам будет больше, но зато можно какой душе угодно ландшафт делать
|
|
| |
unkier | Дата: Четверг, 15.07.2010, 18:06 | Сообщение # 15 |
Лейтенант
Группа: Пользователи
Сообщений: 55
Награды: 0
Репутация: 2
Статус: Offline
| на сях то не проблема если надо. террайны которые в поставке так и так на сях реализованы. а костыли это плохо, они выходят боком. дак всё таки как сделать чтобы выполнялись требования и без костылей ? для примера беру игру 5 летней давности, мой любимый вов. в части красот вов кстати довольно скромен. вся геометрия низко полигональная, вся выглядит красиво благодаря хорошим текстурам. но там есть и реки, и здания с подвалами и.т.д. мысль проста. например я хочу сделать world of warcraft. что нужно допилить в панде чтобы его сделать ?
Сообщение отредактировал unkier - Четверг, 15.07.2010, 18:21 |
|
| |