Онлайн-рпг на Битрикс, это вам не шутки

Углубленное изучение Битрикс
  • Онлайн-рпг на Битрикс, это вам не шутки

    Антон Долганин 14 Апреля 2016 6:19 5430
    12 апреля (символично, старался) я запустил в первую публичную бету онлайн-игрушку. Разумеется, на Битрикс. Почему на Битрикс? Там же все хайлоадное должно быть? Ну, на хабре может и так, но у меня, с моими 50к народу в день все по-простому :) А я хочу с вами поделиться сложностями, нежданчиками, и радостью.

    О том, как все начиналось, я писал уже давно. Под конец разработки сработало правило 80 и 20, и я тупо застрял на 20%. Мелочь за мелочью, проблемы с финансированием, два сложных клиента, убивающих мозг, да еще движок боя, достаточно сложный, все усугубляло ситуацию. Но я не сдавался. И запустил.

    Об архитектуре

    Одно время я задурялся в Dwar (последователь БК, кто играл, знает, кто не играл - может и не оценят). Я знал игру как игрок очень сильно, каждый закуток, каждую связь, каждого бота, босса, инст. Я не знал, как она устроена внутри. Я воссоздал это. Знаете, что удивительно. Когда я играл, я не понимал, почему многие вещи сделаны так, а не иначе. Когда я воссоздавал архитектуру, я столкнулся с ИХ трудностями, понимал почему они так делали, а не иначе, и улучшал архитектуру. По факту, я имею движок Двара на Битрикс (скачать бесплатно без регистрации).

    Почему Битрикс?

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

    2016-04-14_09-28.png

    А для публики и прочего есть крутой D7, который этим всем вращает, соединяет, добавляет, удаляет, и так далее. По сути, вся работа игры сводится к работе быстрых запросов, а сверху я имею защиту от хакеров, постоянно обновляемый движок, и поддержку Битрикс.

    Нежданчики

    Были конечно нежданчики. Самые внезапные это такие.

    Анимация боя. Флеш умирает, нужна была замена. Была попытка гиф-анимации, обернулась фейлом. Очень дорого и глупо. Были ценники от дизайнеров, до нескольких десятков к.р. за одного бота. Это очень дорого. Но канвас зато и все дела, или даже CSS3. И по времени очень дорогое создание. Я хочу к этому вернуться, но позже. В итоге я нашел замену, очень дешевую, но оставлю за кулисами этот секрет фирмы.

    Чат. Знаете, бывает такое, когда пишешь ерунду, а эта ерунда тебя наталкивает на мысль, и ты все стираешь и создаешь крутую вещь. Так и тут получилось. Что взять за основу чата? Я посоветовался и взял за основу чата игры чат Битрикс. Для каждой локации создавался отдельный чат-рум, игрок входил и выходил в комнаты, так решалась проблема разграничения сообщений по локам. Не буду описывать в какие тупики я уперся потом, а просто сел и переписал на простую одну табличку. Мораль - иногда стоит вляпаться в неправильный путь, чтобы он подал идею.
    Естественно, задействованы пуши, отправка сообщения происходит пушами, получатели не напрягают сервер.

    Бой. Ух, он высосал у меня 100-150 часов.  Казалось бы, все просто удар ты, удар противник, слушаешь, вычисляешь. А теперь добавим эликсир, который добавляет +3хп каждые 5 секунд, и это должно визуально отображаться? А теперь бой не 1 на 1, а групповой? И у каждого свои эликсиры? Травли? Чего пострашнее? Ход в лоб "обновляем инфу каждые 3-5 секунд" убил сервак. Разворачиваемся, идем дальше. Node JS спешит на помощь? Нет времени на изучение полноценное, но самое главное я не понимал КАК он мне поможет. В итоге меня спас простой клиентский JS. Как - я тоже оставлю как секрет фирмы :)

    А в остальном разработка мне приносила радость, каждая новая придуманная фича в архитектуре меня безумно радовала и я двигал дальше.

    Бюджет

    Свое время я не считаю. Если считать, перевалит за 1.5-2 млн. Именно во столько вам станет такого рода игра. Ну либо гораааздо дольше придется пилить, переделывать, если брать разработчиков новичков.

    Первичный расчет именно иллюстраций и дизайнов вставал в 500к. Пришлось многое беспощадно резать, ибо таких денег на стартап не было. Резал до 300, до 200, до 150. Во сколько мне встала графическая часть? Всего 80т.р. Это  на старте 100 локаций, 130 иконок, 20 ботов. Я вынес главную истину отсюда - забери у человека деньги и дай стимул что-то сделать, и он найдет вариант. Я никого не обманывал, всем платил их требуемые деньги. Просто я научился крутиться при отсутствии бюджета. Это очень круто.

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

    Что дальше?

    А дальше запуск, проработка квестов, привлечение игроков (моя аудитория на моих соседних сайтах находится, теперь их надо собирать в кучу).  И да, конечно же, мобильное приложение. Вот думаю, не замахнуться ли на мобильное приложение от Бтрикс :)

    И знаете какой самый неприятный нежданчик меня ждал в конце. Не, даже не то, что аудиторию надо будет еще зарабатывать, я это знал. А то, что надо будет ИГРАТЬ :) Чтобы улучшать игру изнутри. А то я, получается, примерно как президенты и чиновники - чем-то руковожу, а доволен ли народ - не знаю. Пока решил искать такого игрока в виде наемника, ибо у самого времени на игрушки нету пока.

    О мечтах

    Уютный офис по разработке квестовых игр с идейными чуваками, следование технологиям (жду полноценного перехода к 3d в браузере, но самое главное - простой его реализации). Ну и конечно, окончательный уход с коммерческой разработки. Устал я. Да и свое детище гораздо круче и интереснее :)

    Спасибо, что дочитали. Если вам правда интересно, вот ссылка http://www.lalapaluza.ru/thegame/welcome/
Антон (a.p.gubarev@gmail.com)
14 Апреля 2016 11:18
Ну для того кто больше ничего не умеет и не видел битрикс да единственный вариант :)
Антон Долганин
14 Апреля 2016 12:54
Антон, рад, что ты следишь за моими успехами.
Антон (a.p.gubarev@gmail.com)
14 Апреля 2016 12:58
А в чем успех заключается если не секрет? Я подписан в фейсбуке на Рыжикова а он репостнул. Не смог удержаться от комментария :)
Антон Долганин
14 Апреля 2016 13:04
Ну вот в том и заключается, что меня Сергей репостит и на брудершафт пьет, а тебя даже не репостит.

Расти над собой, а не сиди в интернете, дроча f5.

Удачи, не трать мое время.
Россскоммнадзор
24 Мая 2016 16:21
Так вот кто зарубежные мультики пиратит. Непорядочек.
Юрий
14 Апреля 2016 11:45
У меня не получилось - задание сходить в магазин, но я в него так и не смог войти как не пытался.
Да и интерфейс, конечно, не для избалованных графикой геймеров. Точнее даже не знаю для кого.
Была интересна сама идея реализации игрового продукта на Битрикс, однако опасения, что оно ни для того, скорее всего, подтвердились.
Но всё равно удачи, креатива и сил!
Антон Долганин
14 Апреля 2016 12:55
Юрий, основная работа не-программерская только началась, ее очень много на самом деле, недочетов много :) и ведется она каждый день.

Спасибо!
its_me
14 Апреля 2016 13:17
Текстовая игра с картинками? Серьезно? На дворе точно 2016-й год?
Антон Долганин
14 Апреля 2016 13:23
Бедолага, вас от моды на настольные игры вообще в дрожь наверное бросит :)

PS: dwar.ru - но да, на отрисовку таких же драконов пока нет финансов :(  
its_me
14 Апреля 2016 13:57
Проводя аналогию с настольными играми - вы принесли на игротеку сбоственноручно нарисованную колоду из 36 карт.

Это прекрасно, только люди на игротеке играют в Зомбицид, Пандемик Легаси или Descent.
Антон Долганин
14 Апреля 2016 13:59
Очень рад за них. У меня есть своя отличная и большая аудитория со своими вкусами :)
Ilyas
15 Апреля 2016 7:56
Тяжелый битрикс, как админка для примитивных данных? Вполне решение.

А не боитесь залететь с этой архитектурой? Найдется умник, способный отредактировать ваш чудо js файл, получите нежданных супер-игроков.
Я
15 Апреля 2016 7:59
Считает все сервер.
Alrait.com (Татьяна Райко)
15 Апреля 2016 10:54
два сложных клиента, убивающих мозг
Хм, неужели каталог статей, который Вы делали ПОЛГОДА и не сделали его в итоге, так как нужно, - это сложный проект для такого "легендарного" программера, каким Вы себя считаете? :D:D:D


Я вот больше Вам скажу, что для Вас мы были не клиентом, а просто способом выкачивания из нас денег для Вашего проекта. Брать три проекта сразу и все время работать только над своим - это НЕУВАЖЕНИЕ к клиенту.

Но меня сейчас возмутило то, как Вы это преподносите другим. Ваше высокомерие просто зашкаливает!

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

Всего доброго! Зрите в корень, как говорится...
Антон Долганин
15 Апреля 2016 11:07
Татьяна, право дело, не здесь.

Почему все троллить пытаются мне в интернете? Позвоните, поговорим.

И вы не так меня поняли - я наоборот ради ВАС убирал свое время и занимался вами.

Вот если бы я написал "несмотря на сложных клиентов, я занимался своим" - ваша желчь была бы по делу.

И я вам по доброму советовал - за-пу-скай-тесь! Вы думаете я в релиз выкатил все что хотел? Нет, работа только началась.
Антон Долганин
15 Апреля 2016 18:58
Сергей
18 Апреля 2016 10:57
Мастер извращений 80 лвл ;)
iwebdev
18 Апреля 2016 16:02
Да, комменты ржачные, особенно с учетом, что они на сайте разработчика. Умом Россию не понять.
iwebdev
18 Апреля 2016 16:03
А по сути поста - круто, есть цель - есть результат. И есть ощущение, что жизнь даром не проходит.
snowfrost
19 Апреля 2016 8:15
А почему  хранение данных не на d7?
Антон Долганин
19 Апреля 2016 8:49
Вы про хайлоад блоки? (это не инфоблоки кстати, похожи визуально)

Это как раз из расчета D7 - внутри такого представления всего одна таблица, все быстро работает. А внешне имеем удобное представление для админов и редакторов.
snowfrost
19 Апреля 2016 11:35
Про сущности d7.
Просто если будет добавление каких-либо свойство, которые участвуют в расчете урона придется доп.запрос делать, а в сущности просто добавить еще одну колонку и все.
Антон Долганин
19 Апреля 2016 11:38
Все верно. Хайлоад и есть сущность. Вот D7-карта инфоблока выше
http://my.jetscreenshot.com/18603/20160419-wgmu-21kb

Ну и понятно я могу это соединять с другими таблицами, уже не HL-блоками.


К примеру таблица связей шмота и игроков идет уже как обычная внутренняя.  
Дмитрий
20 Апреля 2016 21:37
Красавчик!
Конечно, может и извращение, но точно интересное нестандартное применение системы!
Много холивара на тему "битрикс г..." и пр, но он реально удобен и универсален.

Единственно, странно, что хайблоки не юзаете, они очень удобны и производительны.
Антон Долганин
21 Апреля 2016 7:13
Спасибо!

Дмитрий, как же, все на хайлоад-блоках как раз таки :) редакторская морда точнее.

>>> Много холивара на тему "битрикс г..." и пр, но он реально удобен и универсален.

Для меня это инструмент прежде всего, и при постройке домика я взял знакомый рубанок, а не что там нынче на рынке (возможно) лучше :)  
Юлия Бедросова
24 Апреля 2016 22:20
Круто! Оригинально! Надо будет обязательно поиграть!
someHuman
25 Апреля 2016 8:40
Антон, респект!  Думал я один такой кто решил реализовать игру на битриксе.:D Сам в свободное от работы время пилю  ремейк старой виндовой игрушки на битриксе. С графикой и квестами проблем не возникло, удалось выдрать все необходимые ресурсы из оригинала. Проект не коммерческий фо фан, желание возродить к жизни то что уже давно забыто.
Вадим Подовалов
4 Мая 2016 14:40
Сам пишу нечто похожее уже давно. Где-то год писал свой движек полностью, потом решил попробовать за костяк взять Битрикс и ... поехало. Игровая индустрия уж точно на порядок интереснее коммерческой разработки, пришлось даже вспоминать работу с матрицами из курса универа.

Так что желаю творческих успехов. :)
Антон Долганин
5 Мая 2016 9:12
Спасибо :)

Все верно - тут главное инструмент же. Если есть привычное и удобное - это и надо использовать.
Борис Хмелёв
19 Мая 2016 16:59
Большое такое уважение ;) Круто. Очень круто. Гипер круто. На битриксе написать такое.....даже представить не могу сколько убито времени. нервов и усилий...полотно кода....)))) Не играю в игры компьютерные/онлайн. Раньше было дело, последние лет 10 совсем не касался, но то, что увидел, мне понравилось. Зарегистрировался, опробовал. В целом понравилось. Немного раздражает отсутствие "юзабилити", т.е места которые по идеи должны быть явно выражены и удобны не проработаны до конца (например кнопки получения справок по предметам) плохо обозначены, не бросаются в глаза, привыкать долго. Ещё способ открытия окон "в новом окне"...например чтобы просмотреть информацию о предмете "куртка" щелкаешь и открывается новое окно "Укрепленная куртка" с информацией...можно же сделать это всё во всплывающем и подгружать ajax каким нить ) Куча мелочей, но так понимаю над ними работа "ежедневно" уже ведется. Успехов, удачи!!!!

P.S Непонятно только чего ресурс заблокировали "органы гос власти"?? Пришлось заходить на сайт через vpn :/
Антон Долганин
19 Мая 2016 17:17
Борис, спасибо.
Да, дьявол в мелочах. Собственно как в технических (до сих пор мелочи в бою отлаживаю), так и графические - тут пока не достает руки дизайнера.

Работаю каждый день "после работы" :)  Ну а Битрикс был выбран просто как удобный мне инструмент. D7 все равно.

P.S Непонятно только чего ресурс заблокировали "органы гос власти"?? Пришлось заходить на сайт через vpn :/
Это плохо. Спасибо за сигнал. Сайты размещены через cloudflare, отсюда такой иногда эффект.
Скажите, был недоступен ВЕСЬ сайт lalapaluza.ru?
hello
23 Мая 2016 11:44
Страница www. lalapal uza. ru не работает
Сайт вэвэвэ lalap aluza ру пока не может обработать этот запрос.
HTTP ERROR 503
Антон Долганин
24 Мая 2016 4:29
Спасибо. Баг прокрался незаметно. Уже поправлено.
zfjoury
31 Мая 2016 18:12
     Добавьте инструкции при входе)))))
А то я блин немного потерялся.
Разработка интересна довольна, с точки зрения масштабности и программинга - круто!
Антон Долганин
1 Июня 2016 12:47
Все будет со временем, работы действительно много получилось не только программерской :)

Спасибо!
Алексей
7 Июня 2016 12:36
А чего аякс не применяется, нагрузка в разы ж спадет? Можно ж даже битриксовский нативный вставлять.
Антон Долганин
7 Июня 2016 12:51
Вы про фрейм? Вообще основной посыл был "накрутка" счетчика всяких Метрик и Лайвинтернет во время раскрутки проекта (по сути живые и настоящие хиты). Со временем понял что это не должно стоять во главе угла, а сковать руки сковало. Поэтому, планирую полноэкранную версию уже и отказ от фрейма (скорее мобильное приложение обязывает).

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