Pull to refresh

Сплетая дизайн

Reading time4 min
Views4.3K
Три кольца — премудрым эльфам
— для добра их гордого.
Семь колец — пещерным гномам
— для труда их горного.
Девять — людям Средиземья…

Джон Рональд Руэл Толкин


Работая над играми, я уделяю большое внимание дизайну. Речь идёт не о красивой картинке, хотя и она конечно имеет значение. Прежде всего, для меня важны удобные игровые механики. Игра должна приносить удовольствие. Когда в Сапёре при клике на пустое поле автоматически открываются все поля, не соседствующие с минами — это удобно. Известный всем пасьянс также можно значительно улучшить, просто избавив пользователя от необходимости выполнения лишних действий. Но сегодня я хочу рассказать о другой игре. Той самой, которая изображена на КДПВ (как обычно, все картинки в статье кликабельные).

Оригинальная игра Filler была разработана компанией Gamos в далёком 1990 году и запускалась под управлением MS DOS. С тех пор было выпущено немало её клонов, работающих на всех мыслимых и немыслимых платформах. В какой-то момент я тоже решил «быть в тренде» и разработать свою версию этой игры. Ладно-ладно, я просто хотел проверить, как Dagaz справится с таким количеством изменяемых фигур на доске.


Суть дела довольно проста — всё игровое поле случайным образом заполнено квадратами шести различных цветов (наблюдательные читатели могут заметить, что от первоначальных ромбов я отказался). Левый нижний и правый верхний угол принадлежат игрокам. Выполняя ход, каждый из игроков может выбрать цвет, граничащий с его областью. Вся территория игрока перекрашивается, присоединяя граничащие области того же цвета. Цель игры — захватить большую территорию. Может получиться так, что один из игроков лишится возможных ходов ещё до того, как вся ничейная территория будет распределена. Ну что же, в таком случае игрок терпит досрочное поражение.

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

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


Что касается панели с отображением распределения очков — это довольно востребованный элемент. Впервые он понадобился, когда я работал над чудесной игрой из Брунея под названием "Пасанг".


Я пошёл навстречу пожеланием играющих и сделал полоску с отображением очков потолще.

Разумеется, первое, о чём меня попросили благодарные пользователи — это уменьшение размеров игрового поля (игра на доске 80x40 довольно занимательна, но крайне продолжительна по времени). Я же, в свою очередь, решил добавить в игру тактического разнообразия. Базовая идея игры Filler гениальна, но нет ничего такого, что нельзя было бы сделать ещё лучше. В первую очередь я подумал о стенах. С их помощью можно строить лабиринты!


Менее очевидная идея — области игрового поля, заполненные одним из обычных цветов, но… не случайным образом. В первую очередь — это, конечно, приз для более расторопного игрока. Тот, кто первым доберётся до обширной области одного цвета, получит значительное преимущество в очках. Но есть и другое, не менее важное применение. Протяжённые однородные области позволяют практически мгновенно перемещаться по доске, захватывая территории более эффективно, а также отрезая противника от перспективных направлений.


Далее, мне не нравилось то, что территорию, захваченную одним из игроков, нельзя вернуть в игру, чтобы впоследствии перераспределить иным образом. Я добавил в игру «тьму», распространяющуюся по доске при каждом ходе. Стены ограничивают её движение, но никакие цветные области препятствием для неё не являются. Разумеется, без каких либо сдерживающих факторов тьма просто распространилась бы по доске, раздавив обоих игроков. Требовались какие-то предохранители.


Специальные поля с жёлтыми «искрами» позволяют «подорвать» соприкасающуюся с ними тьму, заполнив захваченную ей область случайно распределёнными цветами. Граничащие с этой областью клетки также «подрывается», что позволяет разрушать стены. Голубые «искры» позволяют остановить тьму, «заморозив» фронт её распространения. Это своего рода универсальный предохранитель. Для «заморозки» ему не обязательно граничить с тьмой. Оба типа детонаторов срабатывают как при достижении их игроками, так и в тех случаях, когда тьма до них добирается первой.

Кстати, о взрывах
Тема изменяемой геометрии доски очень привлекательна в компьютерных реализациях настольных игр. Одновременное перемещение нескольких фигур способно внести радикальные изменения в расстановку фигур на доске. Но платформа, на которой перемещаются фигуры, также является фигурой. Само собой, в голову приходят различные идеи для выведения из игры фигур целыми платформами. Именно таким образом в "Платформенных шахматах", придуманных Робертом Прайсом в 2001 году, появились бомбы.


По сути, это те же самые пешки, у которых я отобрал возможность атакующего хода. Дойдя до последней линии, они также ни во что не превращаются. Для чего они нужны? Такая фигура способна уничтожить всю платформу целиком, вместе с находящимися на ней фигурами. Также, я добавил предохранительный механизм, запрещающий взрыв при наличии на платформе других дружественных фигур. Автор игры всецело одобрил моё нововведение.

Детонаторы можно использовать и сами по себе, динамически строя «лабиринт» в зависимости от действий игроков. Дело в том, что заморозка на самом деле действует не на фронт распространение тьмы, как я сказал раньше, а на все клетки, изменяющие своё состояние при выполнении хода. То есть, если игрок выбрал цвет граничащий с заморозкой, все присоединённые им на этом ходу квадраты превратятся в стены. Это очень коварное препятствие, способное запереть игрока полностью. Жёлтые «искры» куда менее опасны.


Ну что же, я очевидно не первый, из тех кто решил разработать ещё один клон замечательной игры Filler. Будем надеяться, что и не последний. Больше игр, товарищи! Хороших и разных.
Tags:
Hubs:
Total votes 17: ↑16 and ↓1+23
Comments12

Articles