| Клиент | NDA |
|---|---|
| Сфера | Развлечение и спорт |
| Регион | Швейцария, Zürich |
| Сдано | Ноябрь 2024 |
Задача
К нам за программированием игры обратилась компания разработки
Каждый год они собираются на корпоративный выезд – там совмещают хакатоны и челленджи с активным отдыхом. Компания уделяет много внимания командным активностям и тестирует разные инструменты для тимбилдинга.
А к нам они пришли, чтобы разнообразить рутину компьютерной игрой со сложным геймплеем и локальными пасхалками.
Нетипичная боль клиента – страшно умная команда
Любую игру они моментально проходили и становились лучшими.
Главный челлендж на этом проекте – заставить команду клиента напрячься и пострадать. Возненавидеть каждый пиксель игры, чтобы в итоге получить нереальное удовольствие от ее прохождения.
Решение

Результат
Стек технологий
- JavaScript — Язык программирования
- TypeScript — Язык программирования
- WordPress — CMS
Награды
- Workspace Digital Awards — Игры / Десктопные игры, 2 место, 2025
Над проектом работали
- Джонатан Бдоян — Team Lead
Текстовая версия презентации
Решение
Действия разворачиваются в выдуманном офисе компании. Игра разделена на четыре биома в рамках общего сюжета. В каждом свои персонажи, мобы, окружение, декор, боссы, пасхалки, квесты и челленджи.
Геймдизайн
Предложили клиенту три концепции игры и выбрали лучшую. Жанр игры — платформер, а стиль геймплея — Bullet hell.
Чтобы пройти уровень, игрок должен победить мобов, которые летят со всех сторон, выжить и дойти до босса, соответственно, победить его.
Усложнили задачу тем, что отделили ходьбу от прицеливания, и сделали так, чтобы каждый залп отталкивал (отдача от выстрела из рельсотрона или магнетронной киберпушки) персонажа от места выстрела.
Это дало разнообразие геймплейной механики в стиле прохождения, то есть ходить было не обязательно. Кто-то уже так приноровился, что мог весь уровень пройти стрельбой.
Но не всё так просто. Оружие перегревалось от спама выстрелами, поэтому рассчитывать стрельбу по мобам и передвижение надо было с умом.
Дизайн
Пиксель-арт — фирменный почерк We Wizards, и все локации игры отрисованы в этом стиле. У нас это здорово получается, именно наши кейсы привлекли клиента по стилистике.
Чтобы быстро формировать уровни и создавать там окружение, мы выбрали программу Tiled.
Независимо от разработчиков, ГД и дизайнер могли собирать окружение и лить его в репозиторий отдельно.
Боссы игры:
- Spinner: «You can't stop the singularity, try to handle my balls.»
- Ph. Demon
Музыка
Её продакшн тоже взяли на себя. Джон (это наш геймдизайнер) написал демо, а Даня (разработчик игры) прописал гитару. Получился офигенный саундтрек к игре в жанре индастриал рок, и музыка к субтитрам в стиле Мика Гордона.
Анимация
Главный герой стоит, прыгает, идет влево, ходит, стреляет, получает урон. На каждое это событие нужно создать движение.
Наш ассет-лист состоял из 300–400 строчек разных actions для всех объектов.
Разработка
Во-первых, движок. Для нас это стал полюбившийся Phaser.js. Во-вторых, нативный Javascript + Typescript. В-третьих, высочайшая оптимизация (60 FPS). В-четвертых, он имеет базовую поддержку созданных карт в Tiled.
А ещё там можно добавлять кастомные объекты с любыми данными, что очень полезно при конструировании уровней. Утвердили прототип, софт и стек и перешли к созданию функционала по добавлению и загрузке разных карт, уровней и их тайлсетов.
После проведения этих работ дальнейшие задачи делились на 5 типов:
- Реализация фичи в самой игре
- Реализация управления фичей через карту
- Интеграция ассетов этой фичи
- Написание документации в нашу базу знаний (для левел-дизайнера)
- Связь с баланс-листом на бэке (если необходимо)
Параллельно этому шли работы по бэкенду и по интерфейсу игры. На бэкенде использовали WordPress, так как там есть готовый механизм авторизации (наработки из предыдущих игр) и в целом очень быстрая разработка.
Баланс и бэкенд
В процессе всего цикла разработки каждый из причастных постоянно играл в игру (для тестирования механик, ассетов и т. д.), в конечном итоге мы приобрели внушительный игровой опыт и слишком усложнили игру.
Как раз на этапе баланса, благодаря активному участию наших заказчиков, мы это дело выровняли. Все настройки баланса хранились в админке, что упростило жизнь разработчикам.
Все происходило без их участия. Также в админку был добавлен функционал хранения логов игр каждого пользователя и общая статистика по пользователям.
Стек технологий
- Phaser
- JavaScript
- TypeScript
- WordPress
- REST API