Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Спиралевидные карты
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Карты
Страницы: 1, 2
Lava
Карты сделаны на основе "Всегда готов". Эта карта для трёх игроков. На скриншоте финальный бой.
Скачать карту: https://yadi.sk/d/65hTa_Hy3Mx4oZ



hippocamus
Цитата(Lava @ 17 Sep 2017, 10:18) *
На скриншоте финальный бой.
lol.gif good.gif
Lava
Карты рисуются на компьютере Celeron 333, RAM 128 Mb со сдохшим вентилятором и пассивным охлаждением, под Windows 2000, FAT32 (а раньше и вовсе под Windows 95 English version, FAT16). HDD IDE 80 Gb, размеченным по 5 Гб (если сделать больше, то дефрагментация одной зоны занимает полчаса).
Техника рисования карты:
Lava
Вот что мешает рисовать дальше - так это глупость противника. А умнее его не сделаешь.
Нарисовал я карту на 4 города. Движение противника напоминает стохастический процесс. И остаётся только наблюдать за ним, как он ходит туда-сюда без всякого смысла. И ничего не сделаешь.
Коплю войска и двигаю их вперёд. Раз в месяц, а иногда и чаще.

Туман войны несколько помогает (это когда противник напускает туман; я его не делаю).

Может, другую игру посоветуете?
Господин Уэф
На скриншоте реально ФИНАЛЬНЫЙ бой? А что такой эпичный? Отродясь такой массовой баталии не видал.
hippocamus
Господин Уэф, я так понял, комп всех более-менее героев слил ещё до того, как ГГ дошёл до его города. Но - да, в таком случае ИИ просто напрочь негоден на таких картах.
Lava
Господин Уэф, я засел в предыдущем замке. Когда подошло пополнение, навалился всей массой на последний участок карты. По пути вынес 3 оставшихся героя противника. А в городе засел ещё один. Последний.
На таких картах перемещение противника затруднено тем, что ширина прохода всего 1 клетка. Компьютер это очень нервирует. И он банально не может сообразить, что МОЖНО ПРОЙТИ, если одного героя куда-нибудь подвинуть.
Вот если бы ширина прохода была две клетки... компьютер играет намного активнее. Я когда-то пробовал несколько лет тому назад.
Господин Уэф
Ясно. Значит такие карты только для PvP годятся? Или для новичков, которые только осваиваются (интересно, есть такие smile.gif ).
hippocamus
Цитата(Господин Уэф @ 24 Sep 2017, 17:44) *
Или для новичков, которые только осваиваются (интересно, есть такие smile.gif ).
Эту категорию никогда нельзя сливать. Это могут быть наши дети. Если не твои - то мои уж точно ))
Lava
Очередная карта. Скачать:
https://yadi.sk/d/gAtysAFm3NjBrN

Превью:


Скриншот:
Lava
Ещё две новые карты. Скачать: https://yadi.sk/d/pQ3PvoMX3NjrJ5



Lava
Ещё пара карт побольше. Скачать первые пять карт: https://yadi.sk/d/T0xn1jra3NjxZY



Lava
Очередные пять карт. Скачать: https://yadi.sk/d/95gkN2O73PRg4G
"- Нельзя впихнуть невпихуемое."
- Можно...









Lava


https://yadi.sk/d/41RmBjkY3QUHKi
Lava


https://yadi.sk/d/n8_ASaqf3QfTzW
USBhere
Сыграл последнюю карту. В итоге так и не понял в чем заключается фишка подобных карт idontno.gif
Lava
Я вообще-то собираюсь сделать большую карту. А эти - тренировочные.
Но уже который год собираюсь и всё никак не дойду. Так и тренируюсь... время от времени...

Тренировочные карты нужны, чтобы выявить закономерности - какие лучше параметры выбрать (там же разные варианты).
Кроме того, на больших картах будет "эффект тумана": когда компьютер обладает Некрополисом, он выпускает облако тьмы. Хотелось бы поблуждать в этой тьме. Но это будет на большой карте, а пока не так интересно.

Карта на пять игроков, но размером побольше.



https://yadi.sk/d/GzTJpX0h3QwT6v
Lava


https://yadi.sk/d/NRYwZpLC3R6vzK
Lava


https://yadi.sk/d/WLGK-wJo3R7XRK

Как я рисую карты:

Lava
Скачать комплект из 16 карт:
https://yadi.sk/d/UOpBUcxA3R8yvo (2,8 Mb)
Lava
Так, товарищи! Моя мечта сбылась. В ночь с 31-го декабря по 1 января, пока за окном бумкало и бабахало от салютов и фейерверков, я делал эту карту. На карте 17 городов. Тестирование показало удовлетворительный баланс. По крайней мере, самый лучший баланс, который я когда-либо получал. Общее впечатление - скоростное прохождение, speed-run.
Скачать карту:
https://yadi.sk/d/2uaSImBE3R9fvC

Lava
Дано: "Heroes III".
Надо: нарисовать карту, состоящую из дуг 1/8 окружности.
Среда разработки: MS-DOS, Turbo C, Windows 95; Celeron 333.

Для этого надо нарисовать границу окружности, а потом составить карту из них.
Программа, рассчитывающая границу окружности:
Код
/*   Радиус   */

#include <math.h>
#include <stdio.h>

main ()
{
   int a, b, c, d;
   FILE *g;

   /*   a - радиус, для которого ведётся расчёт
        b - максимальное значение, для которого считается квадратный корень
        c - счётчик
        d - рассчитанное значение границы окружности   */

   g = fopen ("1.txt", "w");
   for (a = 1; a < 61; a++)   /*   внешний радиус 1/8 окружности   */
   {
      b = a / sqrt (2) + 2;   /*   верхняя граница расчетов   */
      fprintf (g, "r = %i\n", a);
      for (c = 0; c < b; c++)
      {
     if (c == a) break;
     d = sqrt (a * a - c * c - .0001) + 1;
     if (d < c) break;
     if (d == a) continue;
     fprintf (g, "%i - %i\n", c, d);
      }

      fprintf (g, "\n");
   }

   fclose (g);
}

В результате получается файл, содержащий рассчитанные границы окружностей различных радиусов.
Но окружность получается неровная. После ручной правки получается следующее:
Цитата
r = 1

r = 2

r = 3

r = 4
3 - 3

r = 5
3 - 4

r = 6
4 - 5

r = 7
4 - 6
5 - 5

r = 8
4 - 7
5 - 7
6 - 6

r = 9
5 - 8
6 - 7

r = 10
5 - 9
6 - 9
7 - 8

Скачать заготовки карт 3 - 12: yadi.sk/d/E7Bi8tVh3Xp2e9
Скачать программу для расчёта радиусов: yadi.sk/d/0C1Ga-OX3Xp2zG
Скачать файл с рассчитанными радиусами: yadi.sk/i/rWN_PXeC3Xp39B
Получились такие заготовки карт:



















t800
Цитата
Программа, рассчитывающая границу окружности:


Вообще это ИМХО код, а не программа

ЗЫ Вот чуток подправил чтоб все могли пользоваться через любой онлайн компилятор



см. http://cpp.sh/4pcsf
Lava
Продолжение того же самого. Ещё 7 заготовок для карт. Скачать:
https://yadi.sk/d/nX9FmDq93XvngR













Lava
Скачать 7 карт: https://yadi.sk/d/jvBPFjrb3XwBco













Lava
Кроме того, что я рисую, можно создать кучу модификаций. Перечислю некоторые:
1) Можно рисовать не только по суше, но и по воде. К сожалению, проходимость карты снижается. Вода является дополнительным препятствием. И лодки есть не у всех, к сожалению.
2) Можно рисовать проход шириной не одну клетку, а две или больше. Это резко повышает активность противника, он начинает "бегать" охотнее. Скорость игры повышается, он перестаёт просто сидеть в замке и тупо копить войско.
3) Можно рисовать не один проход спирали, а два (или больше) параллельно. К сожалению, при этом резко возрастает сложность рисования карты, приходится собирать больше информации.
4) Можно рисовать не одну спираль на карте, а несколько, причём с разным расположением.
5) Можно рисовать вообще не спирали, а какие-нибудь другие геометрические фигуры. Естественней всего - квадраты и прямоугольники. Это резко упрощает процесс создания карты. К сожалению, при этом теряется красота и играть становится неинтересно. Становится очевидной ненужность в игре "углов".

Ну и так далее. Модификаций может быть много. Их можно комбинировать.
Lava
Заготовки карт. Две спирали. Стартовые радиусы: от 6 до 20. Ниже дана ссылка на скачивание заготовок.
Я пытался сделать одну спираль. Но что-то у меня не получилось. Если спираль узкая - она накладывается сама на себя. Теряется круглость. Есть сделать её чуть пошире - промежуток между витками становится великоват. Пришлось бросить. Эх, дискретность...

https://yadi.sk/d/_6DKY_sew7iheA











--------------------











--------------------









Lava
Готовые карты в архиве.
https://yadi.sk/d/HsybZmjfEHrqkA











Lava
Схемы

Циклические схемы изменения радиусов спирали.

1. Схема 1-1-0.
Период схемы 3. Слишком узкая. Налазит сама на себя, становится тесной.

2. Схема 0-1-1-1.
Период схемы 4. В самый раз, но однообразна. Приходится чертить даже большие карты, заранее зная, где и какие радиусы будут.

3. Схема 0-1-1-1-1.
Период схемы 5. Слишком широкая. Со временем появляются интервалы между витками, а хотелось бы, чтобы витки прилегали друг к другу вплотную.

4. Схема 2-2-1-1-1.
Период схемы 5. Двухспиральная схема.
При рисовании возникают "скачки", которые приходится мысленно компенсировать временным сдвигом в начале очередного круга.
Построены карты с начальными радиусами 6...20. Вполне возможно построить карту с R=30, сем сейчас и занимаюсь. Ожидаемое число городов на карте - 16 (хотелось 24).

5. "Скачкообразная" схема: 0-0-1-2, 0-0-2-1, 0-2-1-0 и т. д. (new!)
Экспериментальная идея на будущее. Период схемы 4, одна спираль. От варианта (2) отличается отсутствием однообразия.
В случае неудачи возможен вариант с периодом 5: 0-0-1-1-2, 0-0-1-2-1 и т. д.
Lava
Карта радиуса 30 на 16 городов. Играется легко и комфортно, по крайней мере до середины. Присутствует Грааль. Приключения вам гарантированы.
Также в архиве имеется заготовка карты, то есть вы можете творить сами свои собственные модификации, а не создавать "с нуля".

https://yadi.sk/d/vAs23K0XKIhVWg

Lava
Еще раз то же самое. Девять заготовок карт.
https://yadi.sk/d/bJ_3qVt5ilOGhw

Lava
Три готовых карты.
Радиус 7, 10 и 14. На 2, 3 и 5 городов. Размер S.
Скачать архив со скриншотами: yadi.sk/d/EMpgkKen9sPQlA
Lava
Еще пара новых карт.

Скачать: yadi.sk/d/N0r4HkESVLhhEg

Lava
То же самое на 4 и 5 игроков.

yadi.sk/d/m5wnbNWjDk2m_w
Lava
Карта на 7 городов.

Скачать: https://yadi.sk/d/IOWlIi_mzibR9Q

Lava
https://yadi.sk/d/jGQDSNCCiec9gQ
- карта на 9 городов

Lava
При рисовании спиралевидных карт я придерживаюсь следующих правил.

1) Надо выбрать заготовку карты. (Можно, правда, сгенерировать рандомную.) Беру карты "Heroes III: Восстановление Эрафии", сортирую по размеру файла с картой. Самой первой оказалась карта "Всегда готов". Поэтому я рисую на ней.

2) К сожалению, на карте слишком сильные монстры. Поэтому приходится почти всех монстров удалять, иначе их не пройти! Чтобы карта не оказалась без монстров, я просто понизил ранг всех монстров на 2.

3) Затем надо удалить всех игроков. Я буду расставлять своих.

4) Выбираем стартовый радиус карты. 1, 2, 3, ... Если карта называется "3 Good to go 2", это значит, что за основу взята карта "Good to go" ("Всегда готов"), стартовый радиус 3, и на ней получилось 2 города (то есть игрока).

5) Последовательно увеличивая радиус, увеличиваем размер играбельной части карты. Получаем кучу карт. "Настоящих" или "тренировочных".

6) Выбираем число ветвей. 1, 2, 3, 4... Одна ветвь означает, что вся карта проходится за один проход. 2 означает, что сначала мы идем к центру, а потом обратно. Три означает, что идем сначала к центру карты, потом обратно, а потом опять к центру по ветвям спирали. Ну и так далее. (Вспомните спиральные галактики.)

7) Выбираем схему карты. На примере односпиральной карты:
Через один виток спирали спираль становится ближе к центру. Схема выбирает, на сколько именно. Общее правило заключается в том, чтобы спираль была достаточно плотная (чтобы покрывать как можно большую площадь и иметь наибольшую длину при той же площади), и в то же время витки спирали не должны налезать друг на друга (на предыдущие ветки), чтобы спираль получилась хотя бы приближенно красивой.
Примеры схем: 1-1-0, 0-1-2, 0-1-1-1, 0-1-1-1-1 и так далее.
Lava
Переписал программу для расчета дуг различного радиуса (которые нужны для рисования этих самых дуг на карте "Heroes III").
Вариант под DOS переделал под Windows.

Код
/*   p1
      Язык Visual C++ 6.0
      Консольное приложение
      Радиус   */

#include <math.h>
#include <stdio.h>

main ()
{
   int a, b, c, d;
   FILE *g;

   /*   a - радиус, для которого ведётся расчёт
          b - максимальное значение, для которого считается квадратный корень
          c - счётчик
          d - рассчитанное значение границы окружности   */

   g = fopen ("1.txt", "w");
   for (a = 1; a < 61; a++)   /*   внешний радиус 1/8 окружности   */
   {
      b = (int) (a / sqrt (2) + 2);   /*   верхняя граница расчётов   */
      fprintf (g, "r = %i\n", a);
      for (c = 0; c < b; c++)
      {
         if (c == a) break;
         d = (int) (sqrt (a * a - c * c - .0001) + 1);
         if (d < c) break;
         if (d == a) continue;
         fprintf (g, "%i - %i\n", c, d);
      }

      fprintf (g, "\n");
   }

   fclose (g);
   return 0;
}


Lava
Ещё раз то же самое.
Применяя предыдущую программу, нарисовал заготовки для карт Heroes III.
Эти заготовки надо ещё проверить - нет ли где ошибок, потом посмотреть, чтобы артефакты не перегораживали дорогу (иначе при определенной комбинации карта может стать непроходимой). Задать города и начальные условия.

Скачать заготовки карт: https://yadi.sk/d/NSc86iPLpgXC5g













Lava
Продолжение того же самого.

Скачать заготовки карт: https://yadi.sk/d/iFtzwmBReYHD4w













Lava
Здравствуйте! Очередная карта на 9 городов. В архиве изображения, карта и заготовка.
Скачать: https://yadi.sk/d/9zGiPwuKoH_v9g

Lava
Архив карт.
С заготовками (то есть не только готовая карта, но и "скелет", готовый к разметке).
Всего 7 карт.
От 2-ух игроков до 8-и.
В архиве присутствуют скриншоты.

https://yadi.sk/d/RoaXqULP7xa58g
Lava
Карты из предыдущего поста.













Lava
Третья карта из серии двухспиральных. Она показалась мне легкой.
В архиве 3 карты, включая две предыдущие + заготовки + скриншоты.

Вообще этот тип карт легко проходится. Не знаю почему. Изменения вроде минимальные, а у противника больше времени на подготовку.
Скачать: https://yadi.sk/d/vuUU9M873Sr3jA

Lava
Очень интересная карта. Здесь идет бой не одним, а двумя войсками. На ее прохождение у меня ушло полгода, или один вечер. Сначала я захватил полкарты, но потом пришлось отступить до начального города. Потом я снова захватиил полкарты. Опять подрались.
Играл за некромантов - так выпало.
https://yadi.sk/d/klWiQSPgEuByRg

Lava
Продолжение того же самого. Карта на шесть городов.

https://yadi.sk/d/uQ1cVFkJPXvnLA

tarmo
а можно понять зачем это, что за код(то есть какое отношение он имеет к редактору) и чего вы хотите добиться
Lava
Цитата(tarmo @ 30 Oct 2019, 00:44) *
а можно понять зачем это, что за код(то есть какое отношение он имеет к редактору) и чего вы хотите добиться

1) Это нужно затем, чтобы играть против компьютера. Исследовать всякие эффекты - например, туман войны или поведение компьютерных союзников, торговлю...

2) С помощью кода вычисляется, как рисовать дуги окружностей. По ним можно нарисовать окружность для выбранного "кругового" стиля карты.

3) Хочу нарисовать большую карту и поиграть на ней. Карт бывает много и они разные.
Кроме того, я получаю эстетическое удовольствие в процессе рисования карт.

Карта на 5 городов. Расстояние между городами 30 шагов.

Скачать карту: https://yadi.sk/d/5q5-Qh6v1qEBKw

Lava
Карта на 8 городов. Расстояние между городами 30 клеток.
Дальше я сделал карты с расстоянием 40 клеток как следующий "подход" (хотя вы его уже видели).

Скачать карту: https://yadi.sk/d/8sEYBizSNZvbHw

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.