MnCreator - конструктор интерактивных приложений
Предисловие
Чуть больше года назад я уволился со своей последней "серьёзной" работы, когда понял, что компания себя исжила, ловить и достигать в ней больше нечего. И этот год я посвятил максимум своего времени (свободного и не очень) переосмыслению своей предыдущей работы и написанию своего детища, которое гордо (но пока не очень) носит название MnCreator.
О чём речь?
MnCreator - это специальный инструмент для визуальной сборки и проигрывания интерактивных анимационных приложений. Его основная задача - это дать возможность создавать свои собственные крутые приложения любому человеку без специальных навыков. Знаю, звучит сложно, но на деле всё гораздо проще. Есть 2 основных составляющих:
- MnEngine - 2D движок/фреймворк, написанный на JavaScript, почти со всеми из него вытекающими. "Почти" потому что мне удалось избавиться от основной проблемы других подобных фреймворков и предыдущего продукта, в котором я принимал участие - производительности. Движок невероятно быстр (например, на каждый объект, в зависимости от набора анимаций и параметров, он "пишет" собственную функцию расчета и отрисовки, что жрет чуть больше памяти, но гарантирует минимальное время выполнения, так как там нет ничего лишнего) и памяте-неприхотлив ("утечки" памяти на один цикл отрисовки сотен объектов составляют считанные килобайты, от которых просто невозможно избавиться из-за особенностей самого языка). Конечно, есть и минусы: движок не блещет универсальностью и расширяемостью. То есть взять, и пользоваться им как, например, JQuery, не получится, у движка другое предназначение. Ах, да, совсем забыл: поскольку написан он на JS, соответственно работает где угодно, но пока заявлена поддержка только Apple-девайсов и webkit-браузеров. Не то, чтобы я фанат Apple, просто Android начал более-менее "радовать" скоростью webView только в 4.4 и 5.0, а их пока слишком маленький процент от общего числа.
- MnCreator - собственно, "редактор" для движка, которая позволяет визуально оперировать объектами, анимациями и взаимодействиями с пользователем. Написан редактор так же на JavaScript, но работает как обычное десктопное приложение (спасибо невероятно крутому проекту node-webkit) для любой операционки: и Windows, и Mac OS, и даже Linux-версии редактора существуют и полноценно работают. Собственно редактор и есть ключевая особенность проекта: он нетребователен к ресурсам (любой офисный комп его потянет) и достаточно прост в плане интерфейса, чтобы с ним мог разобраться даже ребенок (а школьники - это весьма лакомый кусок аудитории). Редакторе реализует "мост" между сухим машинным представлением данных в движке (ни один программист в здравом уме не будет руками описывать объект вот в таком формате: {t:0,d:[104,372,1,1,0.5,0.5,0,1,2,0,0],w:544,h:370,c:{src:"img/name.png",w:544,h:370},o:1,fl:7}) и удобным интуитивным управлением этими данными. По сути, порог входа в разработку приложений снижается до нулевых знаний. В этом и огромный бонус для движка - вместо создания удобного и продуманного API для конечных разработчиков, я использую максимально лаконичные и сухие массивы данных, что крайне положительным образом сказывается на производительности.
Раз редактор и движок уже написаны, то чего я тут вообще хочу?
Ну, в общем-то, как программы они написаны, да. Я потратил на это год, и они вполне себе функционируют и ими можно пользоваться. С большим количеством оговорок. Давайте рассмотрим их по-порядку:
Оговорка номер "раз": создание любого приложения проходит в несколько этапов. Не буду углубляться, вкратце и поверхностно сначала нужно подготовить графику и материалы, затем где-то их "собрать" и "оживить", затем получить готовое приложение, отправить его в сторы и грести бабки лопатой. Всё классно, и здесь первая оговорка: MnCreator умеет "оживить" и частично "получить готовое приложение". Объясню.
- Во-первых, на выходе с первого этапа, например, мы имеем PSD-макет (либо любой другой формат) с кучей слоёв, с которыми надо работать. Увы, редактор пока так не умеет: все объекты и слои нужно создавать вручную именно в нём. Это подразумевает неблагодарный труд по переносу изображений, их координат и иерархии из инструментов графического дизайна в редактор. Редактору не хватает "импорта" из разных популярных форматов. Их, конечно, десятки, и все разные, но начать стоит именно с PSD.
- Во-вторых, на выходе из редактора получается "почти готовое приложение". Редактор (пока) не умеет делать IPA- или APK-пакеты, как это умеет делать PhoneGap, он умеет положить в нужную папку все материалы, создать данные для движка, положить туда сам движок и на этом всё. Как донести это до конечного пользователя (пока) остается на совести создателя: распространять просто так (запускаем player.html в любом браузере и вуа-ля, или оборачиваем это в PhoneGap и опять вуа-ля). И вторая проблема "почти готового приложения" - редактор (опять же, пока) не умеет делать локализацию на другие языки и делать версии для разных разрешений. То есть, если разработчик сделал приложение для iPad с разрешением 1024*768, чтобы "конвертировать" его для iPhone с идиотским разрешением 750*1334 (не, ну серьёзно, есть более-менее стандартное WXGA 768*1366, неужели нельзя было дотянуть десяток пикселей по обоим сторонам?) по сути придется пройтись руками по всем сценам и объектам и поправить их для этого разрешения. Грубо говоря, для "редактора" это будет просто уже другое приложение.
Оговорка номер "два": хоть я и нахваливаю редактор как инструмент с интуитивно-понятным интерфейсом, без базы знаний, уроков и т.п. не обойтись: нужно объяснять много концепций и понятий. Здесь же и проблема с функционалом: много возможностей никогда не бывает. Уже сейчас редактор может много чего, что год назад мне даже и не снилось, но ему есть куда стремиться. На эту тему у меня есть роудмап на скромные 3 страницы, но суммарно он охватывает где-то 9 месяцев работы только по функционалу.
Оговорка номер "три": редактор просто не готов как ПО. У него слишком узкий коридор UX: шаг влево или вправо - расстрел. Он не умеет обновляться по сети, у него нет средств визуальной конфигурации (новый шрифт для текстового модуля - лезем в конфиг, поменять язык интерфейса - лезем в конфиг, убрать папку из списка проектов - ну вы поняли), он вообще пока работает из исходников. И у него нет совершенно никакого комьюнити.
Кто моя ЦА?
Для себя я выделил несколько групп аудиторий, на которую я рассчитываю:
- Создатели "контентных приложений" - те самые крутые и навороченные аппы, которые заказчики смогут делать как сами, так и заказывать у студий-резидентов редактора.
- Авторы комиксов - почему бы из комиксов, которые художники рисуют в свободное время, потратив ещё лишний час, не сделать приложение с минимальным интерактивом? Назначить порядок чтения блоков, задать несколько анимаций внутри, добавить локализацию да несколько звуков - и это уже не просто комикс.
- Учителя/школьники/презентаторы - в общем-то, не будь я помешан на новых методах и способах обучения, я бы вообще не затеял всю эту историю. Я хочу добиться того, чтобы MnCreator мог свободно использоваться в качестве базы для презентаций и лекций: визуализировать законы физики, математики, красиво рисовать дерево животного мира, анимировать химические реакции (я их вообще никогда не понимал - как соединения обмениваются атомами, электронами и т.п.) и что угодно ещё.
Где здесь деньги?
- Во-первых, традиционные платные подписки. То есть если кто-то хочет собрать приложение без ограничений на размер, сложность, без копирайта и "выгрузить" это приложение из "облака MnCreator" - это будет не бесплатно. Конечно, базовый функционал будет доступен бесплатно, но, с некоторыми ограничениями.
- Во-вторых, магазин плагинов, расширений и контента. Именно здесь мне и нужна помощь комьюнити. Программист может написать мини-игру и продавать её за пяток долларов пользователям редактора, с которых сервис получает процент. Или художник сделать пак графики для комиксов - обводки, "балуны" для текстов и так далее.
- В-третьих, создание приложений на заказ и/или брендирование редактора. У редактора гибкая модульная структура и он умеет подключать/отключать нужные модули практически налету. Так если кому-то для выпуска циклов комиксов или типовых приложений нужна конкретная конфигурация редактора - почему бы её не предоставить?
Какие дальнейшие шаги?
- Продолжая держать разработку в тени, я рискую сделать сервис для самого себя. Может быть я уже иду в неправильном направлении. Собственно именно здесь я и собираюсь вести дневник и отчитываться об успехах или поражениях. Есть у меня ещё трекер задач на pivotaltracker.com, но пока не уверен что стоит его открывать.
- Доделать сайт, сделать презентаций, выпустить наконец несколько проектов, которые уже используют MnCreator. Словом, начинать собирать комьюнити вокруг редактора.
- Создать минимально-действущую версию Редактора, которую не стыдно показать в закрытом бета-тесте. Сюда входит: базовая регистрация в облаке, автообновление по воздуху, сборка готового проекта, основа базы знаний, повышение стабильности и отправка отчетов об ошибках.
- Нужно в каком-то виде перенести сюда роудмап по функционалу, а так же следующие большие категории:
- Поиск инвестиций/клиентов. Понятно, что на свободном времени далеко не уедешь (да и вообще, если б я мог посвящать проекту всё своё время, он был бы уже 10 раз готов), поэтому нужно двигаться в этом направлении.
- Юридическая сторона вопроса: лицензионное соглашение, регистрация прав, компаний и так далее.
Criterio del fin
С помощью MnCreator на постоянной основе создаются и выпускаются интерактивные приложения.
Recursos personales
Умеренное количество личных финансов и максимальное количество свободного времени.
Lo ecológico del objetivo
Хочу сделать мир лучше, чище и ваще. Ну а впрочем - меня просто прет делать то, что я делаю (за год не потерять мотивации - это надо уметь) и я хочу чтобы меня это не просто перло, а чтобы я мог посвящать этому всего себя и не думать о деньгах.
-
Подготовка редактора к публикации
Нужно довести редактор с текущим функционалом до версии, которой смогут пользоваться все.
-
Разобраться с инструментами сборки: нужно предоставлять готовый к запуску архив с защитой исходного кода. Здесь же - изменение структуры про
-
Реализовать интерфейсы настройки редактора и подключения плагинов
-
Сделать базовое обновление по сети: редактор должен уметь лазить в интернет, проверять наличие новой версии и скачивать её
-
Добавить обработку ошибок и генерацию отчетов.
-
Реализовать "документацию" хотя бы в базовом виде и хотя бы на одном языке
-
Разобраться с юридической стороной вопроса: очевидно мне нужна какая-то базовая защита прав даже не имея юридической структуры
-
-
Разработка сайта
-
Выбор шаблона
-
Натягивание шаблона на Meteor.js
-
Заполнение основного контента: проекты, функционал
-
Записать видео для раздела "Демо и уроки"
-
Перевод сайта на английский язык
-
-
Реализация заявленного функционала
Мета-цель. Её невозможно закончить, поэтому я здесь буду складировать что-то типа выжимок из роудмапа, исходники, задачи с pivotaltracker.com и рассуждения о судьбе мира.
-
Полноценная сборка приложений
-
Влючение обновлений
-
Тестирование билд-версий редактора
-
Экспорт проектов в PhoneGap
-
-
Запись уроков
-
Сценарии
-
Урок 1 (обзор интерфейса) - запись
-
Урок 2 (объекты) - запись
-
Урок 3 (анимации) - запись
-
Урок 4 (интерактивы) - запись
-
Английский текст
-
Озвучка
-
Монтаж
-
-
Выпуск приложений студии "ДрузЗаДруга"
Пока что моей разработкой пользуется всего 1 студия, но уже есть пяток приложений в процессе разработки и запуска.
-
ДубДом
-
Хармс
-
Сказки Внутри
-
Академики Цвета
-
-
Сбор комьюнити, клиентов и инвесторов
Собственно, пока на редакторе работает всего 1 студия и 2 человека аниматоров. Нужно больше золота! (c) %)
-
Публикация в тематических сообществах vk, fb
-
Ведение групп в vk, fb
-
Создание уроков и обучающих материалов + перевод + публикация на сайт / группы / документацию внутри редактора
-
Вероятно посещение разных митингов для стартаперов и т.п. - это отложим. Я вообще не готов писать какой-нибудь бизнес-план и идей по презент
-
Постоянный мониторинг всяких boomstarter.ru с целью поиска потенциальных клиентов - художники комиксов и т.п.
-
- 6613
- 10 enero 2015, 18:01
¡No omita entradas nuevas!
Suscríbase al objetivo y siga su logro