Группа guest
Правила
Новые идеи рассматриваются администрацией и могут быть приняты в разработку после обсуждения в Сенате, Конгрессе или ВМС.
Итак, помнится мне уже писал я такие предложение в какой-то теме, месяца 4 назад, но найти не могу, потому, походу, прийдется с нуля писать.
Итак, для начала приведу текущее положение дел:
Минимальное расстояние 3000. Расстояние между планетами 50. Расстояние между системами 500. Расстояние между рукавами 2000.
Теперь что я предлагаю.
Во-первых - закольцевать рукава - расстояние из 1:1 в 1:999 сделать равным 500 (как между соседними системами) и т.п., думаю все поняли что я имею ввиду.
Выглядеть это будет так:
Пусть точка B - система 1:1 например, тогда точка K - примерно 1:200, точка С - 1:500, точка L - примерно 1:750. Точка A - 2:1, точка N - примерно 2:200 и т.д.. Кроме того, ОЧЕНЬ рядом с точкой B находится система 1:999 (а именно чуть ниже и левее, если смотреть на рисунок).
Это предложение довольно логично, и решит проблему очень большого расстояния между 1:100 и 1:900, например.
Во-вторых. Это самое интересное. Предлагаю сделать возможным пролетать не по линии окружности, то-есть пролетая все системы между системой отправления и системой назначения, а внутри окружности. На рисунке выше - имеется ввиду возможность перелета из L в K по прямой LK, или, например, из B в C по почти (почему почти, объясню позже) диаметру BC.
Основываться эта новая система расстояний будет на текущих. Как вы понимаете, для начала нужно рассчитать диаметр этой окружности. Включив мозг, мы понимаем, что для системы 1:1 диаметрально противоположной является "как-бы система" 1:500,5, а не 1:500, как можно было-бы подумать. Тогда расстояние до этой "как-бы системы" равно диаметру, который нам надо посчитать.
Итак. В текущей системе расстояний расстояние от 1:1 до 1:500,5 по линии окружности равно 499,5*500 = 249750. (Тут, кстати, еще заметим, для итоговой формулы, что длинна полуокружности - 499,5 расстояний между системами)
Из геометрических соображений диаметр данной окружности в пи/2 раз меньше расстояния по окружности, то-есть он составляет 249750/(пи/2) ~= 158995,788. Радиус равен половине диаметра: R = 158995,788/2 = 79497,894.
Данную величину (при вводе данной идеи, разумеется, можно данную величину округлить до 79500) будем считать "константой радиуса рукава". Все расчеты будут зависеть от нее, и, соответственно, при каком-либо изменении баланса будет писаться не "расстояние между системами уменьшено с 500 до 400", а "радиус рукава уменьшен с 79500 до 63600". Хотя для игроков, конечно, понятнее будет формулировка "уменьшен на 20%", которую и следует использовать.
Все, основная идея высказана, теперь займемся проблемой расчета расстояний между различными системами, для этого обратимся к формуле зависимости длинны хорды от центрального угла, опирающегося на эту хорду:
L=2* R * sin(a/2);
где L - искомое расстояние между системами (хорда окружности), R - радиус рукава, a - центральный угол, опирающийся на искомую хорду. Последнюю величину мы так-же не знаем, вот ее формула (обычные очевидные соображения):
a = ( пи / 499,5 ) * Δ;
где a - искомый угол, пи ~= 3,14, Δ - разница систем по линии окружности. Последняя величина требует пояснения, мне сложно объяснить ее смысл в теории, я воспользуюсь приведением примеров:
разница систем по линии окружности (далее Δ) от системы 1:1 до системы 1:5 равна 4;
Δ от системы 1:200 до системы 1:300 равна 100;
Δ от системы 1:1 до системы 1:500 равна 499...
И вот тут мы сталкиваемся с проблемой - ведь по первому пункту данной идеи Δ от системы 1:1 до системы 1:999 равна 1 (а до системы, например, 1:950, она равна 50). Для того, что-бы посчитать такую сложную переменную, нашим дорогим разработчикам придется ужас! сооружать в коде конструкцию вида if (?) then (...) else (...). Это, несомненно, непосильный труд, потому постараемся упростить предыдущие две формулы путем вложения второй в первую, авось что-нибудь прояснится:
L=2* R * sin( ( пи/499,5 ) * Δ/2);
L=2* R * sin( пи / (999/Δ) );
Итак, путем равносильных преобразований (Δ ≠ 0) мы пришли к выводу - аргументом синуса является отношение (пи) к (999/Δ). И что мы видим - из-за того, что функция синуса такая прекрасная зеркально ведет себя что при увеличении аргумента с 0 до (пи/2), что при уменьшении с (пи) до (пи/2), мы можем переменную Δ рассчитывать просто как модуль разности между системами! То-есть для нас вообще не важно Δ = 1 или Δ = 998, результат будет одинаков (так-же неважно, Δ = 949 или Δ = 50, и т.п.).
Итак, как мы поняли,
Δ = |S1 - S2|;
где S1 - система отправления, S2 - система назначения, | | - знак модуля.
И итоговая формула принимает вид:
L=2* R * sin( пи / (999/ |S1 - S2| ) );
Все!
Теперь обобщу - я предлагаю заменить текущую формулу расстояний между системами, которая выглядит так:
L = |S1 - S2| * 500;
на, по моему мнению, лучшую формулу:
L = 2* R * sin( пи / (999/ |S1 - S2| ) );
где R ~= 79500 (точнее 79497,894 , но лучше округлить при вводе, можно даже до 80000, там разница копеечная) .
Теперь немного графиков, они красиво показывают, зачем все это надо (на графике R ~= 79497,894):
Я еще раз подчеркну, что сильное различие в правой части графика обусловлено лишь закольцовыванием рукавов, а так разница, в действительности, не высока. Однако закольцовывание - несомненно нужное нововведение, этого баланс просто требует. Цель графика - дать понять, что кроме закольцовывания нужно и изменить формулу расстояний между системами (я замечу, что по-сути ВОООБЩЕ КОД МЕНЯТЬ НЕ НАДО. Просто в одном месте отредактировать формулу (как я себе представляю), может в 2-3 местах. Главная переменная (модуль разницы систем) остается той-же. R - не переменная, а константа.
Кроме того, график дает понять, что пока разница между системами отправления и назначения меньше 200 - разницы в расстоянии вообще особо не будет. Зато при полете в диаметрально противоположную точку рукава формула существенно (в (пи/2) ~= 1,57 раз) уменьшит расстояние, что очень логично.
В заключение хочу добавить, что, по моему мнению, если Вася тщательно вчитается в текст, он поймет что это нужная фишка. Она никак не повлияет на ближние полеты, зато позволит игрокам, находящимся далеко друг от друга (например новичек в 11:900 и его учитель в 7:100) плодотворно сотрудничать. Я верю и надеюсь, что идея будет введена а я получу медальку первого класса ^^ , много ведь текста накатал
Забыл добавить - расстояния в другие рукава будут как и раньше считаться по Пифагору, ничего нового.
И без флуда, позязя)
Upd: если ВДРУГ в текущем коде Δ = |S1 - S2| может быть равно нулю - можно перевернуть дробь внутри синуса, для того что-бы не возникала ошибка "деления на ноль". А именно для этого случая формула принимает вид:
L=2* R * sin( пи * |S1 - S2| / 999 );
тогда синус равен нулю, и разница систем, что логично, так-же равна нулю (при S1 = S2, я просто не знаю как у вас там в коде реализован рассчет расстояний).
Upd2: чуть подредактировал в одном месте, по-сути ничего не изменилось. (23:00 мск).
Upd3:
1) Я не против что-бы просто ввели закольцованность, не вводя второй пункт данной идеи!
2) И еще, тут были вопросы по поводу работы Алл.Сетей. Я, кажется, придумал как это реализовать.
Территория альянса будет представлять из себя сектора круга - центр сектора в центре рукава, а прямые, являющиеся границами сектора, приходят из центра рукава в границы Территории на окружности.
Масштабирование этой системы на цилиндр не сложно.
В рассчетах Алл.Сети ничего не изменится - просто "представлять" Алл.Сеть можно будет не как "территорию на 2-мерной поверхности" а как "набор секторов круга в 3-мерном пространстве". Очень красиво, если представить. И, кстати, очень логично выглядит. Да, вообще супер! Пойду Васе скину в личку, и добавлю в шапку.
Картинка:
Тут сектор ABO - территория альянса в 1 галактике (то-есть на дуге AB все системы принадлежат альянсу), а сектор A1B1O1 - территория альянса во 2 галактике. Если во 2 галактике территория альянса меньше, то прямые AA1 и BB1 будут сужаться к плоскости 2 галактики. Красиво? Вроде очень. И логично же!
И трехмерная вселенная!
Upd4:
http://xcraft.ru/forum/topic_15520/4#post-412179 Хорошая картинка, объясняющая территорию Альянсовой Сети.
Итак, для начала приведу текущее положение дел:
Минимальное расстояние 3000. Расстояние между планетами 50. Расстояние между системами 500. Расстояние между рукавами 2000.
Теперь что я предлагаю.
Во-первых - закольцевать рукава - расстояние из 1:1 в 1:999 сделать равным 500 (как между соседними системами) и т.п., думаю все поняли что я имею ввиду.
Выглядеть это будет так:
Пусть точка B - система 1:1 например, тогда точка K - примерно 1:200, точка С - 1:500, точка L - примерно 1:750. Точка A - 2:1, точка N - примерно 2:200 и т.д.. Кроме того, ОЧЕНЬ рядом с точкой B находится система 1:999 (а именно чуть ниже и левее, если смотреть на рисунок).
Это предложение довольно логично, и решит проблему очень большого расстояния между 1:100 и 1:900, например.
Во-вторых. Это самое интересное. Предлагаю сделать возможным пролетать не по линии окружности, то-есть пролетая все системы между системой отправления и системой назначения, а внутри окружности. На рисунке выше - имеется ввиду возможность перелета из L в K по прямой LK, или, например, из B в C по почти (почему почти, объясню позже) диаметру BC.
Основываться эта новая система расстояний будет на текущих. Как вы понимаете, для начала нужно рассчитать диаметр этой окружности. Включив мозг, мы понимаем, что для системы 1:1 диаметрально противоположной является "как-бы система" 1:500,5, а не 1:500, как можно было-бы подумать. Тогда расстояние до этой "как-бы системы" равно диаметру, который нам надо посчитать.
Итак. В текущей системе расстояний расстояние от 1:1 до 1:500,5 по линии окружности равно 499,5*500 = 249750. (Тут, кстати, еще заметим, для итоговой формулы, что длинна полуокружности - 499,5 расстояний между системами)
Из геометрических соображений диаметр данной окружности в пи/2 раз меньше расстояния по окружности, то-есть он составляет 249750/(пи/2) ~= 158995,788. Радиус равен половине диаметра: R = 158995,788/2 = 79497,894.
Данную величину (при вводе данной идеи, разумеется, можно данную величину округлить до 79500) будем считать "константой радиуса рукава". Все расчеты будут зависеть от нее, и, соответственно, при каком-либо изменении баланса будет писаться не "расстояние между системами уменьшено с 500 до 400", а "радиус рукава уменьшен с 79500 до 63600". Хотя для игроков, конечно, понятнее будет формулировка "уменьшен на 20%", которую и следует использовать.
Все, основная идея высказана, теперь займемся проблемой расчета расстояний между различными системами, для этого обратимся к формуле зависимости длинны хорды от центрального угла, опирающегося на эту хорду:
L=2* R * sin(a/2);
где L - искомое расстояние между системами (хорда окружности), R - радиус рукава, a - центральный угол, опирающийся на искомую хорду. Последнюю величину мы так-же не знаем, вот ее формула (обычные очевидные соображения):
a = ( пи / 499,5 ) * Δ;
где a - искомый угол, пи ~= 3,14, Δ - разница систем по линии окружности. Последняя величина требует пояснения, мне сложно объяснить ее смысл в теории, я воспользуюсь приведением примеров:
разница систем по линии окружности (далее Δ) от системы 1:1 до системы 1:5 равна 4;
Δ от системы 1:200 до системы 1:300 равна 100;
Δ от системы 1:1 до системы 1:500 равна 499...
И вот тут мы сталкиваемся с проблемой - ведь по первому пункту данной идеи Δ от системы 1:1 до системы 1:999 равна 1 (а до системы, например, 1:950, она равна 50). Для того, что-бы посчитать такую сложную переменную, нашим дорогим разработчикам придется ужас! сооружать в коде конструкцию вида if (?) then (...) else (...). Это, несомненно, непосильный труд, потому постараемся упростить предыдущие две формулы путем вложения второй в первую, авось что-нибудь прояснится:
L=2* R * sin( ( пи/499,5 ) * Δ/2);
L=2* R * sin( пи / (999/Δ) );
Итак, путем равносильных преобразований (Δ ≠ 0) мы пришли к выводу - аргументом синуса является отношение (пи) к (999/Δ). И что мы видим - из-за того, что функция синуса такая прекрасная зеркально ведет себя что при увеличении аргумента с 0 до (пи/2), что при уменьшении с (пи) до (пи/2), мы можем переменную Δ рассчитывать просто как модуль разности между системами! То-есть для нас вообще не важно Δ = 1 или Δ = 998, результат будет одинаков (так-же неважно, Δ = 949 или Δ = 50, и т.п.).
Итак, как мы поняли,
Δ = |S1 - S2|;
где S1 - система отправления, S2 - система назначения, | | - знак модуля.
И итоговая формула принимает вид:
L=2* R * sin( пи / (999/ |S1 - S2| ) );
Все!
Теперь обобщу - я предлагаю заменить текущую формулу расстояний между системами, которая выглядит так:
L = |S1 - S2| * 500;
на, по моему мнению, лучшую формулу:
L = 2* R * sin( пи / (999/ |S1 - S2| ) );
где R ~= 79500 (точнее 79497,894 , но лучше округлить при вводе, можно даже до 80000, там разница копеечная) .
Теперь немного графиков, они красиво показывают, зачем все это надо (на графике R ~= 79497,894):
Я еще раз подчеркну, что сильное различие в правой части графика обусловлено лишь закольцовыванием рукавов, а так разница, в действительности, не высока. Однако закольцовывание - несомненно нужное нововведение, этого баланс просто требует. Цель графика - дать понять, что кроме закольцовывания нужно и изменить формулу расстояний между системами (я замечу, что по-сути ВОООБЩЕ КОД МЕНЯТЬ НЕ НАДО. Просто в одном месте отредактировать формулу (как я себе представляю), может в 2-3 местах. Главная переменная (модуль разницы систем) остается той-же. R - не переменная, а константа.
Кроме того, график дает понять, что пока разница между системами отправления и назначения меньше 200 - разницы в расстоянии вообще особо не будет. Зато при полете в диаметрально противоположную точку рукава формула существенно (в (пи/2) ~= 1,57 раз) уменьшит расстояние, что очень логично.
В заключение хочу добавить, что, по моему мнению, если Вася тщательно вчитается в текст, он поймет что это нужная фишка. Она никак не повлияет на ближние полеты, зато позволит игрокам, находящимся далеко друг от друга (например новичек в 11:900 и его учитель в 7:100) плодотворно сотрудничать. Я верю и надеюсь, что идея будет введена а я получу медальку первого класса ^^ , много ведь текста накатал
Забыл добавить - расстояния в другие рукава будут как и раньше считаться по Пифагору, ничего нового.
И без флуда, позязя)
Upd: если ВДРУГ в текущем коде Δ = |S1 - S2| может быть равно нулю - можно перевернуть дробь внутри синуса, для того что-бы не возникала ошибка "деления на ноль". А именно для этого случая формула принимает вид:
L=2* R * sin( пи * |S1 - S2| / 999 );
тогда синус равен нулю, и разница систем, что логично, так-же равна нулю (при S1 = S2, я просто не знаю как у вас там в коде реализован рассчет расстояний).
Upd2: чуть подредактировал в одном месте, по-сути ничего не изменилось. (23:00 мск).
Upd3:
1) Я не против что-бы просто ввели закольцованность, не вводя второй пункт данной идеи!
2) И еще, тут были вопросы по поводу работы Алл.Сетей. Я, кажется, придумал как это реализовать.
Территория альянса будет представлять из себя сектора круга - центр сектора в центре рукава, а прямые, являющиеся границами сектора, приходят из центра рукава в границы Территории на окружности.
Масштабирование этой системы на цилиндр не сложно.
В рассчетах Алл.Сети ничего не изменится - просто "представлять" Алл.Сеть можно будет не как "территорию на 2-мерной поверхности" а как "набор секторов круга в 3-мерном пространстве". Очень красиво, если представить. И, кстати, очень логично выглядит. Да, вообще супер! Пойду Васе скину в личку, и добавлю в шапку.
Картинка:
Тут сектор ABO - территория альянса в 1 галактике (то-есть на дуге AB все системы принадлежат альянсу), а сектор A1B1O1 - территория альянса во 2 галактике. Если во 2 галактике территория альянса меньше, то прямые AA1 и BB1 будут сужаться к плоскости 2 галактики. Красиво? Вроде очень. И логично же!
И трехмерная вселенная!
Upd4:
http://xcraft.ru/forum/topic_15520/4#post-412179 Хорошая картинка, объясняющая территорию Альянсовой Сети.
3 Июля 2014 22:48:58
Простите за нубский вопрос автору. Как будут вести себя бонусы которые дают альянсовые сети и генерал при сквозном пролёте окружности? Ведь насколько я понимаю эти бонусы в данный момент действуют при полёте вдоль линии окружности, т.е. размазаны по стенке цилиндра. Как они будут влиять на поведение вашего графика? Какую "глубину" действия будут иметь?
4 Июля 2014 23:19:51
Демоноид,
Все будет по старому но только ближе ) я думаю в системе еще надо уменьшить растояние что бы 100систем можно пролететь за 1.5-2часа
Все будет по старому но только ближе ) я думаю в системе еще надо уменьшить растояние что бы 100систем можно пролететь за 1.5-2часа
4 Июля 2014 23:24:34
Цитата: вова88
приведите хотябы пару примеров, эпичных войн и движений, из за вашей затеи?
Как могут быть бои из-за того чего ещё нет? Новые алсети и 3-4 виды галактики ещё не вышли.4 Июля 2014 23:24:55
4 Июля 2014 23:27:51
VasyaMalevich,
Дай людям крови :-) не забывай что будут кселнаги... так можно будет вайпнуть добровольно топов...предложив обмен 2 аков на один ксел наговский
Дай людям крови :-) не забывай что будут кселнаги... так можно будет вайпнуть добровольно топов...предложив обмен 2 аков на один ксел наговский
4 Июля 2014 23:30:20
KovaR
Извините, не могу это представить графически. Ведь даже при пролёте из 1:1 в 1:3 движение пойдёт по хорде. Пусть даже бесконечно мало отличающейся от стороны окружности. А вот перелёт из 1:1 в 3:1 уже пойдёт строго по по "стенке". Так какая "глубина" альянсовой сети? Как вариант решения вопроса я расматриваю возможность привязки "глубины" к уровню альянсовой станции.
Извините, не могу это представить графически. Ведь даже при пролёте из 1:1 в 1:3 движение пойдёт по хорде. Пусть даже бесконечно мало отличающейся от стороны окружности. А вот перелёт из 1:1 в 3:1 уже пойдёт строго по по "стенке". Так какая "глубина" альянсовой сети? Как вариант решения вопроса я расматриваю возможность привязки "глубины" к уровню альянсовой станции.
4 Июля 2014 23:37:01
Демоноид,
Что за термин глубина? Был радиус ал сети он же и останется...а картинку... уже поздно фантазировать пусть ка думаешь....
если вася платил бы за хорошие идеи наличкой тогда можно было помогать и все продумывать..поэтому мы лишь предлогаем...а доделывают они сами
Что за термин глубина? Был радиус ал сети он же и останется...а картинку... уже поздно фантазировать пусть ка думаешь....
если вася платил бы за хорошие идеи наличкой тогда можно было помогать и все продумывать..поэтому мы лишь предлогаем...а доделывают они сами
4 Июля 2014 23:40:56
Цитата: KovaR
ак можно будет вайпнуть добровольно топов...предложив обмен 2 аков на один ксел наговский
мне хоть и противно мое ксерджо говницо, но все таки ни на что не променяю
4 Июля 2014 23:49:49
мужик,
Мозг почти спит... просто понравился, да и по рассказам такой же хороший как и я )))
Мозг почти спит... просто понравился, да и по рассказам такой же хороший как и я )))
4 Июля 2014 23:50:29
4 Июля 2014 23:53:38
Цитата: Псимантик
Демоноид,
Что за термин глубина? Был радиус ал сети он же и останется..
Что за термин глубина? Был радиус ал сети он же и останется..
Почему "глубина"? Ну может по тому что в 3д пространстве при применении радиуса ал.сети получился бы шар? Да и в 2д выйдет круг, а не прямоугольник 3 на 5 систем (как анонсировал Василий). А автор высказал предложение летать в "подпространстве" между системами. А может прикрутить туда ещё и гиперпространственную технологию?
4 Июля 2014 23:57:02
В чем проблема с ал сетями? Я думал, что они будут действовать по поверхности цилиндра в точности так, как будут по обычной поверхности.
Или кто-то, смотря на атлас мира, думает, что Земля плоская?
5 Июля 2014 00:05:45
Цитата: twink
проблема с ал сетями? Я думал, что они будут действовать по поверхности цилиндра в точности так, как будут по обычной поверхности.
Я не говорю о действии ал.сетей на поверхности целиндра, я говорю о их действии при перемещении внутри его.
5 Июля 2014 00:10:51
Цитата: VasyaMalevich
Новые алсети и 3-4 виды галактики ещё не вышли.
А можно поинтересоваться чем они будут отличаться от старых которые только способствовали к закапыванию в шахты?Цитата: Демоноид
Почему "глубина"? Ну может по тому что в 3д пространстве при применении радиуса ал.сети получился бы шар? Да и в 2д выйдет круг, а не прямоугольник 3 на 5 систем (как анонсировал Василий). А автор высказал предложение летать в "подпространстве" между системами. А может прикрутить туда ещё и гиперпространственную технологию?
Вопрос на засыпку, а как быть одиночкам? Ну ладно я в Альянсе и многие по Альянсам, но нельзя игнорить стремление человека быть например одиночкой. Вася понятие одиночка своими ново введениями угробил всё свёл к алам в которых нет ограничения на вступление, нет ограничения по пактам и во общем много чего нет. Как ты уважаемый видешь при вводе АЛ сетей например жизнь сильных одиночек? Иммортал одиночкой был. Ты покажи мне хоть одного одиночку регнувшегося хотя бы пол года назад до этого бреда который щас, чтоб мог давать отпор хотя бы равным.5 Июля 2014 00:19:05
Демоноид,
решение 1. Запретить движение внутри цилиндра.
решение 2. Внутри цилинда АС не действует, захват территории идет только по поверхности.
решение 3. АС действует внутри цилиндра на соответствующее обычное расстояние. Если хорда, соединяющая 2 АС/планика/КПП равна или меньше радиусу их действия , то они могут замкнутся внутри цилиндра.
решение 4. Запилить 3д галу
если еще что-то придумаю - напишу
решение 5. Если в точке отправки и в конечной цели действует АС вашего ала - летишь с бонусами, нет - на нет и суда нет.
IRL социопатов лечат в психиатрических лечебницах.
решение 1. Запретить движение внутри цилиндра.
решение 2. Внутри цилинда АС не действует, захват территории идет только по поверхности.
решение 3. АС действует внутри цилиндра на соответствующее обычное расстояние. Если хорда, соединяющая 2 АС/планика/КПП равна или меньше радиусу их действия , то они могут замкнутся внутри цилиндра.
решение 4. Запилить 3д галу
если еще что-то придумаю - напишу
решение 5. Если в точке отправки и в конечной цели действует АС вашего ала - летишь с бонусами, нет - на нет и суда нет.
Цитата: Raynor_Jim
а как быть одиночкам?
IRL социопатов лечат в психиатрических лечебницах.
5 Июля 2014 00:19:05
twink,
Почему обязательна привязка к альянсам? Тоесть возможность развиваться одному изначально убита щас при реге. Ранее это было возможно при этом умные одиночки карали целые альянсы. Простите пониково называть не буду. Если вспомнить кто ОБП выжрал в одиночку так аж смех берёт когда кто то про социопатов вспоминает.
Почему обязательна привязка к альянсам? Тоесть возможность развиваться одному изначально убита щас при реге. Ранее это было возможно при этом умные одиночки карали целые альянсы. Простите пониково называть не буду. Если вспомнить кто ОБП выжрал в одиночку так аж смех берёт когда кто то про социопатов вспоминает.
5 Июля 2014 00:27:39
«
· Новые идеи ·
»
Информация
Вы не авторизованы
1 чел. читают эту тему (гостей: 1)
Пользователей: 0 Claude Bot