Возвращаясь к перестроению юнитов |
Krom | Дата: Понедельник, 26.09.2011, 12:49 | Сообщение # 16 |
Воитель
Группа: Супер Модераторы
Сообщений: 2440
Награды: 25
Репутация: 151
Статус: Offline
| mihail_msk, особой разницы между мерностью массивов на самом деле нет, ты прав. Разве что для оптимизации выборок из кэша, но мы такими вещами не занимаемся
Quote (mihail_msk) А вычислять требуемое расположение отряда с учетом крупных препятствий типа мостов и гор должен уже другой алгоритм. Причем он в ремейке уже есть, как я понимаю. Он ничем не отличается от алгоритма мелких препятствий. Но это к делу не относится пока )
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
mihail_msk | Дата: Понедельник, 26.09.2011, 17:39 | Сообщение # 17 |
Ополченец
Группа: Проверенные
Сообщений: 32
Награды: 0
Репутация: 2
Статус: Offline
| Мне тут подсказали на работе еще один алгоритм: Допустим нужно построить отряд 2x4 . И мы имеет плоскость 4x8, на которой хаотично стоят сейчас солдаты. Построить нужно по центру их хаотичного положения. Тогда независимо от будущего положения мы условно сдвигаем требуемую формацию в левый верхний угол этого квадрата, т.е сдвигаем формацию на две клетки вверх и две клетки влево. После этого нумеруем позиции там по шеренгам с самой дальней (самой верхней) к ближним. : 1234 5678 После этого для позиции 1 вычисляем самого ближнего к ней солдата из всего списка солдат. Назначаем его туда. После этого вычисляем самого ближнего для второй позиции. Назначаем туда. После того, как всем назначили позиции - производим обратный сдвиг всей формации с уже назначенными солдатами - на две клетки вниз и две клетки вправо. И всё, туда уже можно идти каждому солдату pathfinding-ом. Этот алгоритм имеет вычислений не (кол-во солдат)^3 как венгерский алгоритм, а (кол-во солдат)^2 . Думаю, я его попробую сделать.
Сообщение отредактировал mihail_msk - Понедельник, 26.09.2011, 19:15 |
|
| | |
Krom | Дата: Понедельник, 26.09.2011, 17:50 | Сообщение # 18 |
Воитель
Группа: Супер Модераторы
Сообщений: 2440
Награды: 25
Репутация: 151
Статус: Offline
| mihail_msk, это называется изобретением велосипедов.
Как алгоритм отработает если все стоят сверху слева и даже закрывают клетки 1 и 2: *-*** *-*-**34 -----5678
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
mihail_msk | Дата: Понедельник, 26.09.2011, 19:21 | Сообщение # 19 |
Ополченец
Группа: Проверенные
Сообщений: 32
Награды: 0
Репутация: 2
Статус: Offline
| Прошу прощения, я перепутал в тексте лево и право. На самом деле формация формируется в верхнем левом (!), а не правом углу. Текст выше я подправил. Если бы делать так, как я написал вначале - этого действительно могло вызвать "затор".
Кстати, угол, к которому должна условно перемещаться формация и порядок подбора юнитов на места может определяться направлением движения войск. Например, если войска идут на юго-восток, то тогда формацию логично выстроить у правого нижнего угла. Не факт, что это сильно улучшит построение. Но если базовый условного алгоритм перемещения в левый верхний угол будет не всегда хорош, то можно попробовать.
Сообщение отредактировал mihail_msk - Понедельник, 26.09.2011, 23:48 |
|
| | |
Krom | Дата: Вторник, 27.09.2011, 09:30 | Сообщение # 20 |
Воитель
Группа: Супер Модераторы
Сообщений: 2440
Награды: 25
Репутация: 151
Статус: Offline
| mihail_msk, тем не менее, как алгоритм отработает если все стоят сверху слева и даже закрывают клетки 1 и 2: *-*** *-*-**34 -----5678
Я так понимаю, что 1 и 2 будут считаться заполненными и на все остальные клетки юниты пойдут "сквозь" них.
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
mihail_msk | Дата: Вторник, 27.09.2011, 22:44 | Сообщение # 21 |
Ополченец
Группа: Проверенные
Сообщений: 32
Награды: 0
Репутация: 2
Статус: Offline
| Нормально он отработает. Построение т.е. 1234 5678 условно сдвигается в левый верхний угол. А все юниты остаются там, где стояли. Левее и выше нового положения формации уже никого быть не может. И тогда * верхнего ряда станут самыми ближними к 1234, а * второго ряда - к 5678. Когда условно сдвинутую формацию вернем на место, то в реальности оба ряда * сделают на шаг вниз.
Но если они идут на юго-восток, как в твоем примере - то возможно, рационально это вычислить и делать условным углом построения юго-восточный,а не северо-западный. Не факт, что будет большой выигрыш, но можно и так попробовать сделать.
Сообщение отредактировал mihail_msk - Вторник, 27.09.2011, 22:45 |
|
| | |
Krom | Дата: Среда, 28.09.2011, 09:04 | Сообщение # 22 |
Воитель
Группа: Супер Модераторы
Сообщений: 2440
Награды: 25
Репутация: 151
Статус: Offline
| Другой вариант: все стоят на своих местах кроме 1 юнита. По угловому алгоритму он будет идти сквозь всех на свое место?
**** * 5***
и еще вариант: **34 **78 ** **
Построения на ходу как такового не будет. Есть начальное положение отряда и когда игрок дает команду идти - каждому юниту говорится куда ему надо будет придти. Команда Halt по сути приказ идти на текущее место. Команды повернуться - приказ идти на то же место но с другой ориентацией.
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
mihail_msk | Дата: Среда, 28.09.2011, 13:02 | Сообщение # 23 |
Ополченец
Группа: Проверенные
Сообщений: 32
Награды: 0
Репутация: 2
Статус: Offline
| Quote (Krom) все стоят на своих местах кроме 1 юнита. По угловому алгоритму он будет идти сквозь всех на свое место? Нет, по этому алгоритму они сдвинутся. "Своих мест" у них изначально нет, даже если они уже стоят на клетках, куда должен встать солдат.
Во втором случае солдаты, которые стоят на позициях 5 и 6 передвинутся на позиции 3 и 4 , т.к. подбор по этим позициям будет идти раньше. И то, что они уже стоят на "правильных клетках" никого не интересует. Фиксация их происходит только после подбора в порядке очередности.
Вот еще вариант: 12** 34** 56 78
В силу того, что 12 и 56 стоят в первый шеренгах, то они и будут выбраны ближайшими. Первую позицию в третьей шеренге замет 7. Вторую в третьей шеренге займут 3 или 8 т.к. у них равное расстояние до этой позиции. Но очевидно, что при заполнении нижней части солдаты идут немного громоздко. Поэтому можно сделать так: видно, что отряд перестраивается фалангой на восток относительно текущего положения, поэтому можно изменить порядок подбора с северо-восточного на восточно-северный т.е. 15** 26** 37 48 и тогда они будут строиться уже совсем красиво.
Предлагаю дальше теорию не обсуждать, а дождаться, когда я сделаю работающий демонстратор.
Сообщение отредактировал mihail_msk - Среда, 28.09.2011, 13:02 |
|
| | |
Krom | Дата: Пятница, 14.10.2011, 11:17 | Сообщение # 24 |
Воитель
Группа: Супер Модераторы
Сообщений: 2440
Награды: 25
Репутация: 151
Статус: Offline
| mihail_msk, есть ли какие новости с алгоритмами?
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
mihail_msk | Дата: Понедельник, 14.11.2011, 23:48 | Сообщение # 25 |
Ополченец
Группа: Проверенные
Сообщений: 32
Награды: 0
Репутация: 2
Статус: Offline
| Krom, привет ! К сожалению, наступила запарка на работе, сдача сразу трех проектов наложилась. В общем, пока комп только по работе. Берегу глаза, чтобы не вывалились совсем. В начале декабря всё это закончится, тогда и сделаю алгоритм. Если нужно более срочно - могу по телефону или по skype подробно объяснить его идею. Тем более, что она очень простая ( как всё гениальное ).
|
|
| | |
Krom | Дата: Вторник, 15.11.2011, 09:15 | Сообщение # 26 |
Воитель
Группа: Супер Модераторы
Сообщений: 2440
Награды: 25
Репутация: 151
Статус: Offline
| mihail_msk, спасибо что держишь в курсе Делу время как говорится.
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| | |
mihail_msk | Дата: Понедельник, 30.04.2012, 01:14 | Сообщение # 27 |
Ополченец
Группа: Проверенные
Сообщений: 32
Награды: 0
Репутация: 2
Статус: Offline
| Немного отвлекся массой разных дел. Но вот, вспомнил и решил всё-таки написать алгоритм перестроения. После переустановки винды дельфи еще не поставил, так что решил сейчас по-быстрому сделать это алгоритм на VBA под Excel. В Excel нужно выбрать уровень безопасности макросов "средняя", иначе макрос не будет работать. Но я там выложил на одной из страниц весь примитивный код, так что макросы можно не запускать. Лучше сразу вставить этот простейший алгоритм в KAm и погонять на реальных юнитах. Это будет и нагляднее и проще, мне кажется.
Сообщение отредактировал mihail_msk - Понедельник, 30.04.2012, 01:41 |
|
| | |
SerJeek | Дата: Понедельник, 30.04.2012, 01:28 | Сообщение # 28 |
Воин
Группа: Друзья
Сообщений: 121
Награды: 5
Репутация: 30
Статус: Offline
| Перечитал всю ветку, но так и не понял, чем не нравится текущая система?
If you want to be ok, Fuck the woman everyday
|
|
| | |
mihail_msk | Дата: Понедельник, 30.04.2012, 01:43 | Сообщение # 29 |
Ополченец
Группа: Проверенные
Сообщений: 32
Награды: 0
Репутация: 2
Статус: Offline
| Я не знаю, меняли ли систему перестроения за 4 последние месяца. Но та система, что была 4 месяца назад, приводила к жутко долгому перестроению войск. Потому что каждый юнит пытался перейти на свою прежнюю позицию при перестроении.
Сообщение отредактировал mihail_msk - Понедельник, 30.04.2012, 02:26 |
|
| | |
Krom | Дата: Понедельник, 30.04.2012, 11:42 | Сообщение # 30 |
Воитель
Группа: Супер Модераторы
Сообщений: 2440
Награды: 25
Репутация: 151
Статус: Offline
| mihail_msk, нет, ничего не меняли.
Quote (SerJeek) чем не нравится текущая система? Самый банальный случай, есть отряд из 9 человек который стоит вот так:
12345 6789
Игрок командует изменить построение на вот такое: ****** ***
Как должны встать юниты в идеальном случае? Вот так: 123945 678
то есть 45 подвинулись и впустили 9, время перестроения - 1.5сек и отряд работает как часы
А как сейчас в игре: 123456 789
то есть 6 начинает ломиться через весь отряд на свое место и это занимает ... 6-7сек и в отряде полный хаос
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| |
|