Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Kolhe & Co и их стратегические побегушки

Kolhe & Co и их стратегические побегушки 9 года 7 мес. назад #79450

  • Kolhe
  • Kolhe аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 348
  • Спасибо получено: 171
  • 2 место
Преамбула

Если проект, скриншоты которого я выкладывал недавно, уже практически готов к релизу, то второй проект в котором я участвую только начинает свой путь. И в отличии от первого этот проект я делаю не один ― вместе со мной работает целая команда. Все ее члены очень далеки от мейкерского сообщества и решили работать в мейкере лишь потому что я им предложил. Но они действительно толковые ребята, знающие свое дело. Возможно я расскажу о нашей команде поподробнее. Но в следующий раз.

Помимо этого хотелось бы уточнить, что этот блог не сколько об игре, сколько о развитии идеи. Поэтому форматом он может отличаться от других дневников разработчиков на этом форуме. В этом блоге я полностью опишу развитие нашего проекта, с какими проблемами нам пришлось столкнутся и как мы их решали. Полная биография нашего обучения; взлетов и падений. Возможно кому-то это будет интересно, и тогда, я надеюсь, что вы не повторите наших ошибок.

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

В первой части нашего блога я бы хотел рассказать с чего все началось.

Введение

Мы решили сделать небольшую простую систему для игры. Это был очень важный момент ― механика должна быть простой и легкой, но между тем наиболее приближена к нашему идеалу. И чтобы ее потом можно было расширить, не переделывая почти все. Задачка довольно не простая.

Более трех дней мозгового штурма, более ста (!) отброшенных вариантов, куча жарких споров в скайпе и наконец мы приблизились к тому, с чего мы бы хотели начать.

Разумеется, это не более чем схематический рисунок для наглядности, а не финальный вид игры.

Итак, мы начали экспериментировать. Мы создали небольшое поле для сражения, стараясь сделать его как можно более простым. На нем изображена река и ведущий через нее мост. Так же мы сделали несколько тестовых юнитов. Рыцарь, Лучник и Меченосец будут сражаться на стороне игрока, а три Зомби и Орел будут сражаться на стороне противника. На юнитах пока останавливаться не будем, первым делом надо определиться с поверхностью, на которой юниты будут перемещаться и биться.

Система препятствий будет как и в других подобных играх, но проще. На обычные клетки юнит может спокойно наступить и после продолжить движение. На некоторые клетки юнит имеет возможность наступить, но после не может продолжить движение (например, болото или зыбучие пески). И, наконец, будут такие клетки, на которые юнит не может наступать вовсе (вода). Некоторые юниты будут иметь особенности, которые нарушают эти правила (например, особенность “Полет” Орла позволяет ему наступать на любую клетку, а также игнорировать особенность клеток типа болото). На карте нет объектов, которые закрывают юнитам обзор, но можно добавить небольшой бонус к обороне юнитам, которые находятся на таких клетках (например, холм или вышка).

Базовые Юниты

Каждый юнит имеет несколько самых базовых характеристик. Две, пожалуй, самые основные это Скорость ― количество клеток, на которые может переместиться юнит за один ход, и Радиус Атаки ― величина, которая выражает расстояние на котором юнит может атаковать цель. Существуют различные модели поведения для передвижения и атаки юнитов. Например, Меченосец может перемещаться в пределах двух клеток в любом направлении и атаковать всех юнитов в радиусе одной клетки вокруг себя. Вместе с тем, Лесной Волк может перемещаться вплоть до 4 клеток, но только по прямой и атаковать он может лишь следующую клетку по прямой, в соответствии с его траекторией движения (если он не переместился, он может атаковать соседние клетки).

Для упрощения отслеживания юнитов и объектов на местности, они не будут иметь динамически изменяющихся параметров. Поэтому не будет ни очков здоровья, ни очков магической энергии, ни ярости, ни чего-то подобного. Юнит либо жив, либо мертв. Каждый юнит является статичным объектом, как шахматная фигура. Они могут отличаться друг от друга, но Лучник идентичен всем другим Лучникам на поле боя.

Но настолько простая модель смотрелось довольно скучно (пусть даже на самом начальном этапе) и мы решили ввести единственное исключение ― юниты могут получить негативные (дизиз) или положительные (бафф) состояния. Каждое из них должно сопровождаться уникальным и понятным с первого взгляда эффектом. Если юнит отравлен (при воздействие этого состояния юнит имеет 2% шанс умереть в этом раунде), он должен окрашиваться в зеленый цвет с маленькими пузыриками плавающими над ним. Пусть это и несколько банально, но зато интуитивно понятно каждому, кто хоть раз играл в подобные игры.

Одновременно юнит может быть подвержен только одному состоянию. Дезизы всегда должны аннулировать баффы, и некоторые дезизы должны иметь более высокий приоритет над другими. Например, ранение (защита = 0, юнит не может двигаться) должно аннулировать отравление.

Состояния не имеют счетчиков и действуют на протяжении всего сражения. Некоторые состояния могут с определенным шансом аннулироваться в конце хода.

Сражение

Отлично, модель для юнитов мы спроектировали. Не смотря на то, что она простая до нельзя, у нас на нее ушло почти неделя. А теперь представьте сколько работы за раз нам пришлось бы сделать, если бы мы сразу решили бы делать сложную механику с нуля. Вероятно бы мы потратили бы очень много времени и после чего бы плюнули на это дело, потому что, я уверен на сто процентов, у нас бы ничего не вышло. Мы подумали обо всем этом когда дошли до этого этапа и в очередной раз порадовались, что приняли удачное решение создавать механику игры постепенно: от простого к сложному.

Так как мы отказались от хит поинтов и прочих подобных параметров, наша система боя построилась вокруг простейшего уравнения. Каждый юнит имеет значение атаки (АТК) и защиты (ЗАЩ) от 0 до 5. Базовый шанс попадания равен 60%. При атаке вычитается из значения атаки атакующего (А.АТК) значение защиты цели (Б.ЗАЩ). Каждая единица в значениях атаки и защиты равна 10%.
Успех = 10% * (А.АТК - Б.ЗАЩ) + 60%

Успешное попадание удаляет юнита с поля боя (уничтожает).

Таким образом, Меченосец имеет 60% шанс попасть в Лесного Волка (при условии, что АТК и ЗАЩ Меченосца равно 3, а Лесного Волка 2), но лишь 50% на попадание в другого Меченосца. Очевидно, что с подобной формулой юниты, не зависимо от класса, имеют довольно приличный шанс на смерть, поэтому баланс здесь сдвинут в пользу обычных юнитов. Если шанс успеха не может быть ниже 100% (А.АТК = 5, Б.ЗАЩ = 0), это засчитывается как автоматический успех, но может иметь значение какое-то состояние на юните. Но при этом, даже самые худшие юниты атакуя лучших (А.АТК = 0, Б.ЗАЩ = 5) будут иметь хоть и не большой (10%), но шанс на успех.

Просто, но со вкусом.

Пешки, Рыцари и Короли

А теперь добавим немного больше особенностей. Юнитов следует как-то классифицировать, поэтому мы приняли решение разделить их на типы: Пешки, Рыцари и Короли. В начале игры игрок получит одного Короля и, скажем, 6 очков. Каждая Пешка стоит одно очко, каждый Рыцарь два очка. Таким образом игрок сможет создать свою уникальную команду, комбинируя между типами юнитов.

Пешки (1 очко)

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

Вот некоторые примеры:
Меченосец ― юнит ближнего боя. Атака и Защита равна 3;
Лучник ― юнит дальнего боя. Атакует в радиусе 3 клеток. Не может двигаться и атаковать в один и тот же ход;
Орел ― животное. Полет: может перемещаться по любым клеткам. Имеет уязвимость против атак дальнего боя (-1 ЗАЩ);
Лесной Волк ― животное. Перемещается на 4 клетки, но только по прямой;
Зомби ― нежить. Скорость равна 1. Уязвимость к огню (-2 ЗАЩ);
Страж ― СКР 1. АТК 0, ЗАЩ 5.

Рыцари (2 очка)

Рыцари представляют собой более уникальных юнитов, с какой-то особенной способностью. Это может быть какой-либо активный навык (какая-то специальная атака, например), или врожденная особенность. Рыцари также имеют предел для значений АТК и ЗАЩ в 4 ед.

Примеры:
Акробат ― вместо движения этот юнит может перепрыгнуть через одну клетку;
Священник ― вместо атаки может вылечить одного юнита от дезиза;
Лучник-циркач ― дальний бой. Радиус атаки 2 клетки. Атаки наносят урон пламенем;
Плотник ― может строить мосты над водой, лавой или пропастями;
Фантом ― призрак. Не может быть целью для атак дальнего боя;
Хранитель Леса ― пассивно: +1 АТК всем зверям, которые находятся в пределах одной клетки от этого юнита.

Короли

Целью сражения является убить короля противника. Король является особым типом юнитов. Каждая из сторон может иметь только одного юнита подобного типа. Каждый Король может существенно изменить механику игры. Каждый Король может иметь несколько особых способностей. У Королей нет ограничений на значение атаки и защиты (кроме программного в 5 ед). Если в Короля попадут, то он не погибает сразу, а получает негативное состояние Ранение (ЗАЩ и СКР = 0).

Варвар ― контратакует. Своим топором может атаковать одновременно до трех соседних юнитов с штрафом на атаку -2 АТК. При обычной атаке имеет 7% шанс проигнорировать ЗАЩ цели;
Чернокнижник ― любой уничтоженный юнит типа нежить каждый ход имеет 5% шанс восстать под контролем Чернокнижника. Все убитые рукой Чернокнижника юниты типа человек превращаются в Скелетов (АТК и ЗАЩ 1, СКР 2). Все, кто проваливает атаку по Чернокнижнику, отступают на две клетки назад;
Волшебник ― может мгновенно переместиться к любому союзному юниту из любой клетки на поле боя. Имеет АОЕ заклинание радиусом в 6 клеток (АТК 1). Может атаковать пламенем, водой или молнией;
Король-Герой ― все союзные Пешки получают +1 ЗАЩ. Все союзные юниты типа человек (Пешки и Рыцари) получают +1 АТК. Атакует копьем в радиусе двух клеток, но это считается ближнем боем.

Заключение

Все описанное было моим взглядом в прошлое (трех месячное, но прошлое). В следующих частях этого блога мы будем улучшать механику, придумаем сеттинг и сюжет, начнем рисовать графику и т.д., до тех пор, пока не придем с вами к тому, что мы (команда) уже имеем на руках. Поэтому следующие части блога будут более богаты на скриншоты, зарисовки и прочего кошерного контента.

Наш проект уже почти дошел до играбельной демо-версии, которую, вероятнее всего, мы опубликуем тогда, когда события блога догонят реальность нашего прогресса.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: I_LORD, Ren310, MaltonTheWarrior, peter8031983
Время создания страницы: 0.234 секунд