XGMNY Game - making of (Как создавалась игра xgm 2016)

» опубликован
Небольшой рассказ про создание новогодней игры, для тех кому интересно.

0. Как все началось (можно пропустить, к разработке игры не относится)
Началось все в декабре, примерно за 3 недели до нового года. Хотелось на новый год сделать что нибудь особенное, и так как наш сайт посвящен тематике gamedev, то почти сразу я решил что это будет игра. Тогда в голове я еще совсем не представлял как именно это все будет выглядеть, но точно решил что в игре будут предметы. Предметы кстати это первое с чего началась разработка, на момент когда был готов скрипт предметов и лута, еще не было никакого геймплея, босса, сюжета и даже четкого представления о том что должно получится в итоге, но обо всем по порядку.

Как только я решил сделать игру, без обдумывания деталей тут же был создан ресурс в проекте xgm-staff (это проект где команда сайта обсуждает разные вопросы по работе) с таким содержанием:
H:
..
Насчет НГ, можно запилить что нибудь интересное, думаю найдем немного времени на код. Какую нибудь глобальную миниигру с интеграцией в сайт. Например можно реализовать простой инвентарь и автогенерируемые вещи которые даются за разные действия на сайте, эти вещи имеют свою стоимость (тоже считается автоматом) и эквивалента ед. опыта. Можно их свободно менять, игроки сами назначают цену. Что именно будут делать вещи, как раз и предстоит придумать. Все это на новогоднюю тематику, вещи либо активные. либо пассивные. Активные могут быть с таргетингом (другие игроки).
..
Первая идея по геймплею пришла от Эльрата, и во многом я взял его игровое описание за основу.
Вариант 1: Рейд на Короля-лича
Сюжет такой: мол НГ приближается, зима, холода, однако в связи с этим великое зло пробудилось вновь. Ледяной холод воззвал к своему истинному повелителю - Личу. Теперь мол всем пользователям сайта надо подготовится и сломать босса, иначе Лич убьет всех пользователей (не шутка, читайте дальше - сюжет нелинейный, как у нас любят)
..
Событие 1: дается 2-3 дня. Пользователям раздается набор предметов, символизирующий доспехи и оружия разных воинов. Начинается Новогодний базар. В определенной теме пользователи начинаются обмениваться между собой разными предметами, чтобы собрать себе боевой комплект. ..
..
Событие 2: дается 2-3 дня. Рейд на Лича происходит в специальном проекте. Вместе с комментариеми пользователь при нажатии на кнопку Отправить генерируют число, которые обозначает урон Личу. Число рандомное, но в зависимости от класса урон будет разный (у стрелков самый большой, дальше маги, пехотинцы и целители). Комментировать (т.е. генерировать урон) каждому пользователю можно, к примеру, раз в час. ..
..
Цель - сломать Лича до определенного времени. Есть два варианта - здоровье Лича падает до 0, ура, победа - и - времени не хватило, Лич убивает всех пользователей, проигрыш.
Если победа: пользователи получают опыт за участие и ачивки-награды (обычные и особо активным - ... какие-нить необычные). Мол, это ачивка присуждается Вася Сидорову за то, что он закидал снежками Короля-Лича, ура-ура! ..
В итоге почти такой вариант и стал заключительным, но я выбрал другой геймплей, вместо классов и комментариев со сбором предметов. По поводу сюжета были самые разные предложения, даже игра про Звездные войны (их на тот момент на каждом углу форсили). В конечном итоге пришли к этому:
H:
мне идея Эльрата нравится, но только короля лича надо поменять на что-то другое, но точно не на starwars. Может придумать какой то xgm-овский лор, например злобный босс (какой нибудь юзернейм из известных), решил испортить всем праздники. Все юзеры могут сплотиться против великого зла, или помочь ему в уничтожение нового года.

1. Генератор предметов
Игра началась именно с генератора предметов. Первым делом была создана простая таблица с наброском свойств мечей (броня появилась только через 2 недели, а до этого вообще планировалось много типов предметов, не только мечи и броня).
Таблица получилась такой
» Таблица мечей
Свойство Мод.
Клинок Базовый аттрибут урона
- Дерево +1
- Сталь +2
- Стекло +3
- Золото +4
рукоятка Влияет на удобность использования, (Базовый атрибут скорости атаки - 1 атака / N минут)
- плохая 1/30m
- простая 1/20m
- изящная 1/10m
- боевая 1/5m
Длина Длинна меча, влияет на шанс попасть и промахнутся по цели
- короткий 1/4 урона от атаки , +15% шанс на x4 урона
- средний нет модификаций, базовая вариация
- длинный x2 урона от атаки, скорость атаки -25%
Чары Дополнительные пассивные эффекты для атаки
- крит x2 урона от атаки
- сало 25% шанс - прервать атаку противника на 2 минуты
- вампиризм 50% шанс - восстанавливает себе 100% нанесенного урона в виде здоровья
- сломанный 50% шанс - нанести себе 25% от урона меча
- опытный при каждой атаке дает пользователю N ед. опыта
- ... и еще кучу всего можно придумать
H:
Получается матрица 4*4*3*5 = 240 уникальных предметов.
Все иконки я предлагаю генерировать.
Для художников, можете уже попробовать нарисовать это
Одновременно с этим началась работа над генератором. Вот его первый вид:
от простых:
до элитных (редких)
Первый набросок предмета от GF RaiseD
2. Интерфейс
За интерфейс можно сказать спасибо Кет, кстати все исходники и арты вы можете скачать и использовать в любых своих проектах. Снизу есть все ссылки.
H:
Сделал базовую логику для игроков
После чего настало время ТЗ по интерфейсу, к которому был нарисован такой арт в пейнте.
да не, я же в шутку. Я думаю, будет не очень хорошо, если напишу историю о том, как администраторы решили организовать против Большего босса поход, раздали всем а*****льные деревянные мечи и н*****енные бронежилеты и стала атаковать ублюдка, который все время орал, что всех с*к за****ет.
H:
лол, я джва года ждал такую игру
После чего была доделана броня и слот для пассивных предметов (ожидалось что это будут амулеты), но позже из игры их убрали.
Концепт арт сборки иконок:
Концепт арт для босса
Интерфейс кстати мог быть такой:
Второй концепт арт босса
Финальный вариант босса
После чего GF RaiseD закончил рисовать мечи:
H:
общий спрайт
Готовый вариант интерфейс-бокса от Кет
Собранный инвентарь на черном фоне:
H:
Кстати эффекты круто комбинируются:
с описанием:
А вот первые тесты собранного интерфейса, уже в браузере:
Также начал делать battlelog:
Он может быть цветным :)
К этому времени Кет уже закончил первые виды доспехов:
кожаные броники готовы
а вот кожа с заклёпками типа
Почти за неделю до НГ был готов скрипт атаки, там была куча багов, которые чуть позже нашли на альфа тесте, но уже можно было в каком то смысле играть и убивать игроков, а надетые предметы давали нужные бонусы.
После альфа теста сразу нашлась огромная куча багов, которые необходимо было исправить до начала игры, а тем временем за окном громыхали первые салюты, шло 30 число декабря..
» БагЛист

Баги:

[v] стоимость предметов без прочности равна нулю
[v] босс не атакует
[v] доделать атаку мечей со способностями
[v] срабатывание каждой способности добавляет подлог (у парента)
[v] если у игрока 0 здоровья, он не может быть целью босса
[v] босс не может быть целью босса
[v] босс не атакует если нет целей
[v] окошко с иyформацией (время и игрок)
[v] баги с атакой, лечение на более 100 ед. ХП
[v] не отображается имя игрока при атаке (и другая инфа в логах)

Основное:

[v] можно воскрешаться
[v] иконки брони
[v] можно нанести отрицательный урон (заменить на промах)
[v] добавить комменты под игровой UI
[v] новое окно с игроками и фильтрами
[ ] заголовки в IE съезжают влево
[v] упорядочить все панели на экране, подобрать размеры

UI:

[v] Статические иконки экирировки
[v] оверлей на разбитые предметы
[v] легендарные предметы
[v] новые иконки мечей
[ ] дизайн кнопок
[ ] можно посмотреть предметы другого игрока
[ ] можно быстро посмотреть экипированные предметы другого игрока
[x] Перенос предметов по инвентарю

Дополнительно:

[v] другой способ заработать золото
[v] золото дают за атаку, убийство и т.п.
[ ] при переносе предмета на предмет можно починить другой предмет
Большинство ошибок были исправлены, но некоторые так и остались в игре, времени уже не было совсем.
Также релиз был без магазина предметов, нельзя было чинить и продавать предметы.
Редактура текстов и финальные правки производились уже 31 и 1 числа. Запуск состоялся 1 января в 21 МСК.
3. Играем!
До последнего момента никто не знал будет ли вообще работать данная механика, как это все будет выглядеть и кто в это будет играть. Но как оказалось уже через час после запуска, механика вполне рабочая. На тот момент четко было видно что игры хватит на пару дней, затем всем надоест, но по моему расчету здоровья босса как раз хватит на этот период. Все это время игра работала, но приходилось корректировать по ходу различные игровые механики, корректировать игровой баланс и рынок.

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

Также приходилось править баланс используя игровые события, например пару раз всем игрокам выдавать определенное кол-во золота, а также модифицируя самого босса.

Примерно перед релизом ко мне пришла идея по контролю босса. Я подумал что босс технически ничем не отличается от любого другого игрока, разве что у него чуть больше здоровья. Был создан новый пользователь, а пароль выдан всем администраторам, так чтобы любой мог писать от его имени сообщения. Таймер босса технически был просто перезарядкой его оружия, но было желание в любой момент атаковать любого игрока, помог этому специальный костыль, который позволил атаковать боссу без проверки на перезарядку.
4. Ассеты free to use
Как и было обещано, вы можете свободно использовать нашу графику для создания своих проектов. Технически интерфейс нарисован так, чтобы его можно было разбить на куски и рисовать им боксы любых размеров, заголовок с любым шрифтом и т.д. Так что возможности довольно обширны.


Просмотров: 3 284

» Лучшие комментарии


Diabfall #1 - 2 года назад 1
каюсь, тоже абузил голд, но увы, ничего кроме кучи хлама не получил =)
Editor #2 - 2 года назад 0
Мне вообще просто так под конец отсыпало 1,5к голды)
Таранес #3 - 2 года назад 0
Интересно было играть (пускай и недолго), но не хватило классов аля лучник, воин, маг, да и роли(танк, хил, дд) были бы кстати.
Кристофер #4 - 2 года назад 1
да и роли(танк, хил, дд) были бы кстати.
Роли, по сути, были: те, у кого меч с дмг под 40, был дд. Те, у кого меч с чаром лечения, был хилом. Те, у кого броня 30% или 55%, был танком.
Diabfall #5 - 2 года назад 0
не вообще просто так под конец отсыпало 1,5к голды)
все в конце получили голду
alexprey #6 - 2 года назад 3
хочу дополнить. Сперва была идея провести конкурс по геймдеву...
ehnaton #7 - 2 года назад 8
alexprey, конкурсы по геймдеву в сессию у студентов проводить не стоит)
Голду абузил, но все равно к концу все поломалося.
darkowlom #8 - 2 года назад 0
Хех, а с программным исходничком познакомиться можно?
Uber #9 - 2 года назад 3
Я удалял и восстанавливал одно и тоже сообщение, чтобы накопить 300 голды :О
Я ужасный человек.
darkowlom #10 - 2 года назад (отредактировано ) 0
Uber, я после конца игры откопал метод, дающий 400 голды за клик и либо не отображающийся у администрации, либо им уже было по барабану.
А за комменты предупреждение, устное, но получил еще в начале
Ковырятся в скриптах было интересней чем играть, если честно
H #11 - 2 года назад 0
darkowlom:
Хех, а с программным исходничком познакомиться можно?
там ничего интересного нет, и выложить их отдельно тоже не получится, так как они очень тесно связаны с движком в8, и без него работать не будут.
Эльрат #12 - 2 года назад 2
Сори, мне же нужно было написать этот ресурс - но, к сожалению, сил после нг вообще не осталось. Но я думаю, что еще скину свою наработку более подробно в своем блоге. В целом, все получилось шикарно - и очень надеюсь, что админы не забьют на это. Было бы неплохо повторять что-то подобное раз в 2-3 месяца. У нас, в конце-концов, геймдев-сайт, поэтому свои игры от администрации просто обязаны быть.
Кет #13 - 2 года назад (отредактировано ) 0
Кнопку «атаковать босса» H так и не сделал в дизайне, кстати ^_^ Ну а я забыл нарисовать боссу щит киборга, а также иконки для его снаряги. Ну и эффекты брони надо было самому рисовать — Райсд-то свои мечи рисовал специально под эффекты. Но я думал, что релиз будет до НГ, и решил распределить обязанности для ускорения процесса =)
А голд абузить оказалось очень просто — открыть страницу редактирования проекта и кликать «Сохранить» пока не надоест. И денежка капает, и робот в оффтопку репортами не кидается..
ScorpioT1000 #14 - 2 года назад 2
Да с абузом не давали писать в сумраке =)
Mark Mocherad #15 - 2 года назад 0
alexprey:
хочу дополнить. Сперва была идея провести конкурс по геймдеву...
интересно )
и почему все таки не решили сделать ?
Raised #16 - 2 года назад (отредактировано ) 0
Mark Mocherad, прошлый опыт давал основания полагать что конкурс затянется. Никому не приятно когда всё так зависает. Мало кто из той малой части что возьмёт участие доведёт дело до конца. Опасались что получится как с конкурсом по SC2. Я считаю что это провал. Был бы провал.
Mark Mocherad #17 - 2 года назад 0
GF RaiseD:
Mark Mocherad, прошлый опыт давал основания полагать что конкурс затянется. Никому не приятно когда всё так зависает. Мало кто из той малой части что возьмёт участие доведёт дело до конца. Опасались что получится как с конкурсом по SC2. Я считаю что это провал. Был бы провал.
да скорее всего так и было б
darkowlom #18 - 2 года назад 0
H, еще вопросик тогда, у сайта есть какое никакое API?
H #19 - 2 года назад 0
darkowlom, нет, но планируется в 9 версии, точнее уже реализован начальный протокол авторизации, так что в будущем точно будет.
Mihahail #20 - 2 года назад (отредактировано ) 0
Фак. Я и не знал, что тут какая-то игра происходила :(
Isstrebitel #21 - 2 года назад (отредактировано ) 0
Почему-то на скриншотах оффтопки я часто удачно попадаю в кадр =)
nvc123: баньте истребителя за абуз
Isstrebitel: как правило
Isstrebitel: в сумраке не банят
nvc123: забаньте его за ник
Isstrebitel: что ты имеешь против няши истребителя?)
Кристофер #22 - 2 года назад 0
баньте истребителя за абуз
-Сказал nvc, засветившись в чате больше всех.)
Tiodor #24 - 2 года назад 4
а чего на главной нету?
я только щас нашел ресурс
у Кета круто вышла броня
Aws #25 - 2 года назад (отредактировано ) 0
Просто в голос, ребят, вы гениальны