Сейчас меня убьют. А если не убьют, то люто заминусуют. И у меня, как поет Игорь Николаев, есть на это пять причин. Но мне плевать.
1. Во-первых, я написал карточную игру в покер. Это же аморально. Как можно такое делать, в такое играть. Фу. Где же ваши семейные ценности и благопристойное поведение.
2. Во-вторых. Этот покер - Техасский Холдем. Он же американский! Кроме того, в него играют в городе греха Лас-Вегасе! Фу-фу! Патриоты взвыли.
3. В-третьих. Там будет жесткий донат. Ну, ладно, не жесткий донат, а мягкий триал 30 дней. Это - в Фейсбуке и ВК. Священники напряглись: нехорошо... Лучше бы бесплатно раздавал всем нуждающимся.
4. В-четвертых. Мне наплевать на все эти терзания. Я просто люблю атмосферу Вегаса по фильмам. С этими всеми казиношными фишками, ковбоями в шляпах, гангстерами, полуголыми официантками... Фу! Аморально и отвратительно!
5. Ну и пятое, самое страшное. Игра написана - т-с-с, только никому не говорите - на чистом Javascript. Кто-то, возможно, подумает, что вот здесь, как раз, и начинается настоящее порно.
Дизайн - это не мое. Но я включил радио K-Rose из GTA San-Andreas и несколько вдохновился на создание дизайна. Еще и прокатившись по Лас-Вентурасу, для большего антуража. Вот оно, вдохновение:
Теперь - про аскетичное программирование. Я давно снес Visual Studio и пишу код в подобии продвинутого блокнота, с подсветкой синтаксиса. Зато игра весит всего 5 Мб, быстро загружается, быстро работает в браузере.
Игра называется «Poker 3 Bags», она написана на чистом Javascript, без сторонних библиотек (даже без JQuery). Онлайн игры пока нет - позже. основная фишка в том, что в моей игре можно просматривать все покерные комбинации - как те, что уже собраны, так и потенциально возможные. Это может послужить обучающим пособием для их запоминания. Кроме того, там есть еще две игры, включая мою, авторскую.
Все работает как браузерное расширение в обоих веб-сторах - Chrome и Firefox. Еще - в качестве i-freme приложений ВК и Facebook. Ну и еще я собрал установщик под Windows и закинул в разные магазины приложений (не в Стим). Таким образом, подобный подход позволяет создавать простой, легкий код, работоспособный везде, где только можно использовать Javascript.
Насчет VK mini apps - я пока не уверен, стоит ли туда идти. Насколько я понимаю, для оплаты в приложениях там используется система VK Pay. То есть, ее нужно подключить, более того, нужно, чтобы еще и игроки в ней регистрировались с целью произвести оплату. Или я что-то не так понимаю? Кроме того, для приема платежей необходимо подключиться к платежному агрегатору mail.ru... Как-то все сложно.
Что касается Фейсбука, то мне так и не удалось подтвердить свою компанию (ИП) для того, чтобы принимать платежи. Там требуется подтвердить компанию по e-mail либо по телефону. Это я сделал. Но далее требуют документ, который бы показывал привязку номера телефона, либо почтовый домен к компании. А в ОГРН ИП не указывается ни то, ни другое. Там указаны адрес и имя. И приложенный документ от оператора сотовой связи о регистрации телефонного номера на мое имя не прокатил. Нужно, чтобы все было именно в одном документе... Как-то Фейсбук не особо хочет работать с ИП. В общем, я забил на прием платежей в Фейсбуке и выложил туда только бесплатную версию.
Вот, что получилось. Видос из игры:
В коде используется только одна, моя, библиотека. Вкратце, она создает два блочных элемента канвас (canvas), наложенных один на другой и растянутых на весь размер окна браузера. Нижний канвас используется для статического контента, а верхний - для анимации. Тем самым, достигается высокая скорость работы: никаких летающих div-ов со спрайтами, которые перемещаясь, постоянно вызывают перерисовку DOM. Короче, получилось лучше, чем HTML-5. Ну и весь контент подстраивается под любой размер окна браузера, динамически уменьшаясь или увеличиваясь.
Мобильные устройства
В принципе, при таком подходе на мобилках все работает в браузерах, только командная строка отъедает значительную часть экрана. Но в игре есть кнопка Развернуть на весь экран. Контент масштабируется под любой размер экрана.
Планирую и далее делать простые игры без использования сторонних движков. Такие игры могут быть даже с 3D графикой и при этом легко работать в браузерном расширении, например. Сейчас, как раз, приступил к созданию еще одной аскетичной игры, но уже с 3D графикой.