Здравствуйте, гость ( Вход | Регистрация )

5 страниц V < 1 2 3 4 > »   
Ответить в эту темуОткрыть новую тему
> карта мира
EL-GReeN
сообщение 3.10.2012, 23:33
Сообщение #21


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Ошибка с осью Z, написано "-128..127 units above/below sea level" а на самом деле без знаковый байт и чем больше тем глубже.(может в каких то файлах так и есть)
393,216 [Block]s sequentially теперь понятно, сбила с толку запятая (393216)
Идеальный вариант прицепить конечно дллку, но без документации к ним на это способны только програмёры, да и среда не особо мощная может просто не поддерживать что то.
А где можно почитать о UltimaUDK, на какой стадии разработка?
Вроде получилось, теперь бы еще придумать как это покрасивее отрисовать(IMG:style_emoticons/default/sad.gif)3 блока)
(IMG:http://imageshack.us/a/img96/3852/13131232.jpg)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 4.10.2012, 1:37
Сообщение #22


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(EL-GReeN @ 4.10.2012, 0:33) *
Ошибка с осью Z, написано "-128..127 units above/below sea level" а на самом деле без знаковый байт и чем больше тем глубже.(может в каких то файлах так и есть)
Я же говорил там ереси в описаниях навалом, но хуже всего ошибки... =) Но вообщем тут все зависит как его читать если как SBYTE то -128..127 если как BYTE то 0-255, но исторически сложилось что на всех серверах используется интервал -128..127, так что это для многих уже привычнее..

Цитата(EL-GReeN @ 4.10.2012, 0:33) *
Идеальный вариант прицепить конечно дллку, но без документации к ним на это способны только програмёры, да и среда не особо мощная может просто не поддерживать что то.
Она с открытым кодом, достаточно проста - один файл - один класс - один мулл (+ несколько общих). В большинстве случае все понятно из названий методов, единственное немного путанно сделана анимация и карта. Для карты надо смотреть TileMatrix он объединяет в себе как мулы статики так и карты, а вот сам Map это уже описание карт и рендинг "миникарты" в битмап, ну а с анимацией не очень хорошо вышло из-за того что они зачем-то растащили ее на разные классы один "просмотрщик" другой "редактор" и между ними надо вечно скакать... )))

ЗЫ а что за среда? советовал бы устроить хард тест оч велика вероятность что у нее будет падение фпс до 0 при большом числе тайлов (в уо очень много тайлов на сцену)... Кроме того камнем предкновения может стать окраска предметов, прозрачность, свет и прочие эффекты.

Цитата(EL-GReeN @ 4.10.2012, 0:33) *
А где можно почитать о UltimaUDK, на какой стадии разработка?
Вернее EssenceUDK (Ultima Developer Kit). Проект молодой, сама идея родилась недели 3 назад... В общем его можно охарактеризовать как движок UO, API для работы с мулами и набор компонентов... Основная цель - предоставить гибкий и удобный инструментарий для создания собственного ПО и контролов для работы с УО. На данный момент параллельно с ним ведется разработка на его базе библиотеки контролов, аналога Fiddler'а и генератора карт, в будущем также в планах портирование редактора карт CentrEd+ и если движок окажется достаточно быстрым то и альтернативный клиент... Все пишется на C#4.0 под WPF. Почитать можно будет у нас на сайте dev.uoquint.ru, когда появится что-то достаточно завершенное, пока не вижу смысла замарачиваться т.к. интерес представляет только для разрабов которых всеравно нет (((

ЗЫ пара скринов на затравку:
(IMG:http://rghost.ru/40726837/thumb.png) (IMG:http://rghost.ru/40726841/thumb.png)
Все это приложение написано 3мя строчками кода:
Код
                // now we need create base uo data storage class, it base class we will use to do any work with uo data, so generally we need to store it as static.
                // but just now for testing we dont do it. (Remember shilw we will write controls in EsseceUDK.Add-ins we need to get manager at EsseceUDK assembly)
                var manager = new UODataManager(new Uri(clients[0].DirectoryPath), UODataType.ClassicAdventuresOnHighSeas, UOLang.Russian, false);

                // ok, we get manager just now let get tiles and set them as sourse to our list. Yeh, it's really simple)
                tileItemView1.ItemsSource = manager.GetItemTile(TileFlag.Wall); // lets get all walls to look throw

                // just now we use same souce for binding to differen controls. So we represent different data viewer for same data.
                var lands = manager.GetLandTile(TileFlag.None).Where(t => t.TileId < 1000); // just now we get first 1000 valid lands for testing (we dont take care what is this)
                tileLandView1.ItemsSource = lands;
                tileTexmView1.ItemsSource = lands;

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

В коде выше к свойствам исоточника данных контролов tileItemView1 и tileLandView1 просто присваиваются колекиции описывающие тайлы, пример модели объекта LandData. Как видно объединяет в себе данные из тайлдаты, артмула, текстмапов, клилока и все это еще модифицированное дифами при загрузке... Собственно также идет и редактирование просто меняем нужное нам свойство и все автоматом сохраняется....
Код
    public sealed class ModelLandData : UOBaseViewModel, ILandTile, ILandData
    {
        #region Declarations
        private readonly ILandTile _data;
        #endregion

        #region Properties
        public uint TileId { get { return _data.TileId; } set { _data.TileId = value; RaisePropertyChanged(() => TileId); } }
        public bool IsValid { get { return _data.IsValid; } }
        public ISurface Surface { get { return _data.Surface; } set { _data.Surface = value; RaisePropertyChanged(() => Surface); } }
        public ISurface Texture { get { return _data.Texture; } set { _data.Texture = value; RaisePropertyChanged(() => Texture); } }
        public string Name { get { return _data.Name; } set { _data.Name = value; RaisePropertyChanged(() => Name); } }
        public TileFlag Flags { get { return _data.Flags; } set { _data.Flags = value; RaisePropertyChanged(() => Flags); } }
        public ushort TexID { get { return _data.TexID; } set { _data.TexID = value; RaisePropertyChanged(() => TexID); } }        
        #endregion

        #region Ctor
        public ModelLandData(ILandTile data)
        {
            _data = data;
        }
        #endregion
    }


Сообщение отредактировал StaticZ - 4.10.2012, 1:52


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 22.11.2013, 20:28
Сообщение #23


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Цитата
3.8 MAP0.MUL

This file holds all the base-level terrain, and doesn't look too pretty without the static data.

The map is stored as a 768x512 matrix of blocks. A block is basically a 8x8 matrix of cells. Each individual cell contains data about the tile for that cell, and the cell's altitude. Therefore, the entire map is 6144x4096 individual cells in size.

Blocks are loaded top-to-bottom then left-to-right. Cells are loaded from blocks left-to-right then top-to-bottom.

The formula used to locate an individual CELL in the file is a little complex, since you have to work out what block it is in...

If you refer to the map in blocks, then there's 512 blocks down, by 768 blocks across.

XBlock = Int(XPos/8)
YBlock = Int(YPos/8)
Block Number = (XBlock * 512) + YBlock
MAP0 (37,748,736 bytes)

393,216 [Block]s sequentially, Block = 196 bytes
DWORD header, unknown content
64 Cells
Cell (3 bytes)
0 1 2
Color Alt

UWORD cell graphic (which can be looked up in RADARCOL).
BYTE Altitude (-128..127 units above/below sea level).

Помогите вычислить номер тайла в блоке, что то не доходит как это делается.
Блок 8х8 загрузить получилось:
Код

XBlock=floor(1415/8) // Х блока
YBlock=floor(1700/8) // У блока
BlockNumber=(XBlock * 512) + YBlock //номер блока

for (i=0;i<=195;i+=1){//1 блок = 196 байтам, цикл счетчик для чтения 196 байтов
file_bin_seek(map0,(BlockNumber*196)+i)//сдвиг метки чтения в файле
data[i]=file_bin_read_byte(map0) //чтение побайтово в массив
}

cnt=6
for (ii=1;ii<=8;ii+=1){
for (iii=1;iii<=8;iii+=1){
  tile[iii,ii]=data[cnt]
  cnt+=3
}
}

Результат массив tile[iii,ii] с высотой тайлов всего блока, но как определить высоту у определенного тайла?


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 23.11.2013, 3:04
Сообщение #24


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(EL-GReeN @ 22.11.2013, 21:28) *

Помогите вычислить номер тайла в блоке, что то не доходит как это делается.

Результат массив tile[iii,ii] с высотой тайлов всего блока, но как определить высоту у определенного тайла?

Блок это 8х8 тайлов, т.е. грубо говоря хедер (4 байта) и одномерный массив из 64 структур описывающих тайлы в этом блоке. Т.е. для тайла с координатами X,Y (от 0 до 7) индекс структуры в загруженном массиве равен 8 * X + Y (или 8 * Y + X - уже не помню). Сама структура каждого тайла состоит из 3х байт, где первые два байта это айдишник ленды из арт мула (от 0 до 0х3FFF), а последний байт собственно и есть высота. Значение хедера не выявлено, так что можете его просто игнорировать, хотя если вы хотите пересохранять мулы поли коректнее сохранять значения хедеров чтобы сохранить все в первозданном виде. Ну а дальше уже идет математика при помощи операций деления (/) и остатка от деления (%) определяются нужные вам координаты внутри блока.
К примеру для тайла с координатами XPos, YPos:

BlockIdx = XPos * 64 + YPos / 8
TileIdx = 8 * (X % 8) + Y % 8


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 23.11.2013, 19:59
Сообщение #25


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



XBlock=floor(1415/8) // Х блока
YBlock=floor(1700/8) // У блока
BlockNumber=(XBlock * 512) + YBlock //номер блока
BlockNumber==90324

8 * Y + X //тайл внутри блока х-2, у-1 нумерация 0-7
==10 //верно

BlockIdx = XPos1415 * 64 + YPos1700 / 8 //BlockIdx это номер блока?
BlockIdx==90772 //не совпадает с тем что выдает оригинальная конструкция с BlockNumber

TileIdx = 8 * (Y1700 % 8) + X1415 % 8 //номер внутри блока, нумерация х 0-6143 у 0-4095, то что нужно было)
TileIdx==39//верно

Спасибо!


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 23.11.2013, 21:04
Сообщение #26


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(EL-GReeN @ 23.11.2013, 20:59) *

BlockIdx = XPos1415 * 64 + YPos1700 / 8 //BlockIdx это номер блока?
BlockIdx==90772 //не совпадает с тем что выдает оригинальная конструкция с BlockNumber

Спасибо!

Всегда пожалуйста. Насчет BlockIdx верно эт номер блока. Виноват - не подумал увлекся математикой и забыл про округления, сократив выражение из-за чего и ошибки. Это тоже что вы и написали: BlockIdx = XPos / 8 * 512 + YPos / 8


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 25.11.2013, 18:03
Сообщение #27


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Как клиент УО сглаживает ландшафт?
У меня вот такие ужасы получаются:
(IMG:http://data3.floomby.com/files/previews/25_11_2013/TrwGa451I0WckWekpfUYDw.jpg)

Может кроме высоты тайлов есть еще высоты углов тайлов где то в файлах?

Пример алгоритма ужаса:
Верхний угол это: (X координата тайла в мире) (Y координата тайла в мире - 24 + (средняя величина высоты текущего тайла и тайла выше / 5))


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 25.11.2013, 21:59
Сообщение #28


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Чето вы в какую-то ересь подались. Все куда проще - высота тайла это высота верхнего угла грида поверхности, т.е. чтобы найти координаты всех тайлов - надо смотреть высоты соседних тайлов. Инкримент по Z если мне память не изменяет равен 4 пикселям. Что касается сглаживания самих тайлов то там какой-то особый алгоритм - там рисуется все ручками через GDI\DirectDraw, причем так что острые углы немного сглаживаются, чтобы понять о чем я - сравните скрины например сентрада и клиента - там на границах перехода тайлов в текстуры заметно отсутствие сглаживания. Но для начала можно на сглаживание забить, если сделаете без него будет уже круто -)

Сообщение отредактировал StaticZ - 25.11.2013, 22:00


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 26.11.2013, 9:58
Сообщение #29


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Я наверно плохо объяснил про какое сглаживание, сглаживание ландшафта тайлов, а не тукстур.
Сейчас правильно считываются и отрисовываются тайлы используя текстуру и высоту, в 2D, то есть глобально есть только X Y без координаты высоты Z, высота эмитируется прибавлением высоты тайла к его координате Y(вертикаль).
При отрисовке текстуры отдельного тайла используются 4 точки(1я верх, 2я правая, 3я нижняя, 4я левая, это 4 угла тайла), каждая с XY рассчитанные от глобальных координат тайла.
(глобальные координаты не то же самое что XY тайла в уо, например X если грубо это количество тайлов по горизонтали * 48, и используется для отрисовки и удобства некоторых вычислений)
1 тайл состоит из:
XY в UO
XY глобальные в движке
Текстуру
Высоту
Этот набор расфасован по массивам, но одновременно в массивах находятся только тайлы которые видно.
Без сглаживания ландшафта это выглядит так(Брит банк):
(IMG:http://data3.floomby.com/files/previews/26_11_2013/ic2Gs0D0EaD8wMOZsv8g.jpg)

Сделал как вы написали, для текущего тайла высота каждой отдельной точки из 4х это среднее от высоты соседних тайлов(1+3):
(IMG:http://data3.floomby.com/files/previews/26_11_2013/DvHUqZPGC0mUUowA3nGuFQ.jpg)

В честь этой маленькой победы (IMG:style_emoticons/default/smile.gif) скомпилировал результат (управление на стрелках): http://yadi.sk/d/1mN6r6B_DKv2D
Заодно можно сверить fps, у меня в 800х600 - 51, это при том что оно не оптимизировано.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 27.11.2014, 15:19
Сообщение #30


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Что добавили в новые map0.mul?
Просто вот подгрузил от МЛ а она там больше (85мб вместо 37мб) и что странно работает так же вроде.

Еще вопрос про самую проработанную map0.mul без дырок с вшитыми патчами, где бы на опыты такую взять?


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 27.11.2014, 18:46
Сообщение #31


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(EL-GReeN @ 27.11.2014, 15:19) *

Что добавили в новые map0.mul?
Просто вот подгрузил от МЛ а она там больше (85мб вместо 37мб) и что странно работает так же вроде.
Чего-то Вы путаете она 89 915 392 байт, вместо 77 070 336. Ничего там не добавили просто изменили размер с 768 x 512 блоков до 896 x 512. Работает также т.к. блоки идут сначала по X, а потом по Y, в результате у вас просто не считывается добавленный кусок справа.

Цитата(EL-GReeN @ 27.11.2014, 15:19) *
Еще вопрос про самую проработанную map0.mul без дырок с вшитыми патчами, где бы на опыты такую взять?
Не сказал бы что она самая проработанная, скорее даже на оборот - со временем она стала самая корявая. О каких дырках вы говорите я вообще не понял, ну а вшить диф патчи в мулы можно при помощи того же фидлера. В принципе можно и самому сделать, благо там делать нечего - считываем idx и блоки, карт\статики и патчей, для карт тупо замещаем блоки, а для статики добавляем в конец, обновляя при этом оффсеты ну и конечно обновляем данные в idx таблице. Ну а дальше по хорошему надо еще дефрегментацию сделать, можно тупо пересохранить и пересчитав офсеты ну или при помощи того же фидлера.


Цитата(EL-GReeN @ 26.11.2013, 9:58) *
В честь этой маленькой победы (IMG:style_emoticons/default/smile.gif) скомпилировал результат (управление на стрелках): http://yadi.sk/d/1mN6r6B_DKv2D
Заодно можно сверить fps, у меня в 800х600 - 51, это при том что оно не оптимизировано.
Безумно мало, даже если рисовка идет стандартными средствами GDI. Основная нагрузка на рендер идет за счет статики и анимации. Вообще если речь идет про GDI, DirectDraw или что-то в этом роде, то обязательно нужна частичное обновление экрана иначе никакое железо не потянет это. Ну а если это openGL или Direct3d, то у вас явно чето не то при рендинге, типа постоянного создания текстур.

Сообщение отредактировал StaticZ - 27.11.2014, 18:48


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 1.12.2014, 18:05
Сообщение #32


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Цитата(StaticZ @ 27.11.2014, 18:46) *

Чего-то Вы путаете она 89 915 392 байт, вместо 77 070 336. Ничего там не добавили просто изменили размер с 768 x 512 блоков до 896 x 512. Работает также т.к. блоки идут сначала по X, а потом по Y, в результате у вас просто не считывается добавленный кусок справа.

Не сказал бы что она самая проработанная, скорее даже на оборот - со временем она стала самая корявая. О каких дырках вы говорите я вообще не понял, ну а вшить диф патчи в мулы можно при помощи того же фидлера. В принципе можно и самому сделать, благо там делать нечего - считываем idx и блоки, карт\статики и патчей, для карт тупо замещаем блоки, а для статики добавляем в конец, обновляя при этом оффсеты ну и конечно обновляем данные в idx таблице. Ну а дальше по хорошему надо еще дефрегментацию сделать, можно тупо пересохранить и пересчитав офсеты ну или при помощи того же фидлера.
Безумно мало, даже если рисовка идет стандартными средствами GDI. Основная нагрузка на рендер идет за счет статики и анимации. Вообще если речь идет про GDI, DirectDraw или что-то в этом роде, то обязательно нужна частичное обновление экрана иначе никакое железо не потянет это. Ну а если это openGL или Direct3d, то у вас явно чето не то при рендинге, типа постоянного создания текстур.

Так написано в свойствах 85,7 МБ (89 915 392 байт), по блокам понятно, спасибо.
http://uo.stratics.com/heptazane/fileformats.shtml#3.8 - "MAP0 (37,748,736 bytes)"

Насчет проработанности не имел ввиду что она самая проработанная. Из тех что есть в природе на разных шардах какая самая качественная фелюка? или можно взять с последней версии офф клиента где еще использовались мулы.
Раньше часто встречались текстуры тайлов не на месте(выглядело именно как дырки), или кривости высоты.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 1.12.2014, 20:45
Сообщение #33


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(EL-GReeN @ 1.12.2014, 18:05) *

Так написано в свойствах 85,7 МБ (89 915 392 байт), по блокам понятно, спасибо.
http://uo.stratics.com/heptazane/fileformats.shtml#3.8 - "MAP0 (37,748,736 bytes)"

хрень там написана. Посчитайте сами 512х768х196 (число блоков на размеры одного блока) = 77,070,336. но не как 37 мб... Вообще в том гайде ошибок дохрена, даже на уровне описания форматов. Уже не помню где именно но пару крупных ляпов и ошибок я там в свое время находил. Так что советую относиться к нему несколько критично, а не брать все слепо на веру )



Цитата(EL-GReeN @ 1.12.2014, 18:05) *
Насчет проработанности не имел ввиду что она самая проработанная. Из тех что есть в природе на разных шардах какая самая качественная фелюка?
Гм... Ну те кто не занимаются декором\строительством у тех карта ничем не отличается от осишной, а кто занимается... тут уже не совсем фелюка и вопрос скорее вкусов )


Цитата(EL-GReeN @ 1.12.2014, 18:05) *
Раньше часто встречались текстуры тайлов не на месте(выглядело именно как дырки), или кривости высоты.
Ну ети ляпы из-за того что ОСИ сначала решила сделать ставку под 3д клиент а потом под КР и енчант... Под классик скорее всего ресурсы получаются тупым конвертированием... Так что исходя из этого в древних клиентах карта должна быть получше, однако них карта отличается от той что в новых.... Вообще вопрос странный - если вы делаете для игроков\админов то они полюбому будут брать мулы используемые на том сервере, т.к. лучше кривые текстуры чем спотыкаться о невидимые препятствия... Если же вы делаете собственный сервер, то надо отталкиваться от того что именно вам нужно, да и в принципе такие мелочи наверное проще самому подправить со временем чем сидеть изучая мулы сотни клиентов )


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 15.1.2015, 0:14
Сообщение #34


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(EL-GReeN @ 26.11.2013, 9:58) *
В честь этой маленькой победы (IMG:style_emoticons/default/smile.gif) скомпилировал результат (управление на стрелках): http://yadi.sk/d/1mN6r6B_DKv2D
Заодно можно сверить fps, у меня в 800х600 - 51, это при том что оно не оптимизировано.


Сделал сегодня побыстрому нечто подобное, подробнее в соседней теме. Если интересно можете поковырять сорсы, там в принципе кода мало.

(IMG:http://www.kachalka.com/images/jz8uj7dhm6u6vpx4xks7.png)


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 16.1.2015, 18:21
Сообщение #35


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Я вот в октябре импортнул в юнити карту высот, дальше пока не продвигаюсь, жду локализации документации юнити(ну по крайней мере так самооправдываюсь в лени).
Если подумать, то получается делать уо2 из ресурсов уо не приемлемо если подразумевается монетизация, потому что права как ни крути у кого то есть на уо(вроде у EA).
Значит нужно делать что то похожее, очертания мира, изменение названий всего, свои или свободные ресурсы, и что бы это нечто выглядело более менее придется разбираться с шейдерами и своим движком, или использовать юнити, свой движок слишком сложно делать с современной картинкой.
(IMG:http://data3.floomby.com/files/share/18_10_2014/21/iqs1M7g9rE6eaV1So6Jdw.jpg)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 16.1.2015, 22:06
Сообщение #36


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(EL-GReeN @ 16.1.2015, 18:21) *

Я вот в октябре импортнул в юнити карту высот, дальше пока не продвигаюсь, жду локализации документации юнити(ну по крайней мере так самооправдываюсь в лени).
Если подумать, то получается делать уо2 из ресурсов уо не приемлемо если подразумевается монетизация, потому что права как ни крути у кого то есть на уо(вроде у EA).
Значит нужно делать что то похожее, очертания мира, изменение названий всего, свои или свободные ресурсы, и что бы это нечто выглядело более менее придется разбираться с шейдерами и своим движком, или использовать юнити, свой движок слишком сложно делать с современной картинкой.
(IMG:http://data3.floomby.com/files/share/18_10_2014/21/iqs1M7g9rE6eaV1So6Jdw.jpg)
Если делать свою игру то по любому достичь хорошей картинки будет сложно и дорого, ведь помимо движка еще нужно нарисовать тысячи, если не десятки тысяч моделей и текстур, и анимировать сотни из них. Причем все нужно оптимизировать, на что уйдет куча времени если нет реального опыта подобных разработок, ибо не один движок не потянет кучу полигонов. А если делать 2д уровня того же UO то придется не слабо повозиться с движком, ибо сейчас движки не рассчитаны под такое засилие спрайтов, как в UO (видел я такую UO на юнити 1-2 фпс без шуток). А вместе с игрой придется и свой сервер писать еще, для комерческого использования ни ранка ни сфера не прокатят - они тупо не смогут выдержать приличный онлайн. Ну и главное в результате всего трудозатраты могут даже и не окупиться, у подобного проекта вообще высокий шанс свернутся еще до релиза...

Кстати графика того же же дико популярного майнкрафта на фоне UO смотрится как полное убожество. Есть и куча других ММО с графикой куда хуже UO и пользующихся популярностью. В прочем и современный клиент UO ситуацию почти не изменил, так что проблема не в графике (хотя да без спорно классический клиент давно покрылся слоем пыли, виной чему низкие разрешения и отвратный GUI).

Сообщение отредактировал StaticZ - 16.1.2015, 22:07


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Warstone
сообщение 16.1.2015, 23:58
Сообщение #37


*********

Группа: Модераторы
Наличность: 0
Пользователь №: 10.905
Возраст: 25



Раскопайте исходники Iris'а. Думаю что много мешей там уже есть.


--------------------
Do. Or do not. There is no Try!
© Master Joda, Dagobah, Star Wars: Episode V.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 17.1.2015, 0:18
Сообщение #38


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(Warstone @ 16.1.2015, 23:58) *

Раскопайте исходники Iris'а. Думаю что много мешей там уже есть.
Проще самом клиент написать с нуля чем разобраться в сорсах ирисах xD Мнение кстати не только мое но и всех знакомых кто пытался там ковыряться...


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
EL-GReeN
сообщение 23.1.2015, 20:43
Сообщение #39


*****

Journeyman
Сообщений: 474
Регистрация: 18.7.2011
Группа: Пользователи
Наличность: 0
Из: Россия
Пользователь №: 13.815
Возраст: 32



Есть какой софт в котором можно получить полную карту в виде .bmp без высоты и статики?
(при тайле в 32 получится примерно 196608х131072 пикселей)


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
StaticZ
сообщение 24.1.2015, 0:23
Сообщение #40


*********

Разработчик проекта "Квинтэссенция"
Сообщений: 2.155
Регистрация: 15.6.2009
Группа: Пользователи
Наличность: 0
Из: РФ, Москва
Пользователь №: 11.948



Цитата(EL-GReeN @ 23.1.2015, 20:43) *

Есть какой софт в котором можно получить полную карту в виде .bmp без высоты и статики?
(при тайле в 32 получится примерно 196608х131072 пикселей)
А для чего оно Вам? это ни много ни мало а 98 GB, если все же исхитриться и сохранить в 16 битах (не уверен позволяет ли это формат), то выйдет 49 GB. Ни одна 32х разрядная программа в принципе не сможет открыть такой огромный файл, да и х64 скорее всего впадут в ступор, т.к. тупо не рассчитаны такое. Я сейчас сам мучаюсь уже с файлами 12288х8192, даже при этом редакторы подвисают и периодически вылетают, да и оперативы жрут по 30 GB....


Ну а так вообще можно сделать при помощи Essence UDK (скрины из которого кидал выше, собственно как раз для этого я его этим и занимался), есть как гуищный интерфейс так и через консольное приложение. Позволяет сохранять любую область карты в повернутой проекции с разрешением от 1х1 до 16х16 пикселей на тайл (больше нельзя из-за оптимизации отрисовки, что сразу сжимает тайлы в 2 раза, для устранения артефактов от поворота без интерполяции). Если нужен не повернутый вариант, то либо можно потом повернуть в любом ПО по работе с изображениями на 45 градусов ну или при желании сделать по аналогии (там по сути идентично все, нужно лишь пересчитать координаты блоков и заменить вызовы методов плоского рендера на аналогичные для Oblique)..

Была также какая-то древняя тулса MapRender или что-то в этом роде, но помниться она крайне капризная и часто выдает какой-то треш, то одно не прорисовывает то другое, в одном разрешении нормально в другом черные дырки и тд. В свое время замучался кое как удалось отрендерить ей кусок карты, но замучался )


Ну а что касается получение карты без статики то либо самому немного подправить ручками либо просто подсунуть пустую статику (если лень замарачиваться можно тупо сгенерить пустой IDX файл нужного размера через EssenceUDK.Tools)

Сообщение отредактировал StaticZ - 24.1.2015, 0:51


--------------------
RP сервер UO: Quintessence, а также ПО: EssenceUCS, EssenceUDK, CentrEd+, Fiddler+ и др.
Game isn't a dream, it is the reality, reality which is coming while we dream...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

5 страниц V < 1 2 3 4 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 19.3.2024, 6:34
Designed by Nickostyle