... And Justice for All... (c) Metallica Версия 1.41 Map Wizard приветствует Вас! Что это такое и зачем оно нужно. -------------------------------- Сей чудный (хоть и глюкавый) утиль предназначен Гейммастерам для использования на этапе генерации Галактики. Это не есть клиентская программа, и игроку она может понадобиться разве что для того, чтобы он мог посмотреть карту своей игры и свою территорию в несколько новом ракурсе. Что может сделать ГМ, в руках которого оказался Map Wizard? ----------------------------------------------------------- Наверняка Вы неоднократно встречали ситуации, когда кто-то живет в жирненьком скопленьице, а кому-то до ближайшей планеты три хода дудеть... Или когда у одного что ни планета - то жирные бовиноиды, а у другого всех нативесов - пара аморфусов да рептилии претрибал... Или по минералам лапу сосет... Все это можно считать частью игры, и не обращать внимания. А можно - обращать, и попытаться как-то выявить (и выправить?) хотя бы наиболее значительные перекосы и гримасы рандомайза, способные испортить игру равным соперникам, особенно - сильным игрокам, не склонным прощать соседу какие-то отставания в развитии независимо от причин... Так как Map Wizard может помочь ГМу в этом нелегком, но благородном деле? Я не посмел лезть своими кривыми ручонками в Великое Таинство Генерации Галактики. Бо то святое. Я предпочел курочить карту, ибо ее все равно курочат все, кому не лень. Поэтому MW можно рассматривать как некий генератор и редактор карт, с некоторыми дополнительными возможностями их просмотра и анализа. Основное внимание на всех этапах уделяется расположению стартовых планет рас - homeworlds. При анализе карт, MW может использовать (а начиная с версии 1.33 - еще и РЕДАКТИРОВАТЬ!) также информацию Хоста после генерации Галактики. Что ему нужно? -------------- Windows 95,98,NT,2000,... Экран желательно от 800х600, ибо 640х480 маловато будет. Почему оно такое глюкавое? -------------------------- А потому, что это мое "Hello, World!" в Дельфи и вообще вижуальном программировании. Начиная с версии 1.10, этот продукт есть результатом коллективного творчества разных людей, каждый из них фиксил какие-то мои глюки и добавлял свои собственные. Генерация карт. --------------- Для генерации используется специальный патентованный антибабановский алгоритм. Некоторым он известен еще по старому моему Генератору Бубликов. Основная идея - не расставлять хомы на заранее сгенеренной карте, а генерить всю карту "от хомов". Теперь генерить можно не только бублики и круглые карты, но и квадратные карты и даже прямоугольные. Стартовые положения хомов можно указывать как ручонками (тыкая мышой в координатную сетку), так и автоматически. Для автомата используется традиционная схема в "два круга", например 3 на внутреннем круге, 8 на внешнем. Дает вроде неплохой результат как для бубликов, так и для квадратных карт. Вырожденный случай - 0-11 - примерно то, что предлагают нам "мастера" Тима и Стериана. Указав на этапе генерации число рас 0, получите "обычную" рандомную карту, не озабоченную понятием стартовой планеты. Тимов шедевр xyplan.dat мог бы быть сгенерен в этом режиме. Существует некоторое число конфигурируемых параметров карты. По окончании генерации выдается некоторая статистика по плотности планет. Начиная с версии 1.41, можно использовать графические файлы *.jpg и *.bmp как шаблоны для генерации квадратных карт 2000х2000. Области черного цвета (#00#00#00) останутся пустыми, остальные будут случайным образом заполнены планетами. Установка хомов на готовой карте. --------------------------------- Если Вы используете уже имеющуюся карту (например, кластерную, спиральку, Тимову дефолтную, карту Украины и т.п.), Вы можете загрузить ее и выставить хомы вручную или с помощью любой внешней утилиты. Вершиной научной мысли в этом направлении я считаю Бабановский Spreader.exe. Из уважения к этому продукту, поддерживается считывание номеров хомов из спридеровского .out - файла. Можно положиться на свой художественный вкус и чувство гармонии, и тыкать мышой в цветной квадратик возле названия расы в правом нижнем углу экрана, затем - в планету на карте, и она будет считаться хомом для данной расы. Как бы там ни было, Вы можете вижуально насладиться зрелищем взаимного расположения рас на карте еще до того, как запустите хост. Сохраняется результат Вашего труда в текстовый файл (по умолчанию master.hws), оттуда же и считывается. Это просто 11 строк, в которых записаны номера стартовых планет. !!! С версии 1.06, при "анализе данных хоста" на уже сгенеренной карте определяются так называемые "лучшие" ("скоринговые"?) планеты. Заданное число номеров этих планет сохраняется в том же master.hws для возможного использования адд-онами. В этом случае, "главными ХВ" для каждой расы считаются ПЕРВЫЕ планеты каждой строчки, а за ними следуют зачетки В ПОРЯДКЕ УБЫВАНИЯ коэффициентов рулезности. Файл Master.hws в таком виде используется рефери SuperInvasion. Редактирование карты. --------------------- Можно взять мышой любую планету, которая плохо лежит, и кинуть куда хотите. Можно написать неприличное слово из планет в центральной дырке... Есть возможность подгонки контрольной суммы карты под Тимову Волшебную Цифру, без чего с Вами не захочет разговаривать суперклиент Planets.exe. !! Не подгоняйте волшебную цифру ПОСЛЕ генерации Галактики, если есть начальные корабли - их координаты скорей всего не совпадут с координатами планет, над которыми они висят. Поддержка данных хоста. ----------------------- Если на момент _загрузки_ карты в том же каталоге случайно обнаружен файл pdata.hst - он читается тоже, и данные о планетах доступны при тыканьи мышой в планету и при рассчете статистики по расам. Если после запуска Мастера, но до запуска Хоста чегой-то подвигать на карте - думаю, ничего страшного не случится. Контрольная сумма всех ништяков не изменится, ы? Если ГМ вздумает двигать планеты, когда карта уже разослана играющим, и они там чегой-то с этих планет загружают, колонайзят и т.п. - тут медицина бессильна, меня не пинать. Поддержка рефери "Текилловые Войны" ----------------------------------- Если в каталоге валяется файл cactus.log версии 2000 и выше, то пытаемся его прочитать и по той информации, которую прочитали в логе (!!!), выводится статистика (увы - без подсчета кактусов, _срубленных_ каждой расой - это в логе отсутствует!). Внимание! При перезапусках и т.п. в логе может сохраняться более одной записи на ход, тогда статистика "плывет". Лучше бы предварительно проглядеть лог на предмет наличия несуразностей. Считанные в логе кактусы можно вывести на экран. "Срубленные" выглядят еще более коряво, чем живые. Возможности просмотра. ---------------------- Scale - Масштабирование. При увеличении масштаба, карту можно двигать правой кнопкой мыши (WarCraft-style). Координатные сетки: Square grid - линейная - через 100 св. лет, для квадратной карты. Concentric circles - расходящиеся круги через 100 св. лет - для круглой карты. 1-turn cover - планеты, отстоящие на <=84 св. лет, соединяются линиями, чтобы видеть созвездия и цепочки планет для неотсвечивабельного перелета. 1-turn zones - кружки радиусом 84 св. лет вокруг всех планет. Может иметь смысл для точного редактирования карты при высоком разрешении. Чаще просто утомляет. Ownership forecast - Закраска планет. Считаются планеты, БЛИЖАЙШИЕ к хому расы. По умолчанию - 50. Если хомы рас расположены недалеко, то значительная часть территории может перекрываться. Такие планеты будут считаться "пограничными". На крупном масштабе будут краситься цветами национальных флагов всех рас - претендентов. При наличии Данных хоста, в этом режиме также отражаются [10?] рулезнейших планет кажной расы - квадратиками. !! Все это никак не глядит на то, чьими эти планеты есть в данных хоста! На то и форекаст, что делаем прогноз и анализ территории, исходя ТОЛЬКО из заданных координат стартового хома. Habitat forecast - Закраска территории. "Ближайшие" к хому N (50?) планет обводятся выпуклой фигурой в форме многогранника. Для эстетов. Располагает к творческим размышлениям о нелегкой судьбе отдельных рас. HW areas - концентрические круги в 84, 165, 246 световых лет вокруг хомов рас, напоминающие зоны покрытия операторов мобильной связи. Тоже для эстетов. Можно порытаться разглядеть, что лежит внутри каждого круга. Planet resources - только при наличии pdata.hst! Черточки рисуются возле планет, на которых "коэффициент рулезности" данного минерала (см. ниже) больше 15. Синее вверх - нейтрониюм, красное влево - тританиюм, желтое вправо - дюраниюм, аквамариновое вниз - молибдениюм. Криво? Зато видно. Natives - тоже только для счастливых обладателей pdata.hst! Планеты с нативесами обводятся цветными кружочками. Двойная толщина кружочка - у планет, у которых "Коэффициент рулезности нативесов" более 10. В большом масштабе, нативесы подписываются. Кратко. Но емко. ПЕСТРЫЕ ПЛАНЕТЫ - рулез форева! Если кого-то шокирует обилие ярких и жизнерадостных красок - мыша в Ваших руках, можете сделать все серым-серым, как взгляд сисопа, глядящего на картошку. Или приглушите яркость своего монитора. Редактирование. --------------- Доступно при наличии ДАННЫХ ХОСТА (pdata.hst) при кликаньи мышой по планете. Появилась возможность редактирования вормхолов и ионных штормов. Коэффициенты рулезности ништяков на планетах. --------------------------------------------- Для каждого из минералов (N,T,D,M), К*100 = _на_планете_+min(_в_коре_,(_плотность*50)) Таким образом, это _приблизительно_ пропорционально тому, что можно 200 фабриками выкопать за 25 ходов. Почему так? ИМХО, 50000 минерала с плотностью добычи 20 полезны не более, чем 1000 кт с нормальной плотностью, по крайней мере с точки зрения выравнивания шансов на старте. Выкопаете до лимита что там, что там максимум около 1000 тонн, К=10. Для нативесов (R), К*500 = _строй_*_число_нативов_*кр, где кр=2 для авиан и инсектоидов, 0 - для аморфов, 1 для всех остальных. Для "бонусных" с т.з. базы нативов добавляется +2. А, ну да. И для бовиноидов: К=К+(_число_нативов_/5000). Ибо они рулез. Физического смысла этот Rk не имеет. Типа, пропорционально тому, какое число денег можно при желании содрать. Но не сильно. Я просто подбирал так, чтобы планеты с бОльшим коэффициентом казались лично мне более привлекательными. Не более того. Расовые особенности при подсчетах коэффициентов рулезности не учитываются! То, что лизард быстрей копает или фед больше бабок собирает, или киб кого ассимилирует - то их проблемы и баланс высших порядков. Мое дело - _примерно_ прикинуть расклад. Учет климата: для планет температурой менее 16 или более 84 этот нативесный коэффициент домножается на 0.66, дабы отразить тяжкую долю местного населения. Также, для любой планеты (независимо от наличия нативов) добавляется +1 за климат (35-65), и -1/-2/-3 за (15/10/5- 85/90/95). Кроме этого, для планет, входящих в сферу жизни какой-либо расы, рассчитывается PPk - общий коэффициент рулезности с точки зрения расы. Как kk*(Nk+Tk+Dk+Mk+rr*Rk)+bb где kk- множитель, зависящий от расстояния до хома [по умолчанию 0.8 за 1 ход, 0.6 за 2 хода 0.4 за 3 хода до хома], rr- множитель "веса нативного к-та" [6], bb - бонус за возможность выкопать базу не сходя с места [10]. Этот коэффициент используется: - при выводе "информации по планете" - PPk - при подсчете "суммарных коэффициентов рулезности в режиме Info; - при сортировке "лучших планет". Так как могут быть разные трактовки и подходы к такому нелегкому делу, как поиск СуперЦифры, которая сразу же говорит, насколько полезна та иоли иная планета - введен файл mw_koef.cfg, в первой строчке которого можно указать коэффициенты kk для планет в 1,2,3 ходах, а также rr и bb. Файл mw_koef.cfg должен валяться в том же каталоге, где и карта, данные хоста и т.д., иначе будут работать значения по умолчанию. Т.о., можно манипулировать: - тем, насколько "крутыми" должны быть удаленные планеты, чтобы считаться лучшими (значения 100 100 100 вообще устраняют фактор удаленности от хома при рассчете этого показателя, а по умолчанию стоят значения, исходя из гипотезы, что анализируются первые 25 ходов, при чем планеты в ходе от ХВ выйдут на проектную мощность спустя 5 ходов, в 2 ходах - 10, в трех - спустя 15 ходов после старта - идея Опульского); - ролью "богатства минералами" в суммарной рулезности относительно климата и населения планеты (цифра выбрана достаточно произвольно, нужно пробовать и втыкать); - ролью "возможности никуда не отлетая поднять базу" - то, что по умолчанию, не позволяет этому безусловно радостному событию серьезно повлиять на определение "лучшей планеты", и сыграет разве что при "прочих равных". НЕ ПОДДАЮТСЯ ИЗМЕНЕИЮ (пока) следующие постулаты: - рулезность считается одинаково для ВСЕХ рас, всякие особенности в перенесении экстремальных температур, скорости добычи и прочая- считаются ФИЧАМИ РАС, на справедливость расклада Галактики не влияют и идут лесом. - главный хом в сортировке не участвует - смею надеяться, что он у всех рас одинаков; - всякие сколь угодно рулезные планеты, но не принадлежащие по "территории" ни одной расе или более чем одной (пограничные), и удаленные более чем на 3 хода от хома - ИГНОРИРУЮТСЯ. - Также не подлежат конфигурированию формулы и общие принципы. Есть идеи, как лучше - говорите, сделаю. Но загромождать продукт бантиками, в которых не сможет разобраться никто включая меня, я не буду. Статистика. ----------- Все считается _исключительно_ исходя из данных карты и указанных хомов. Фактическая принадлежность планет в данных хоста игнорируется. Столбцы отчета: --------------- HW - Номера стартовых хомов. NP - планеты, которые являются _ближайшими_ к той или иной расе. Любая ж планета есть ближайшей к кому либо? Туда и считаем. ("Равноудаленные" идут лесом!) RP - планеты из числа N (50?), которые не есть пограничными, т.е. относятся к "зоне" _только_ этой расы. Все "суммарные коэффициенты" далее берутся именно по этим планетам. 1T - Сколько планет лежит в ходе (84 с.г.) от главной. 2T - Сколько планет лежит в двух ходах (165 с.л.) от главной. Nk, Tk, Dk, Mk, Rk - суммарные "Планетарные Коэффициенты Рулезности" по минералам и по нативесам. Считаются так: берутся _планетарные_ КРы (т.е. с учетом коэффициента удаленности до хома расы) и суммируются только для тех планет, которые входят в RP. Ak% - хитрое отношение, призванное показать, насколько раса в целом обделена минеральными ресурсами: это произведение отношений Nk, Tk, Dk, Mk к "среднегалактическим" средним по каждому из этих минералов. Т.е., если каждого из минералов расе выпадает точно среднее число, то Ak=100% Если, к примеру, какого-то минерала вдвое меньше среднего, (или каждого - где-то по 84% от среднего), то Ak=50%. Если чего-то 50%, то для того, чтобы компенсировать это, чегой-то другого должно быть аж 200%! Т.е., недостаток чего- то должен компенсироваться _значительным_ избытком чего-то еще. Следствие: если чего-то 0, то Ak==0%, как бы хорошо не было со всеми остальными ресурсами! И это правильно. OPk% - еще более хитрое соотношение, эдакий суперкоэффициент, получаемый произведением Ak (общеминерального коэффициента) на аналогичное же отношение суммы нативесных коеффициентов расы к среднегалактическому. Типа, нативесы и минералы в целом должны компенсировать перекосы друг друга. Я не хочу, чтоб у всех было поровну. Но хочется, чтоб одно другим как-то компенсировалось! Если OPk% для всех рас лежит в диапазоне хотя бы от 30 до 300 - значит, в целом они как-то сравнимы по начальной обеспеченности. Практически никогда галактика без специальных действий ГМа этому условию не удовлетворяет. OPPk(N) - суммарный "планетарный коэффициент рулезности" для "лучших" N планет. "Матрица соседей". ------------------ Указываются попарно расстояния между хомами; если есть планеты, пограничные для пары рас (попадающие в "территорию как одной, так и другой расы), их число указывается в скобках. Что ГМу делать с полученной информацией - его проблемы. Лично я ничего не имею даже против тупого рандома. Тоже весело. Но если ГМ хочет воплотить в Галактике какие-то свои представления о справедливости - он теперь может это сделать. Например, расставить сладкие планеты по границам, чтоб было за что бороться. Проследить, чтоб не было кому-то более чем двукратных перекосов по планетам, нативам или минералам, хотя бы по территории "ближайших 15 планет" (увы, поглядев на результаты рандома, я убедился, что даже при нормальном расставлении рас таковые даже трехкратные перекосы в порядке вещей). Главное - не забыть сохранить с таким трудом установленную справедливость в виде и карты игроков (xyplan.dat), и карты хоста (xyplan.hst), во избежание недоразумений. Вообще, я лично считаю ГМов наиболее технически подкованной частью человечества, целиком им доверяю и не стал оскорблять глупыми вопросами типа "А не забыли ли Вы сохранить карту или список хомов?"... Рекомендуемая последовательность действий: ------------------------------------------ 1. Определиться со своими желаниями. 2а. Сгенерить карту встроенным супергенератором, или 2б. Найти готовую карту, расставить хомы спридером и загрузить. 3. Включить разноцветные пимпочки и посмотреть, что получилось. 4. Посмотреть анализ карты. 5. При необходимости - подвигать планетки или стартовые положения хомов. 6. Сохранить карту и список хомов. Переписать список хомов в пымастер.cfg. 7. Сгенерить Галактику Мастером или Пымастером или чем Вы там ее генерите. 8. Загрузить карту снова. Схаваются данные хоста. 9. Включить пимпы с ресурсами и нативесами, поглядеть все ли путем. 10. Посмотреть статистику с учетом ресурсов. 11. Уменьшить "число планет в территории" до 15, снова посмотреть статистику. 12. Двигать планеты и смотреть статистику, пока не надоест. 13. Сохранить карту, и .dat и .hst! 14. Сохранить статистику, чтобы ткнуть ее в бесстыжие рожи тех игроков, которые в конце партии начнут отчеты словами "... в какую задницу засунул меня редиска ГМ..." 15. Выходить из MW и запускать хост. "Пакетный режим" ---------------- Если запустить mw.exe [<Путь>] [<МинКр>] [<МаксКр>] то указав Путь, он сам загрузит все, что там лежит (если оно там лежит), как-то: карта xyplan.dat, данные хоста pdata.xst, список хомов master.hws. И избавит вас от выбора карты мышой. Если при этом указать еще хотя бы МинКр (при желании - и МаксКр), то она пропуздырит по загруженной карте трусилку этих КРов, и тихо вывалится. И если вдруг все всех рас окажутся в этом диапазоне, то визард создаст в указанном Пути файлец mw.chk, в котором об этом и сообщит радостно. А на нет и суда нет. Т.о, возможен (и даже иногда работает) такой батничек (mw_creat.bat): === :1 pmaster c:\hh mw.exe c:\hh 50 200 if exist c:\hh\mw.chk goto end goto 1 :end === ДОЛЖЕH ЗАМЕТИТЬ: 1) карта уже должна быть, хомы должны быть расставлены и желательно - совпадать в pmaster.cfg и в master.hws (считывать пымастеровый конфиг никак руки не дойдут). 2) если пожадничали с границами (например, указали интервал 99-101), то проблемы остановки этого перпетуум мобиле целиком ваши. Мне оно сгенерило что-то по указанным параметрам (50-200) раза с 90-го при идеально ровной карте. Как мы вообще играли-то раньше?... Прошу заметить, кстати, что 50% нижней границы не значит, что у расы все в 2 раза хуже. Это значит, что у нее все _немного_ хуже. Hо все. Или что-то одно - но в 2 раза. Hа величины типа 200%, 300% можно ИМХО и вообще не обращать внимания. Воспользоваться гиперрулезностью, ИМХО, намного сложней, чем пострадать от недорулезности. Глядите на нижнюю границу. Успехов. Счастья Вам, и пусть никто не уйдет обиженным ;-) Делал сие Евгений Горох, Киев, Украина, 2000. Goroh@ucr.kiev.ua, 2:463/246.39@fidonet.org Версия 1.10 - под редакцией Алекса Багрова, Санкт-Петербург, Россия 2:5030/1198@fidonet.org batmanwork@mail.ru Версия 1.20 - под редакцией Романа Жукова, Екатеринбург, Россия jadeite@mailru.com Версия 1.30 - под редакцией Дмитрия Романова, Киев, Украина 2:463/246.21@fidonet.org 4dr@mail.ru Версия 1.33 - снова под редакцией Романа Жукова, Екатеринбург, Россия jadeite@mailru.com Версия 1.40 - снова под редакцией Дмитрия Романова, Киев, Украина 2:463/246.21@fidonet.org 4dr@mail.ru Версия 1.41 - снова под редакцией Романа Жукова, Екатеринбург, Россия jadeite@mailru.com Spreader - автор Alexander Babanov, babanov@earthlink.net. Рулезно расставляет хомы на имеющейся карте. В мой комплект не входит, спрашивайте автора. Может валяться на home.earthlink.net/~babanov/vp Благодарю Вано Опульского, Александра Бабанова, Игоря Шашкова - за тестирование и идеи. Также огромное СПАСИБО всем Гейммастерам за их нелегкий, но благородный труд.