1or2

1or2

25 марта, 2016
4 минут(ы) чтения

Если контент не отображается, включите VPN.

2015

11 авг. Начал разработку математической игры 1or2

Сейчас ищу художника-аниматора. Написал соответствующие объявления на форумах. Сделал. Жду.

Краткое ТТХ: игра будет написана на движке Cocos2d JS, иметь Google Games Service. Планирую закончить в следующем месяце.

15 авг. Костяк команды для новой игры собран

Спасибо веб-сайту Gamedev за это. Что же, прощай свободное время, здравствуй покорение сторов и миллионное продвижение!

12 сент. Субботний пост боли

Кину очередной камень в огород гугла и JS в вентилятор…

Прошло уже 4 вечера, а я никак не могу валидно подключиться с Google Game Service. Итак, по-порядку. От XDK пришлось отказаться — его third party либа googleplayservice стала depricated и ломает весь процесс сборки. К тому же, с последним апдейтом XDK стал загружаться в десятки раз медленнее, поэтому пришлось инитить cordova проект ручками и рефатчить структуру. Благо, с апдейтом до пятой версии все запустилось как надо. Так же пришлось откатиться на старую версию nodejs. Всеми восхваляемая версия 4.0 не совместима с gulp. Далее, за последний год Console Google стала еще мощнее и сложнее, уже до такой степени, что ничего не понятно. Кое-как умудрился найти все еще работающие плагины: https://github.com/ptgamr/cordova-google-play-game, https://github.com/cranberrygame/cordova-plugin-ad-adcolony, остальные тупо не компилились или не работали. Самое, конечно дурацкое в разработке под HTML5 — это процесс сертификации и подписи. Приходится изучать всякие zipalign, jarsigner и keytool.
Вот с такой портянкой безуспешно маюсь который день и все это лишь для того, чтобы сделать навсего сраный_гугл_вход.

2 нояб. Немного о Spriter (или как я чуть не сошел с ума)

Есть такая прожка для создания анимаций — Spriter от brashmonkey. Всем хороша: настоящая кроссбраузерность (включая linux), стоит недорого (даже есть урезанная бесплатная версия), эдакая отличная замена от вездесущей Adobe. Взяли мы её для разработки игры «1or2» и теперь я готов рассказать о наткнувшихся проблемах.
Сперва редактор на моей Ubuntu не завелся, благо погуглил и нашёл решение на каком-то забугорном форуме (ссыль к сожалению потерял); оказалось надо было всего-то добавить некоторые сторонние пакеты. Вылеты на гноме также случались, но не так часто. Супер плюс — есть экспорт в разные форматы (xml и json), и… оказалось нет рабочего компонента под cocos2d js!

Вернее был, но поддерживал только вторую версию кокоса (сделанный тупо через кодировщик cpp to js). Что я только не пробовал:

  1. Портировать и местами переписать либу для запуска на третьей версии кокоса.
  2. Делать компонент с нуля по схематичному гайду: http://www.brashmonkey.com/ScmlDocs/ScmlReference.html
  3. Делать форк на основе официального плагина для construct2
  4. Портировать либу с голого canvas https://github.com/flyover/spriter.js

Конечно, из всего этого у меня ничего не получилось. Потратив две недели на всё это были идеи забить и начать переписывать геймуху на сраном юнити (к слову, пятая версия под нативный линух уже получила официальную поддержку от разработчиков и даже вышла в дев-свет) или на v-play (qt creator).
Под конец недели вместо того чтобы пойти погулять или хотя бы вынести залежавшийся мусор (мне кажется два дня назад пакет так не вонял) я рылся на оффоруме, и, (о чудо!) нашёл либу для PIXI https://github.com/LesserPanda-Engine/LP-Spriter.
Напомню, PIXI — отличный движок, имеющий максимально высокую производительность за счёт правильной архитектуры и минимальных врапперов для функций, его код стандартный яваскриптовый, без хитровыебнутых, написанных через «янь» компонентов (это я про главного пейсателя кокоса, если что).
Спустя три часа дебага, удалось перенести (не без греха) на альфа-версию cocos2d html5 3.9.
Из недостатков:

  • Всё криво (то ли углы просчитываются неверно, то ли якоря, то ли хз)
  • Рендерится без WebGL
  • Фиксированные 30fps (на 60 должно запуститься, но будет о-оочен-нь тормоз-зить)

Репу на гитхабе уже создал.

2016

21 февр. Используемые технологии

Пакетные менеджеры

  • Bower
  • NPM

Система сборки

  • Gulp
  • Bash
  • Webpack
  • Cordova 6

Отрисовка

  • Cocos2d-JS 3.10
  • Crosswalk

Клиентсайд

  • JavaScript 6-7
  • Babel

Серверсайд

  • Node.js 5
  • Nodemon
  • BrowserSync

Реалтайм:

  • Socket.io

Анимации

  • Spriter

Версионность

  • Git

Качество кода

  • ESLint

Среда разработки

  • Cocos Studio
  • WebStorm

Code review

  • Codacy

Монетизация

  • AdColony

Нотификации

  • PushBots

Инструменты — в целом вещь! Каждый проверен временем. Не разработка — а удовольствие (немного лукавлю да и пох) 😛

25 мар. Неудачи с Google SpreadSHITs

Google Sheets выдача JSON на основе Google Drive API v3. CSV в топку, делаем с помощью App Script.

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

Казалось бы, простая задача — выгрузить CSV из приватного документа хостящегося на google drive. Что может быть проще? Ищешь доки по HTTP интерфейсу, инициализируешь токен, настраиваешь CORS через веб-морду, устанавливаешь выходной формат через &format=csv и херачишь по Ajax. Хер там.
Тут же гугля:

  1. Вместо нормального токена здесь новомодный JSON Web Token. А значит Oauth, с «удобной» либой gapi.
  2. Сранный поисковик засирает ответами с прошлой версией API V2. Повсюду предлагают простое решение которое работает только если ты расшарил доку публично, если приватно — читай доки сука!
  3. С экспортом в mimeType text/csv отдается только первый SHEET. Как получить второй — неизвестно. Поэтому я хоть забил feauture request чтобы эти бездельники удосужились добавить вменяемый gid для перехода по всем таблицам.
  4. Понятно что русский язык неофициален и неприемлем в интернете, тогда зачем отдавать response в utf-8? Хоть загуглил грязный depricated хак с JS переводом в нужной кодировке:
  5. decodeURIComponent(escape(response.body))
  6. В application/vnd.openxmlformats-officedocument.spreadsheetml.sheet формируется так называемый large string которую просто распарсить не получится

Короче потратил две (или три?) ночи, забил на это неблагодарное дело и решил реализовать это при помощи скрипта на Google App Script. Это гавнище каким походу за три года пока я к нему не прикасался совершенно не изменилось: дебаггер остался примитивным, интерфейс устаревшим, работает медленно и пр. И финальный штрих — их API executable походу не работает, во всяком случае у меня оно не завелось. Однако, деплой в роли веб-приложения работает круто. Особенно радует простота с которой можно достаточно легко наваять JSON выдачу

function doGet(request) {
  return ContentService.createTextOutput(JSON.stringify({x:666}))
    .setMimeType(ContentService.MimeType.JSON);
}

P.S. Гуглявцы те еще засранцы, именно такими быдло-действиями насильно подсаживают нас на свои их гавно сервисы.

3 мая. Конец

Проект «1or2» отправляется в свободное правило без меня. Я вымотан и хочу отдыха.

16 июня. Публикация ресурсов

Из остатков ресурсов выложил пример своего конфига релизов Android на Travis CI.

17 июня. Удаляю репозиторий и ресурсы

Выкатил свой кастомный Dropbox SDK https://github.com/qertis/dropbox-sdk-js как часть оставшихся плагинов из кодовой базы. Всю кодовую базу удалил без возможности восстановления или спонтанного желания. Переключаюсь на другие проекты. А сам билд выкладываю здесь.

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
cocos creator
Предыдущая статья

Поклацал Cocos Creator, делюсь впечатлениями

gamedev gamepad
Следующая статья

Сорцы для создания игр