Данные:
Каждая точка ландшафта (tilepoint) состоит из блока 7 байтов.
Число таких блоков еквивалентно Mx*My. (число всех тайлов в карте)
В эти 7 байт записывается:
short int: Высота земли:
C000h: минимальная высота (-16384)
2000h: высота равная нулю (ground level 0)
3FFFh: максимальная высота (+16383)
short int - Это короткая целочисленная
Короткие целочисленные размещаются используя 2 байта в "Little Endian" (зеркальном или хм.. перевёрнутом?) порядке.
Они близки к C++ "signed short" типу но их диапазон чисел от -16384 до 16383. Имеется ввиду что 2 верхних бита свободны для использования под флаг, например.
пример little endian - число 0x2151 в хексе представляется как 51 21
short int: уровень воды + привязка края карты (map edge boundary flag) *(см заметки)
4 бита: флаги*(см заметки)
4 бита: тип текстуры земли (трава, почва, камни)
1 байт: детали текстур (какая именно текстура из нескольких будет отрисовываться из нижнего левого угла квадрата тайла) (камни, дыры, кости,...). Получается что только часть этого байта используется для информации о деталях. Необходимо подробное изучение этого момента.
4 бита: тип текстуры клиффа (склоны? или как их назвать, в общем обрамление разных этажей ландшафта)
4 бита: высота слоя
*заметки:
Флаговые значения (выглядит как big endian):
0x4000 --> привязочный флаг 1 (тень генерируемая World Editor'ом на краях карты)
0x0010 --> флаг наклона (используется для установки наклона между двумя слоями)
0x0020 --> флаг проклятия (земля будет проклятой нежитью)
0x0040 --> флаг воды (включает воду)
0x0080 --> привязочный флаг 2 (используемый привязками камеры "camera bounds". Обычно устанавливается World Editor'ской привязочной "boundary" утилитой.)
Уровень воды:
Уровень воды хранится так же как уровень высоты земли. Высший бит (bit 15) используется для привязочного флага 1.
Пример информации одной точки тайла (Tilepoint):
51 21 00 62 56 84 13
51 21 --(little endian)--> 0x2151 --(hex-->dec)--> высота = 8529
00 62 --(little endian)--> 0x6200
(узнаем привязочный флаг)--> (0x6200 & 0xC000) = 0x4000 установка привязочного флага
(узнаем уровень воды)--> (0x6200 & 0x3FFF) = 0x2200 --(hex-->dec)--> уровень воды = 8704
56 --> 5 устанавливает оба флага воды и наклона (4+1), 6 говорит о том что тайлпоинт использует тайлсет земли #6 из набора тайлсетов (это подземелье)
84 --> означает что тайлпоинт использует детальную текстуру #132 (=0x084)
13 --> 1 означает тип клиффа #1 (из таблицы клиффов тайлсетов), 3 говорит о том что наша точка тайла располагается на 3ьем слое (layer)
Итоговая высота "final height" которую вы видите в редакторе WE расчитывается как:
(высота земли - 0x2000 + (слой - 2)*0x0200)/4
где "0x2000" это нулевой "ground zero" уровень земли, 2 это "layer zero" нулевой слой и "0x0200" это высота слоя
= (0x2151 - 0x2000 + 1*0x0200)/4
= (8529 - 8192 + 512)/4
= 212,25
Тайлсет
Обозначение
A
Ashenvale
B
Barrens
C
Felwood
D
Dungeon
F
Lordaeron Fall
G
Underground
L
Lordaeron Summer
N
Northrend
Q
Village Fall
V
Village
W
Lordaeron Winter
X
Dalaran
Y
Cityscape
Z
Sunken Ruins
I
Icecrown
J
Dalaran Ruins
O
Outland
K
Black Citadel
Точка воды "water level" которую вы видите в WE расчитывается:
(уровень воды - 0x2000)/4 - 89.6
где "0x2000" это нулевой"ground zero" уровень земли, -89.6 это нулевой уровень воды (данный в water.slk файле, высота = -0,7 --> water_zero_level = -0,7*128):
= 8704/4 - 89,6
= 38,4
В данном конкретном случае, флаг воды установлен, но уровень воды будет ниже уровня земли, получается мы не увидим воду. Это всего лишь пример, и я думаю вы не найдёте такого тайлпоинта внутри карты. Это только для примера.
Перевод изложил со своей точки зрения.. местами дополнив информацией из других мест и своими соображениями. Возможно я что-то не так понял где-то...
Вообще информация довольно интересная).
alexprey, thx, буду знать. Вот действительно, жаль что никому до этого дела нет, эти форматы уже относительно давно разобраны по байтам.. А редактора нет.
Интересная идея — сделать логотип вместо модели часов. Надо будет в моей карте тоже так сделать =3
Эта идея мне ещё в конкурсной работе денди пришла). Для Spider Traps просто достойного арта не было, который бы можно было запилить в интерфейс. А теперь вот появился)).
Мне больше нравится анимированный лоадскрин в котором используется статичная картинка + когда полоска загрузки прошла включаются партиклы за картинкой синенькие. (что-то подобное так же было реализовано в денди)
Для меня было большим открытием разобраться в системе координат лоадскринов))) (от 0 до 0.8 по X и от 0 до 0.6 по Y)
Дак вот, про часы.. Bergi_Bear мне задал вопрос в личке, о том как это всё реализовано. Могу поделиться этим и даю ответ. На самом деле всё просто.
Так как в моей карте у всех игроков раса фиксированная - люди, я решил заменить часы людей на свой логотип. Для этого я распаковал модельку индикатора часов находящуюся по адресу:
UI\Console\Human\HumanUI-TimeIndicator.mdx
Через редактор моделей магоса из модели выпилил всё лишнее (мне же нужна только статичная текстура логотипа и не более). На самом деле думаю можно и анимированные логотипы моделировать, используя игровое время. Я моделер никудышный поэтому даже пробовать воплотить такое боюсь)).
Вот мой вариант модели, для самых ленивых..:
Её можно импортировать куда угодно внутри карты, лишь бы она была потом прописана в интерфейсе именно из этого места.
Далее я импортировал свою модель по новому пути и выставил её в редакторе интерфейса.
это действие можно делать и через просто редактор mpq файлов. (если нет возможности открыть карту в редакторе карт). Для этого в файле war3mapSkin.txt который находится в корне mpq архива карты в отсеке [CustomSkin] нужно прописать путь модели - TimeOfDayIndicator=TimeIndicator.mdx
Оставалось только нарисовать текстуру с альфой, которую будет читать модель. В своей модели я не менял путь расположения текстуры, она располагается по адресу
UI\Console\Human\HumanUITile-TimeIndicatorFrame.blp
Вот в принципе и всё). Если кто-то сделает анимированную от времени модель поделитесь результатом (с переливающимся логотипом, или чтоб свечение по нему двигалось), хотелось бы на это посмотреть.
вообще форматы это аббревиатуры же). wpm - warcraft path map, wts - warcraft trigger strings и т.д
Все данные по карте высот я так понимаю находятся всё же в файле warcraft 3 earth
на самом деле действительно хотелось бы увидеть в наше время качественный сторонний редактор файлов wpm w3e shd mmp что бы их отдельно от карты можно было ремейкать).
Кстати. Я сейчас провериил. Запрет атаки для triggering unit тоже не срабатывает. Декорацию всё равно уничтожают...
Я специально запихнул все реакции на события, ни одна не подействовала.
Так как все логичные возможные реакции не срабатывают...
Смотрю вашу картинку, с чего вы решили что правый клик по декорации это атака? Правый клик это ордер smart в первую очередь. И во что он вытекает это уже другое дело).
NickIAm:
У меня с декорами по этому же принципу всё работает). Насчёт крита - крит вообще должен быть, что бы вылететь.. Крит можно невелировать другим триггером на получение урона)). Я вообще об этом заговорил к тому что иногда такая возможность необходима.
По такому же принципу делается запрет атаки по союзникам. Можно сделать проверку на процент хп. Что бы нельзя было бить только если у него 50% хп или меньше, если больше то можно.
Через невидимого юнита (дамми, болванка) начинай проклятие рудника в момент когда способность используется.
Подробнее про создание триггерных заклинаний можно прочитать в разделе статьи.
Одна из статей - xgm.guru/p/wc3/trigger_spells
Отлавливаешь использование своей способности и производишь триггерные действия. (отдаёшь приказ даммиком построить) Если нужно что бы в процессе создание нельзя было отменить игроку то при создании создавай на другого игрока (скрыто), а затем если оно достроится передавай владение тому кто колдовал. Это в двух словах.
На самом деле вариантов много, можно и без дамми юнита, переделать разрешения стройки, и в момент каста добавлять умение постройки юниту и приказ на постройку, затем удалять. Через дамми самый удобный наверное вариант.
Чёт как то список профессий удивил. Расписал графических редакторов, зато в области звукового сопровождения ограничился аудио режиссером. Маловато! Надо укрупнить, :D
А как же актеры озвучки, композитор, FX едитор
Есть игры где звуковая составляющая создает около 50% впечатления о игре, возможно даже больше). Нельзя недооценивать это направление)).
п.с Как уже выше сказал козинанка за многие вещи работая в команде приходится чем то платить. И не всегда платить деньгами выходит дороже.
Засунь свои файлы в архивы (MPQ игры), можешь оригинальных файлов копии сделать. И все нормально в редакторе редактируется.
Потом когда доделаешь карту перенесешь свои файлы в MIX архив.
Quake Live - игра 2010 года
CS: GO - игра 2012 года
HL2 - игра 2004 года
По мне вполне так современные игры, хотя эти игры и появились уже лет почти 20 назад. Это классика жанра. Они вечны. Как и Warcraft III. Всех их ждёт не одно переиздание и развитие. Даже не стоит думать о том что это игры прошлого. Это игры как прошлого так настоящего и даже будущего.
Вот пример распрыга в ку3 и куда можно допрыгивать с помощью него. Карта одна из самых популярных q3dm6
Вот распрыг в халфлайфе.. советую любому более менее интересующемуся играми человеку к просмотру. Старый шедевр.
По сути шедевр начинается с 8ой минуты видео.
Вот пример распрыга в кс и куда можно допрыгивать с его помощью.
Халф-лайф 2 ?
Во всех случаях распрыг выполняется немного по разному. Хотя принцип примерно один - дальше прыжок, больше скорость.
И во всех трех случаях есть специальные моды и карты с трассами на скоростное прохождение. По мне так везде где есть более менее интересное управление (в моем примере выше - это распрыг) - должны существовать подобные моды. Поэтому и предлагаю инсатии подобное, потому что в ней управление тоже довольно интересное.
Очень много КСеров и Квакеров с тобой готовы спорить будут. Возможно что это и баг. Но в квейке в последствии этот баг стал фишкой игры, столько версий вышло, но баг специально не фиксят, не?
Собственно как и в КС и халфе).
Козинанка - бери мое предложение на вооружение! Это один из неплохих вариантов замены мультиплеера. Если игроки смогут мериться своими результатами - уже что-то.
awesomesk1ll, ку3 тут не будет ни при каком раскладе. :) Управление я уже перебалансировал, но суть осталась та же.
Ну смотри). Я фан старых мультиплеерных игрушек... (квака, унреал, кармагедон 2к, халфа/кс, различные стратежки по фкусу и т.д) где всё только скиллом и определяется.
В современных играх пилят очень много рандумных факторов, игра уже не такая чистая, ну и дизбаланс ;).
Кстати раз ты улучшил управление, замути что-то типа Defrag, где надо будет на скорость проходить уровни - перепрыгивать препядствия, и т.д уворачиватся от всяких опасностей. Ну типа как рейс, который у тебя уже есть. Но только без соперников, но тоже на время. (для того чтобы соизмерить свой писюн с другими живыми игроками - реальными)
Там можно сделать такие ловушки:
места которые нужно перепрыгнуть головой (и зацепится за другую сторону чтоб перебраться целиком)
различные статично дергающиеся ловушки (на подобии всяких гильотин или прессов падающих сверху, а потом поднимающихся-перезаряжающихся.
другие черви враги?
Так же тут еще можно предусмотреть сбор какой нибудь еды по пути, которая дает очки. В общем идея этого мода виртуозно овладеть червем, что бы в самое короткое время проходить трассу и съедать всю пищу расположенную на ней. Главный счетчик это время, но можно так же сделать некоторый расчет эффективности (как ты используешь время, сколько съел еды и т.д)
п.с хочу быть тестером, ну если тебе конечно интересно мое мнение.
Тем для кого слово Defrag ничего не говорит - вот видео объясняющее смысл мода:
Ранкинг должен быть, не прям в меню ну из меню должна быть кнопка где можно узнать ранки.
Можно сделать статистику, в конце выводить подробную стату по сыгранной игре, сколько тайлов двинуто, сколько ходов сделано, время раздумий на один ход и подобное
Сохранение очков помоему мимо в подобной игре.
Можно сделать некоторое умножение, например если игрок быстро и чисто играет можно ввести понятие буста или разбега, чем чище играешь тем больше очков получаешь
С шопом определился? Продаешь отключение рекламы?
Возможность кастумизации? Другие скины, озвучка?
Мультиязычность?
Тайл подсказка ? (Подсвечивает другие тайлы из которых можно сыграть ход)
Ферментативная реакция улучшающая восприятие) меня не смущает природа этого, по смыслу действительно хорошо, просто слово некрасивое)
Само собой не волшебство, надо покопаться в биологических терминах) может что найдется..
awesomesk1ll: ...это полоска способностей (Power). Нажатие на то или иное умение начинает тратить полоску.
Логично! Вот только с кнопками беда, даже один адреналин потребовал лишнюю кнопку на клавиатуре и я пока не знаю как продублировать его на мышке, чтобы клавиатуру не использовать. К тому же с кнопками клавиатуры серьёзная засада - они не работают в крупных комбинациях. Нельзя зажать три стрелки одновременно, также как нельзя, например, зажать две стрелки одновременно и пробел - последняя кнопка не сработает. Эта неприятная засада дешевых китайских клавиатур ставшая стандартном. Геймерские клавиатуры такого себе не позволяют, но они есть не у всех, поэтому приходится ориентироваться на то, что с аккордами кнопок не побалуешься.
Пока я не ввёл адреналин, я укладывался в четыре стрелки. Это было клёво. С адреналином пришлось задействовать ещё одну кнопку. Зря взял пробел - поменяю на шифт по умолчанию, он отделён от стрелок, его не отрубает.
А вот с названиями у меня точка зрения строго противоположная, я сторонник терминов на родном для меня языке. Резистов и демейджей не будет. Игра локализуемая, я могу себе позволить для каждого языка использовать нативные слова (там, где они есть, конечно).
А тебе не кажется что само слово адреналин странное, может другое.. ? Может сочетание слов
(Скоростное восприятие , подготовка , особое чутье , экстримальный взгляд.. Я хз в слове адреналин нсомненно есть смысл, но само слово некрасивое, кстати оно французкое)
По поводу управления - не заморачивайся на управлении одной рукой и даже больше:
Целенаправленно разложи управление на две руки. И вообще кто захочет одной рукой играть сообразит себе мышку типа наги с оверпицот кнопок. Или клавиатуру.
Но как не крути большинство геймеров играет двумя руками и от этого нужно отталкиваться! большинство!!, ты же сам про большинство говоришь, вот, управление двумя руками должно быть дефолтом
Кроме замедления сейчас помощи никакой, т.к. замедление уже серьёзная помощь. Подсвечивать съедобное идея хорошая, у меня записана, но я думал задействовать её как-то отдельно от замедления времени, чтобы не портить красивый эффект подсветкой. По идее при накоплении шкалы с адреналином можно подключать разные полезные эффекты - подсветка съедобного, лучшая усвояемость пищи, дальность прыжка и т.д., но это тем, кто не пользуется адреналином включит подсветку на постоянку, а это плохо.
Думаю сделаю просто отдельного жука или ягодку, которые дают временное прозрение. А вообще из без подсветки понятно кого можно, а кого нельзя есть. На то, что нельзя есть червь не разивает пасть при приближении. :) Подсветка может быть просто забавным временным визуальным эффектом.
Сделай лучше так - полоска которая уже есть будет завязана не только к адреналину, а вообще - это полоска способностей (Power). Нажатие на то или иное умение начинает тратить полоску. Какие-то умения тратят сильнее какие то меньше. Если нажать сразу несколько то полоска быстро улетает).
Так же неплохо было бы придумать этим умениям достойные названия на русском и английском языках. Адреналин меня несколько смущает, я например сторонник английских терминов, для меня всё скиллы хелсы кост демейдж хил резист и т.д
Ред. awesomesk1ll
» WarCraft 3 / Устройство .w3m файлов
Каждая точка ландшафта (tilepoint) состоит из блока 7 байтов.
Число таких блоков еквивалентно Mx*My. (число всех тайлов в карте)
2000h: высота равная нулю (ground level 0)
3FFFh: максимальная высота (+16383)
short int - Это короткая целочисленная
Короткие целочисленные размещаются используя 2 байта в "Little Endian" (зеркальном или хм.. перевёрнутом?) порядке.
Они близки к C++ "signed short" типу но их диапазон чисел от -16384 до 16383. Имеется ввиду что 2 верхних бита свободны для использования под флаг, например.
пример little endian - число 0x2151 в хексе представляется как 51 21
Вообще информация довольно интересная).
Ред. awesomesk1ll
» Генератор случайных melee карт WarCraft III / Генератор случайных melee карт WarCraft III
Ред. awesomesk1ll
» Spider Traps / Версия v4n [Релиз]
Мне больше нравится анимированный лоадскрин в котором используется статичная картинка + когда полоска загрузки прошла включаются партиклы за картинкой синенькие. (что-то подобное так же было реализовано в денди)
Для меня было большим открытием разобраться в системе координат лоадскринов))) (от 0 до 0.8 по X и от 0 до 0.6 по Y)
Bergi_Bear мне задал вопрос в личке, о том как это всё реализовано. Могу поделиться этим и даю ответ. На самом деле всё просто.
Так как в моей карте у всех игроков раса фиксированная - люди, я решил заменить часы людей на свой логотип. Для этого я распаковал модельку индикатора часов находящуюся по адресу:
UI\Console\Human\HumanUI-TimeIndicator.mdx
Через редактор моделей магоса из модели выпилил всё лишнее (мне же нужна только статичная текстура логотипа и не более).
На самом деле думаю можно и анимированные логотипы моделировать, используя игровое время. Я моделер никудышный поэтому даже пробовать воплотить такое боюсь)).
Вот мой вариант модели, для самых ленивых..:
Далее я импортировал свою модель по новому пути и выставил её в редакторе интерфейса.
Для этого в файле war3mapSkin.txt который находится в корне mpq архива карты в отсеке [CustomSkin] нужно прописать путь модели - TimeOfDayIndicator=TimeIndicator.mdx
Оставалось только нарисовать текстуру с альфой, которую будет читать модель. В своей модели я не менял путь расположения текстуры, она располагается по адресу
UI\Console\Human\HumanUITile-TimeIndicatorFrame.blp
Ред. awesomesk1ll
» Генератор случайных melee карт WarCraft III / Генератор случайных melee карт WarCraft III
Все данные по карте высот я так понимаю находятся всё же в файле warcraft 3 earth
» WarCraft 3 / Запрет атаки
Глянул как у меня сделано, вот пример, рабочий.
» WarCraft 3 / Запрет атаки
» Генератор случайных melee карт WarCraft III / Генератор случайных melee карт WarCraft III
Ред. awesomesk1ll
» WarCraft 3 / Запрет атаки
У меня с декорами по этому же принципу всё работает). Насчёт крита - крит вообще должен быть, что бы вылететь.. Крит можно невелировать другим триггером на получение урона)). Я вообще об этом заговорил к тому что иногда такая возможность необходима.
Ред. awesomesk1ll
» WarCraft 3 / Запрет атаки
Ред. awesomesk1ll
» WarCraft 3 / "Игрушечное здание" и трабла с рудником
Подробнее про создание триггерных заклинаний можно прочитать в разделе статьи.
Одна из статей - xgm.guru/p/wc3/trigger_spells
На самом деле вариантов много, можно и без дамми юнита, переделать разрешения стройки, и в момент каста добавлять умение постройки юниту и приказ на постройку, затем удалять. Через дамми самый удобный наверное вариант.
Ред. awesomesk1ll
» XGM Team / Spotlight
Краткое описание: Скользить сложнее чем кажется.
Ссылка на ресурс: xgm.guru/p/st
Ссылка на картинку: xgm.guru/files/402/97665/comments/271092/SpiderTraps250x120.jpg
» XGM Конкурсы / GameBoom: New Year 2015 - А судьи кто
Ред. awesomesk1ll
» Low-Poly Art в игровой индустрии / Сложности игровой разработки
А как же актеры озвучки, композитор, FX едитор
Есть игры где звуковая составляющая создает около 50% впечатления о игре, возможно даже больше). Нельзя недооценивать это направление)).
Я же хочу влепить своё утверждение: заниматься разработкой игры всегда будет лучше (для игры само собой) если живёшь (ты и/или команда занимающаяся девом) идеей игры (возможно геймплея, возможно визуальной части, возможно сюжетной или даже аудиальной, подразумеваю то состояние когда ты просто болен игрой, ты засыпая думаешь о том как что-то улучшить и где что переделать... что-то подобное.), а не грёзами о возможном заработке с этой игры. Увы, но многие разрабы в погоне за монетизацией своего продукта гробят свои проекты. Вообще эта мысль довольно КЭПовская, но я "притендую на истинность в последней инстанции" ©.
» WarCraft 3 / Помощь с mix архивами
Потом когда доделаешь карту перенесешь свои файлы в MIX архив.
Ред. awesomesk1ll
» Несыть / Переработка существ (часть 1)
CS: GO - игра 2012 года
HL2 - игра 2004 года
По мне вполне так современные игры, хотя эти игры и появились уже лет почти 20 назад. Это классика жанра. Они вечны. Как и Warcraft III. Всех их ждёт не одно переиздание и развитие. Даже не стоит думать о том что это игры прошлого. Это игры как прошлого так настоящего и даже будущего.
По сути шедевр начинается с 8ой минуты видео.
Ред. awesomesk1ll
» Несыть / Переработка существ (часть 1)
Ред. awesomesk1ll
» Несыть / Переработка существ (часть 1)
В современных играх пилят очень много рандумных факторов, игра уже не такая чистая, ну и дизбаланс ;).
Кстати раз ты улучшил управление, замути что-то типа Defrag, где надо будет на скорость проходить уровни - перепрыгивать препядствия, и т.д уворачиватся от всяких опасностей. Ну типа как рейс, который у тебя уже есть. Но только без соперников, но тоже на время. (для того чтобы соизмерить свой писюн с другими живыми игроками - реальными)
» Несыть / Переработка существ (часть 1)
» Nine / Пре-релиз
» Nine / Nine
» Несыть / Переработка существ (часть 1)
Само собой не волшебство, надо покопаться в биологических терминах) может что найдется..
Ред. awesomesk1ll
» Несыть / Переработка существ (часть 1)
(Скоростное восприятие , подготовка , особое чутье , экстримальный взгляд.. Я хз в слове адреналин нсомненно есть смысл, но само слово некрасивое, кстати оно французкое)
По поводу управления - не заморачивайся на управлении одной рукой и даже больше:
Целенаправленно разложи управление на две руки. И вообще кто захочет одной рукой играть сообразит себе мышку типа наги с оверпицот кнопок. Или клавиатуру.
Но как не крути большинство геймеров играет двумя руками и от этого нужно отталкиваться! большинство!!, ты же сам про большинство говоришь, вот, управление двумя руками должно быть дефолтом
» Бродилка / [Лог #2] Концепты врагов.
Ред. awesomesk1ll
» Несыть / Переработка существ (часть 1)
Адреналин меня несколько смущает, я например сторонник английских терминов, для меня всё скиллы хелсы кост демейдж хил резист и т.д