M.A.X.    Вы вошли как гость
Российский Клуб игроков M.A.X.
 
[Новости]   [Новичку]   [Энциклопедия]   [Документы]   [Файлы]   [Игроки]   [Архивы]   [Архив форума]  
[Новый сайт]   [M.A.X. Gold]   [Партии]  

 
 
 
Архив форума  МаксГолд
[Основной форум] [Голосования] [МаксГолд] [Off-Topic]
 


Вниманию разработчиков M.A.X. Gold: COST  -  Geo,  20.09.2004  3:20:40

Здесь я собираюсь изложить выявленные мной закономерности, касающиеся влияния параметра Cost на продолжительность строительства объектов (производства юнитов) и затраты ресурсов, а также на то, как влияют исследования Cost на снижение параметра Cost объектов (юнитов).

Для начала рассмотрим чистую стоимость (как я ее обозвал для себя), то есть некоторую абстрактную величину, на основании которой можно получить все интересующие нас величины. Чистая стоимость является натуральным числом, показывающим сколько единиц строительства нужно вложить в строительство объект (производство юнита) для его завершения. Для обозначения различной скорости строительства S я буду использовать числа (1, 2, 3) вместо привычных обозначений (х1, х2, х4). В зависимости от скорости строительства в строительство объекта (производство юнита) вкладывается часть стоимости P, которая вычисляется по формуле:

P=2^(S-1)

а расход руды R выражается формулой:

R=S*P=S*2^(S-1)

Если выполнить вычисления, то получим, что в зависимости от скорости строительства (х1, х2, х4) за один ход в строительство объекта (производство юнита) вкладывается (1, 2, 4) единицы стоимости при расходе (1, 4, 12) единиц руды.

Чтобы предотвратить недоуменные вопросы, вызванные расхождением приведенных мной цифр с реальной практикой, повторюсь, что я веду речь о некоторой чистой стоимости. Чтобы получить реальные цифры, нужно абстрактные стоимость, часть стоимости и расход руды домножить на нормировочный коэффициент. Нормировочным коэффициентом является расход руды за один ход при минимальной скорости строительства объекта (производства юнита). Для строительства объектов конструктором или инженером нормировочный коэффициент равен двум. При производстве юнитов - 3. При производстве пехоты и инфильтраторов нормировочный коэффициент равен единице. Думаю, что умножение вы сможете выполнить и без меня, поэтому дальнейшие рассуждения я буду вести опять для чистой стоимости безотносительно того, что именно мы строим или производим.

Как определяется время производства юнитов и затрачиваемые при этом ресурсы, надеюсь, уже понятно: мы просто каждый ход добавляем определенную часть стоимости, зависящую от скорости производства, пока не получим полную стоимость юнита. Ничего хитрого в этом нет, так как заводы подключены к шахтам и хранилищам, соответственно они не имеют ограничений по емкости. А если добыча руды плюс накопления в хранилищах не обеспечивают необходимого количества руды, то производсто просто останавливается. Единственная хитрость - это строительство юнита, чья стоимость при делении на 4 дает в остатке 3, на максимальной скорости. Например, стоимость скаута в единицах чистой стоимости 3 (в реальности - 9). Тем не менее, мы можем произвести его за 1 ход в режиме х4, вложи в него 4 единицы стоимости. Это нужно для ускорения производства. Поэтому не удивляйтесь, что иногда боле дорогие и более дешевые юниты на скорости х4 строятся одно и то же время при затратах одного и того же количества руды. Мы тут жертвуем эффективностью ради скороости.

Со строительством объектов дело обстоит несколько хитрее: инженеры и конструкторы имеют ограниченную емкость (40 и 60 соответственно). К тому же они могут быть не полностью загружены. В этом случае для определения скорости строительства и затрат руды предлагаю использовать следующую процедуру (буду рассматривать максимально сложный случай - строительство объекта на скорости х4; еще раз подчеркну, что рассуждаю относительно чистой стоимости, для получения реальной нужно все умножить на 2, хотя можно все вычисления провести именно для чистой стоимости, а на 2 умножить только резулльтат):

X1:=Cost MOD 2;

X2:=Cost MOD 4 - X1;

X4:=Cost DIV 4;

Мы получаем количество ходов строительства в режиме х1б х2 и х4 соответственно. Вычисляем по приведенным выше формулам затраты руды и сравниваем с количеством, имеющимся в строителе. Если нужного количества руды в строителе нет, то уменьшаем X4 на 1 и увеличиваем X2 на 2 (то есть как бы заменяем один ход в режиме х4 двумя ходами в режиме х2). Подчеркну, что нужно начинать расщеплять именно с ходов в режиме х4, так как заменяя один ход в режиме х4 двумя ходами в режиме х2 мы добавляем к общему времени строительства 1 ход, но выигрывавем 4 единицы руды. Заменяя же один ход в режиме х2 двумя ходами в режиме х1 мы также увеличиваем общее время строительства на 1 ход, но выигрываем при этом всего 2 единицы руды. Если мы расщепили все ходы в режиме х4 но затраты на производство все равно превышают запас в строителе, то значит режим х4 невозможен. Начинаем расщеплять ходы в режиме х2. Короче, все это выглядит жутко муторно и непонятно. Так что если возникнут проблемы, то я готов просто написать соответствующий кусок кода на Дельфях.

Кстати, исследования стоимости показали, что в оригинальном МАКСе имеются глюки. Например, все знают досадны баг, когда после исследования Cost 10% для строительства шахты требуется 50 единиц руды за 5 ходов, но строительство невозможно начать, если в конструкторе нет 56 единиц руды, хотя после завершения строительства 6 единиц остается неиспользованными. Так вот, здесь какой-то глюк разработчиков. Дело в том, что после соответствующих исследований чистая стоимость шахты - 11=4+4+2+1. Затраты руды, соответственно, 12+12+4+1=29. То есть, если мы переведем в реальные единицы, то получим, что после завершения исследования Cost 10% мы должны были бы иметь возможность строить шахту за 4 хода и 58 единиц руды. Жаль все же, что разработчики здесь облажались.

Про производство пехоты и инфильтраторов могу сказать только одно: оно возможно только на первой скорости. Ускорение производства человеков не допускается.

Все. Теперь поговорим о том, как влияют исследования Cost на изменение стоимости объектов (юнитов). Рассуждать продолжаю в терминах чистой стоимости. Формула проста до безобразия:

Cost=Round(BaseCost/(1+X)),

где BaseCost - базовая стоимость объекта или юнита (стоимость до начала исследований), X - выполненные исследования (10% - 0.1, 20% - 0.2 и т.д.), а Round - функция округления до целого числа по правилу 0.5. Маленькое замечание: чистая стоимость не может быть меньше 1. Нужно проверить результат вычисления по формуле, и если после округления мы получаем 0, то нужно исправить на 1. Собственно говоря - все.

Разве что, я не советовал бы народу программировать с дробными числами. Это и медленнее, и глюки могут возникать. С этой точки зрения предлагаю следующую формулу для получения стоимости (на Паскале):

Cost:=(BaseCost*20/(10+X)+1) DIV 2

А для X используем следующие значения: 10% - 1, 20% - 2 и т.д. Результат тот же самый, но не надо возиться с дробными переменными.

Теперь совсем все. Если будут какие-то непонятки, то лучше, наверное, писать мне на мейл.

Примечание: Результаты влияния исследований Cost на стоимость строительства объектов провереная до уровня Cost +200%, на производство юнитов - Cost +100%