Аскетичное программирование: игра из Лас-Вегаса в браузерном расширении
Сейчас меня убьют. А если не убьют, то люто заминусуют. И у меня, как поет Игорь Николаев, есть на это пять причин. Но мне плевать.
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... Как-то все сложно.
Вот, что получилось. Видос из игры:
В коде используется только одна, моя, библиотека. Вкратце, она создает два блочных элемента канвас (canvas), наложенных один на другой и растянутых на весь размер окна браузера. Нижний канвас используется для статического контента, а верхний - для анимации. Тем самым, достигается высокая скорость работы: никаких летающих div-ов со спрайтами, которые перемещаясь, постоянно вызывают перерисовку DOM. Короче, получилось лучше, чем HTML-5. Ну и весь контент подстраивается под любой размер окна браузера, динамически уменьшаясь или увеличиваясь.
Мобильные устройства
В принципе, при таком подходе на мобилках все работает в браузерах, только командная строка отъедает значительную часть экрана. Но в игре есть кнопка Развернуть на весь экран. Контент масштабируется под любой размер экрана.
Планирую и далее делать простые игры без использования сторонних движков. Такие игры могут быть даже с 3D графикой и при этом легко работать в браузерном расширении, например. Сейчас, как раз, приступил к созданию еще одной аскетичной игры, но уже с 3D графикой.
Лига Разработчиков Видеоигр
6.8K постов22.2K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"