Правила
Новые идеи рассматриваются администрацией и могут быть приняты в разработку после обсуждения в Сенате, Конгрессе или ВМС.
Уважаемые пользователи,
Сейчас формулы дистанций следующие (при вычитании берётся модуль результата):
Расстояние при перелёте между галактиками:
([галактика назначения] - [галактика старта]) *20000
Расстояние при перелёте между системами
([система назначение] - [система старта]) * 5 * 19 + 2700;
Расстояние при перелёте между планетами в 1 системе
([планета назначения] - [планета старта]) * 5 + 1000;
в остальных случаях дистанция = 5
Время полёта (в секундах):
Внутри системы:
10 + (35.000 / [%скорости] * ((1.000.000 + [количество планет] * 5.000) / [скорость]) ^ 1/2)
Между системами:
10 + (35.000 / [%скорости] * ((2.700.000 + [количество систем] * 95.000) / [скорость]) ^ 1/2)
Между галактиками:
10 + (35.000 / [%скорости] * ((([количество галактик]) * 20.000.000) / [скорость]) ^ 1/2)
Несколько особенностей, связанных с расстоянием:
При перелёте между системами, позиции планет не влияют на дальность и время полёта.
То же касается и систем при перелёте между галактиками.
В связи с этим, полёты через 184 систем и больше длятся дольше, чем перелёт в соседнюю галактику.
Полёт через 394 системы и больше длятся дольше, чем полёт в соседнюю галактику с возвратом.
Поэтому при перемещении флота дальше чем за 393 системы выходит быстрее лететь на колонию в соседней галактике, а оттуда \"возвращаться\" на колонию в изначальной галактике, которая удалена от первой планеты на 394 системы и больше.
Таким образом, мы всегда знаем координаты старта флота, координаты финиша и время полёта. Ситуация осложняется искривлённостью пространства.
Как правильно высчитать местонахождение флота с точностью до системы в любой точки полёта?
Мы имеем некоторое представление о том, как это сделать, однако среди наших игроков есть математики и программисты, которые могут предложить лучший вариант расчёта. Если у вас есть идеи формул - просим их опубликовать и помочь нам с выбором лучшей.
Сейчас формулы дистанций следующие (при вычитании берётся модуль результата):
Расстояние при перелёте между галактиками:
([галактика назначения] - [галактика старта]) *20000
Расстояние при перелёте между системами
([система назначение] - [система старта]) * 5 * 19 + 2700;
Расстояние при перелёте между планетами в 1 системе
([планета назначения] - [планета старта]) * 5 + 1000;
в остальных случаях дистанция = 5
Время полёта (в секундах):
Внутри системы:
10 + (35.000 / [%скорости] * ((1.000.000 + [количество планет] * 5.000) / [скорость]) ^ 1/2)
Между системами:
10 + (35.000 / [%скорости] * ((2.700.000 + [количество систем] * 95.000) / [скорость]) ^ 1/2)
Между галактиками:
10 + (35.000 / [%скорости] * ((([количество галактик]) * 20.000.000) / [скорость]) ^ 1/2)
Несколько особенностей, связанных с расстоянием:
При перелёте между системами, позиции планет не влияют на дальность и время полёта.
То же касается и систем при перелёте между галактиками.
В связи с этим, полёты через 184 систем и больше длятся дольше, чем перелёт в соседнюю галактику.
Полёт через 394 системы и больше длятся дольше, чем полёт в соседнюю галактику с возвратом.
Поэтому при перемещении флота дальше чем за 393 системы выходит быстрее лететь на колонию в соседней галактике, а оттуда \"возвращаться\" на колонию в изначальной галактике, которая удалена от первой планеты на 394 системы и больше.
Таким образом, мы всегда знаем координаты старта флота, координаты финиша и время полёта. Ситуация осложняется искривлённостью пространства.
Как правильно высчитать местонахождение флота с точностью до системы в любой точки полёта?
Мы имеем некоторое представление о том, как это сделать, однако среди наших игроков есть математики и программисты, которые могут предложить лучший вариант расчёта. Если у вас есть идеи формул - просим их опубликовать и помочь нам с выбором лучшей.
12 Июля 2010 15:34:01
Wishmaster, как ты будешь перехватывать флот в полёте между 7:63:15 и 8:63:15? На какие координаты пойдёт перехватчик?
12 Июля 2010 21:20:01
UnclanOne,
Т.е.,
x = 15 + 63 * 15 + 7 * 400 * 15 + 15 + 63 * 15 + 8 * 400 * 15.
х - это длина пути в планетах.
у = x / время полёта в секундах * прошло секунд.
у - текущая точка перехвата, в планетах от старта.
Теперь надо найти координаты.
Галактика = floor(y / 400 / 15).
Система = floor(y / галактика / 15). // тут могу ошибаться в расчёте.
Планета = у mod система * галактика.
Т.е., переводим расстояние в планеты умножая, находим прогресс полёта, вычисляем текущую точку зная путь и время, переводим точку из расстояния в координаты.
Т.е.,
x = 15 + 63 * 15 + 7 * 400 * 15 + 15 + 63 * 15 + 8 * 400 * 15.
х - это длина пути в планетах.
у = x / время полёта в секундах * прошло секунд.
у - текущая точка перехвата, в планетах от старта.
Теперь надо найти координаты.
Галактика = floor(y / 400 / 15).
Система = floor(y / галактика / 15). // тут могу ошибаться в расчёте.
Планета = у mod система * галактика.
Т.е., переводим расстояние в планеты умножая, находим прогресс полёта, вычисляем текущую точку зная путь и время, переводим точку из расстояния в координаты.
12 Июля 2010 22:06:42
Wishmaster, бред какой-то. У тебя получается, что галактики присобачены друг к другу первыми системами, а это совсем не так. Они, скорее, расположены «друг над другом».
12 Июля 2010 22:13:15
Цитата: UncleanOne
бред какой-то
Омская математика же.
Цитата: UncleanOne
Они, скорее, расположены «друг над другом».
Это как?
12 Июля 2010 22:22:26
Wishmaster, это сложно объяснить в объектах, привычных человеческому сознанию.
12 Июля 2010 22:32:13
<бред мод он>
Ещё омской математики.
Я в тридэ мыслю плохо, по этому буду абстрагировать только для систем и планет. Галактики пока опущу.
Судя по ОП-посту, галактику можно представить двухмерной таблицей, по оси у дающей систему, а по оси х - планету.
Пускай точкой перехвата будет точка на воображаемой линии, соединяющей точки старта и финиша.
<бред мод офф>
Ещё омской математики.
Я в тридэ мыслю плохо, по этому буду абстрагировать только для систем и планет. Галактики пока опущу.
Судя по ОП-посту, галактику можно представить двухмерной таблицей, по оси у дающей систему, а по оси х - планету.
Пускай точкой перехвата будет точка на воображаемой линии, соединяющей точки старта и финиша.
<бред мод офф>
12 Июля 2010 22:49:02
Wishmaster, ну так это одна галактика. А прочие «нанизаны» на прямую, перпендикулярную такой двумерной таблице, как бы третье измерение. И между галактиками на этой прямой нет никаких систем.
12 Июля 2010 22:56:19
UncleanOne,
Переводим воображаемую линию в 3-е измерение, координата зет будет галактикой, и при этом во всех расчетах будет округляться до целого.
Переводим воображаемую линию в 3-е измерение, координата зет будет галактикой, и при этом во всех расчетах будет округляться до целого.
12 Июля 2010 23:04:07
12 Июля 2010 23:27:48
UncleanOne,
У меня ощущение что ты меня троллишь.
Пускай, галактика будет отвечать за координату зет, система - игрек, планета - икс.
Путь корабля будет прямой в пространстве от старта до финиша в заданной системе координат.
Флот летит линейно, значит мы можем просчитать его текущие координаты.
х = модуль(старт х - финиш х * время всего полета / время прошло).
Аналогично с игрек и зет.
А так как координаты планет у нас целые числа - флот перехвата будет отправляться по округленным координатам флота перехватываемого.
У меня ощущение что ты меня троллишь.
Пускай, галактика будет отвечать за координату зет, система - игрек, планета - икс.
Путь корабля будет прямой в пространстве от старта до финиша в заданной системе координат.
Флот летит линейно, значит мы можем просчитать его текущие координаты.
х = модуль(старт х - финиш х * время всего полета / время прошло).
Аналогично с игрек и зет.
А так как координаты планет у нас целые числа - флот перехвата будет отправляться по округленным координатам флота перехватываемого.
12 Июля 2010 23:40:13
Цитата: Wishmaster
Пускай, галактика будет отвечать за координату зет, система - игрек, планета - икс.
Путь корабля будет прямой в пространстве от старта до финиша в заданной системе координат.
Флот летит линейно, значит мы можем просчитать его текущие координаты.
х = модуль(старт х - финиш х * время всего полета / время прошло).
Аналогично с игрек и зет.
Путь корабля будет прямой в пространстве от старта до финиша в заданной системе координат.
Флот летит линейно, значит мы можем просчитать его текущие координаты.
х = модуль(старт х - финиш х * время всего полета / время прошло).
Аналогично с игрек и зет.
X и Y равны. Z меняется на единицу. На каких координатах такой флот можно перехватить?
12 Июля 2010 23:41:57
Цитата: UncleanOne
X и Y равны. Z меняется на единицу. На каких координатах такой флот можно перехватить?
Непонимат вопрос.
12 Июля 2010 23:55:50
Wishmaster, о'кей, смотри так. Флот 1 летит с [Z:Y:X] на [Z:Y+2:X] — его можно «перехватить» посреди дороги, в системе [Z:Y+1]. Флот 2 летит с [Z:Y:X] на [Z+1:Y:X]. Где его можно перехватить?
Тебе к аватару не хватает подписи «я люблю всё простое и понятное!».
Тебе к аватару не хватает подписи «я люблю всё простое и понятное!».
12 Июля 2010 23:58:22
Ну, на Z+0.5 ничего нет, по правилам округления это будет Z+1.
Да, очень тупо и не правильно, а что поделать?
Done.
Да, очень тупо и не правильно, а что поделать?
Цитата: UncleanOne
Тебе к аватару не хватает подписи «я люблю всё простое и понятное!».
Done.
Цитата: UncleanOne
Сообщений: 666
13 Июля 2010 00:05:26
Цитата: Wishmaster
Да, очень тупо и не правильно, а что поделать?
Объявить такой полёт неперехватываемым, очевидно же.
13 Июля 2010 00:16:21
UncleanOne,
Ящитаю, не нужно.
Полёт дальностью в 1-ну планету никто перехватывать не будет.
А на больших дистанциях ошибки округления не так уже и заметны.
Блджад, я уже спал, когда писал.
Перепутал планету с галой.
Блджад, я уже спал, когда писал.
Перепутал планету с галой.
13 Июля 2010 00:22:33
ИМХО идеи не айс
попытался представить - не получилось. пример перелета с координат [1:1:1] на [2:1:1] не удается смоделировать. вариант - флот виртуально "летит" с [1:1:1] на [1:93:1] и потом с [2:93:1] на [2:1:1], эдакая "петля" по системам. вопрос - в какую сторону делать петлю(уменьшение/увеличение)? то же самое о перелетах между соседними системами.
на мой взгляд основная проблема - координаты и время должны быть взаимосвязаны однозначно, то есть "через час флот будет на координатах [Х:ХХХ:ХХ]" и "на координатах [1:1:1] данный полет можно поймать через ХХХХ секунд".второй вариант гораздо сложнее и там ошибки округления даже ±5 секунд уже решают многое.
у игроков было куча хороших идей по протосам, вы выбрали, мягко говоря, не самую удачную
1. убивает "подлов флота"
2. по протосам уже говорил
3. "бомбу" ксерджей можно вешать и на поле обломков, "подлетающие флоты и ракеты" пусть бьются об нее там
4. это вообще не хочу комментировать. тем более когда снесут овера(а его снесут обязательно), 7й мозг больше никто не построит
попытался представить - не получилось. пример перелета с координат [1:1:1] на [2:1:1] не удается смоделировать. вариант - флот виртуально "летит" с [1:1:1] на [1:93:1] и потом с [2:93:1] на [2:1:1], эдакая "петля" по системам. вопрос - в какую сторону делать петлю(уменьшение/увеличение)? то же самое о перелетах между соседними системами.
на мой взгляд основная проблема - координаты и время должны быть взаимосвязаны однозначно, то есть "через час флот будет на координатах [Х:ХХХ:ХХ]" и "на координатах [1:1:1] данный полет можно поймать через ХХХХ секунд".второй вариант гораздо сложнее и там ошибки округления даже ±5 секунд уже решают многое.
у игроков было куча хороших идей по протосам, вы выбрали, мягко говоря, не самую удачную
1. убивает "подлов флота"
2. по протосам уже говорил
3. "бомбу" ксерджей можно вешать и на поле обломков, "подлетающие флоты и ракеты" пусть бьются об нее там
4. это вообще не хочу комментировать. тем более когда снесут овера(а его снесут обязательно), 7й мозг больше никто не построит
13 Июля 2010 07:39:09
вот подумал... потому постучим в дурака. Тоесть я порассуждаю, вы покритикуете и сами дойдете до нужной темы. Как у нас обстоят взаимоотношения с галактиками? Они как млечный путь, как ряд параллельных линий?.. Ну пусть у нас классическая спиральная галактика, этакий Млечный путь.
Пусть флоты движутся именно "от планеты к планете", тоесть не напрямую, игнорируя все вокруг, а от одной планеты к следущей, от той еще дальше и т д...
Пример. летит кораблик с 1:133:1 на 2:333:6... Если по спирали, то с 1:133 идет переход на 2:133. А затем уже во 2 галактике от 133 к 333...
Предположим, что добраться до соседней солнечной системы можно только лишь через х:х:16. И входит в другую систему черех х:х+1:16.
Таким образом можно посчитать, сколько ПЛАНЕТ пересечет летящий флот. (16-1) (чтобы добраться до 1:133:16) + (333-133)*16 (пусть пересекает все планеты) + (16 - 5) (от 16 до нужной 5-ой планеты) = 3226.
Тоесть у нашего флота в полете может быть 3226 позиций впринципе. Ну а теперь рассчитываем время, тупо делим время на это количество и присваиваем каждому промежутку времени свою координату.
Тоесть через 10 минут будет в 2:145:15, через 20 в 2:228:15 и т д...
Если перелет осуществляется с 8 в 2 галу, например, добавляем к итоговому числу позиций (8-2)*16, те системы, что пересекаются при переходе из галактики в галактику.
Чтобы снизить нагрузку (а я уверен, этот вариант КРАЙНЕ тяжел) расчет производить только если необходимо что-то сделать. Например, с судьей чтото замутить или флот через фалангу перехватить.
Пусть флоты движутся именно "от планеты к планете", тоесть не напрямую, игнорируя все вокруг, а от одной планеты к следущей, от той еще дальше и т д...
Пример. летит кораблик с 1:133:1 на 2:333:6... Если по спирали, то с 1:133 идет переход на 2:133. А затем уже во 2 галактике от 133 к 333...
Предположим, что добраться до соседней солнечной системы можно только лишь через х:х:16. И входит в другую систему черех х:х+1:16.
Таким образом можно посчитать, сколько ПЛАНЕТ пересечет летящий флот. (16-1) (чтобы добраться до 1:133:16) + (333-133)*16 (пусть пересекает все планеты) + (16 - 5) (от 16 до нужной 5-ой планеты) = 3226.
Тоесть у нашего флота в полете может быть 3226 позиций впринципе. Ну а теперь рассчитываем время, тупо делим время на это количество и присваиваем каждому промежутку времени свою координату.
Тоесть через 10 минут будет в 2:145:15, через 20 в 2:228:15 и т д...
Если перелет осуществляется с 8 в 2 галу, например, добавляем к итоговому числу позиций (8-2)*16, те системы, что пересекаются при переходе из галактики в галактику.
Чтобы снизить нагрузку (а я уверен, этот вариант КРАЙНЕ тяжел) расчет производить только если необходимо что-то сделать. Например, с судьей чтото замутить или флот через фалангу перехватить.
13 Июля 2010 16:14:53
Цитата: Den55Tiger
Пример. летит кораблик с 1:133:1 на 2:333:6... Если по спирали, то с 1:133 идет переход на 2:133. А затем уже во 2 галактике от 133 к 333...
Предположим, что добраться до соседней солнечной системы можно только лишь через х:х:16. И входит в другую систему черех х:х+1:16.
Таким образом можно посчитать, сколько ПЛАНЕТ пересечет летящий флот. (16-1) (чтобы добраться до 1:133:16) + (333-133)*16 (пусть пересекает все планеты) + (16 - 5) (от 16 до нужной 5-ой планеты) = 3226.
Предположим, что добраться до соседней солнечной системы можно только лишь через х:х:16. И входит в другую систему черех х:х+1:16.
Таким образом можно посчитать, сколько ПЛАНЕТ пересечет летящий флот. (16-1) (чтобы добраться до 1:133:16) + (333-133)*16 (пусть пересекает все планеты) + (16 - 5) (от 16 до нужной 5-ой планеты) = 3226.
когда координаты разные по всем измерениям(или хотябы по солнечной системе), то все относительно просто, можно придумать много моделей. но вот если по твоей схеме лететь с [1:133:1] на [2:133:1], сколько планет пересечет?
14 Июля 2010 06:00:35
Мы пришли к модели линейных функций, собственно модели администрации.
Пример 1:
Летим из [1:1] в [2:1]
Первые 50% времени полёта мы будем находится в [1:1], вторые в [2:1]
Пример 2:
Летим из [1:1] в [3:8]
Первые 25% времени летим в первой галактике, меняя систему каждые 14% времени, затем 50% времени будем находится во 2 галактике и последние 25% в третьей. Т.е. в середине полёта мы будем пролетать из [2:4] на [2:5], а скажем на 80% времени координаты будут [3:7].
Пример 1:
Летим из [1:1] в [2:1]
Первые 50% времени полёта мы будем находится в [1:1], вторые в [2:1]
Пример 2:
Летим из [1:1] в [3:8]
Первые 25% времени летим в первой галактике, меняя систему каждые 14% времени, затем 50% времени будем находится во 2 галактике и последние 25% в третьей. Т.е. в середине полёта мы будем пролетать из [2:4] на [2:5], а скажем на 80% времени координаты будут [3:7].
14 Июля 2010 07:04:17
«
· Новые идеи ·
»
Информация
Вы не авторизованы
1 чел. читают эту тему (гостей: 1)
Пользователей: 0 Claude Bot