Как выбрать технологический стек для стартапов?
Технический стек также называют экосистемой данных, технологической инфраструктурой или стеком решений. Это комбинация инструментов, которые используются для создания и эксплуатации одного приложения. Это структура, на которой приложение, которое вы используете, например Facebook поддерживается такими инструментами как: HTML, PHP, CSS, ReactJS или JavaScript.
Более того, стеки объединяют два аспекта разработки программного обеспечения: серверная и визуальная части. Фронтенд - это экосистема, в которой взаимодействие осуществляется пользователями, а бэкенд - веб-сервер и координация.
Вы можете спросить, как определить правильный стек технологий для вашего бизнеса? Стек технологий, предназначенный для разработки веб-сайтов, будет отличаться от необходимого для мобильных приложений. Точно так же стек коммерческих/корпоративных продуктов будет отличаться от стека стартапов. К другим факторам относятся скорость, с которой вы хотите выпускать MVP(Минимально жизнеспособный продукт), и количество квалифицированного персонала, которое вы можете выделить для нового проекта.
Стек технологий для стартапов
Чтобы определить правильный набор технологий для вашей стартап-компании, вы должны понимать, что технологический стек не универсален. Они собираются на основе следующих факторов:
- Тип проекта: если у вас небольшой проект, идеальным техническим стеком была бы стандартная система управления контентом, такая как WordPress. Для стартапа среднего размера вы можете объединить CMS с подходящим языком программирования, таким как Python, C ++ или JS. Для более крупного проекта вам потребуются веб-приложения со специальными функциями, отвечающими вашим требованиям.
- Дедлайн: количество времени, в течение которого вы хотите запустить свои проекты, частично зависит от стека, который вы выбрали для своего веб-приложения. Имея правильный технический стек, заданный опытным разработчиком, вы можете выпустить свой продукт вовремя и без ошибок.
- Масштабируемость: способность системы, сети или процесса справляться с увеличением своей производительности при добавлении ресурсов (обычно аппаратных). Увеличение производительности каждого компонента системы с целью повышения общей производительности или же разбиение системы на более мелкие структурные компоненты и разнесение их по отдельным физическим машинам.
- Обслуживание: зависит от кодовой базы и инфраструктуры программного обеспечения. Реюзабилити и длина кода считается важным.
- Доступность: Некоторые технологии платные, а некоторые не могут быть использованы в коммерческих целях. Помимо этого необходим специалист для их применения. Востребованные разработчики уже заняты на других проектах, и поэтому, найти хорошего разработчика, который мог бы заставить все это работать - дорого. Это актуально для Python, React Native и Node. Найм хорошего разработчика одна из главных статей расходов.
- Стоимость: Бюджет всегда имеет ограничения, будь то запуск ракеты или копицентр. Вы - идейный носитель стартапа, очевидно что деньги расходятся на ресерч, найм, маркетинг и прочее. Следовательно, можно попробовать сэкономить, на использовании решения с открытым исходным кодом. Другими словами, вы можете использовать такие технологии бесплатно. Они постоянно развиваются, настраиваются и часто достаточно долговечны. Но их могут выпустить и забросить. Это и есть риск. Или там может быть вредоносный код - и это риск. Или это перестанет работать, потому что связано с внешним сервисом, который перестанет работать.
Кроме того, следите за техническими стеками, которые уже созданы компаниями и доступны на рынке. Вы можете найти их на Stackshare, чтобы увидеть, какие компании используют стек программного обеспечения.
Технический стек для MVP
Итак, у вас есть целенаправленный технологический стек, и все сотрудники и приоритеты. Но на протяжении всей разработки вашего продукта MVP может сильно отличаться от того, что вы изначально задумывали.
Иногда вы можете прийти к тому моменту, когда окончательная версия MVP потребует изменений в вашем стеке технологий, поскольку дальнейшие инновации и развитие будут зависеть от того, с чем вы работаете. В таких обстоятельствах вам может потребоваться начать все сначала с новыми фреймворками и совершенно новой архитектурой. Всего лишь один недостающий элемент может изменить всю инфраструктуру и навести беспорядок.
Факторы, которые следует учитывать при выборе стека технологий MVP
- Убедитесь, что продукт выходит на рынок в короткие сроки. Таким образом вы сможете быстрее собирать отзывы и поддерживать быстрый темп исправлений и развития.
- Заранее принимайте расчетные решения, чтобы исключить альтернативные затраты времени из-за отсутствия программ автоматизации, поддерживающих вашу инфраструктуру. Наличие подходящего инструмента CI / CD может ускорить тестирование, управление версиями и размещения приложения.
- Не экспериментируйте со своим MVP в поисках разрекламированной или новой технологии, даже если разработчики этого хотят. Когда вы серьезно относитесь к технологическому стеку для своего проекта, вам нужно думать о долгосрочной перспективе (Хотя, это спорно, стартап не всегда для долгосрочной перспективы). Чтобы увидеть, является ли новая технология причудой или позитивной тенденцией необходимо время.
Новые технологии нестабильны, и вам может быть нелегко найти команду для новой ниши, что является пустой тратой времени и денег. Поэтому сосредоточьтесь на имеющихся в настоящее время и доступных в будущем стеках. Работайте умеренно, чтобы проложить стабильный путь к желаемому результату.
Заключение
Есть две вещи, на которые вы должны обращать внимание при выборе набора технологий для своего стартапа; проект и разработчик. Вы изучаете свои требования к стартапу и тип MVP, который хотите запустить? Это поможет вам найти похожие примеры и усвоить некоторые знания, на выяснение которых у вас уйдет целая вечность.
Кроме того, прежде чем использовать свой стек технологий, проконсультируйтесь со своей командой разработчиков, чтобы изучить их область знаний для выполнения работы. Они, вероятно, сами предложат стек для проекта, которым вы собираетесь заниматься - правильное предвидение ваших требований, наличие рук для вашей цели и внимание к своей команде разработчиков при выборе инфраструктуры программного обеспечения проложат путь к успеху стартапа.
Английский вариант читать тут: How to Choose a Technology Stack for Startups
Понравилась ли статья? Напишите отзывы, будем продолжать? :)
Лучшие Front-end фреймворки для веб-разработки в 2021 году
Программирование веб-сайтов и веб-приложений всегда должно начинаться с выбора правильной технологии. Фактически это станет основой вашего будущего проекта. Если вы новичок в программировании или уже открыли свой путь, возможно, вы работаете с JavaScript. В таком случае никогда не следует забывать о фронт-енд фреймворках JavaScript. Программисты используют их постоянно, поскольку они являются идеальным инструментом для разработки сложных веб-приложений.
В следующей статье сделаем акцент на самых популярных интерфейсных фреймворках за последние несколько лет. Более того, нам удалось проанализировать массу информации о трендах JS. Все это для того, чтобы выбрать те, которые сохранят или увеличат их популярность среди программистов. Здесь вы найдете только самые лучшие фронтенд-фреймворки JavaScript.
Angular, React, Vue - эти названия широко известны всем программистам. Но вопрос в том, хороши ли они вообще? А может просто переоценено? Узнаем же все плюсы и минусы упомянутых фреймворков, а также многое другое!
Эти повторяющиеся массивные падения хорошо видны в Google Trends. То же самое произошло и в декабре 2020 года. За последние несколько лет пользователи Google больше всего искали React.js. Angular всегда отставал лишь на небольшой шаг, а Vue.js шел третьим.
Чтобы подтвердить наши выводы, мы перешли на страницу NPM Trends для загрузки фронт-енд фреймворков JS. Было видно такое же падение популярности. На сайте показано, что React.js - это наиболее часто загружаемый фреймворк. Второе место принадлежит jQuery. Vue.js отстает.
Посмотрев на State of JS, мы увидим убедительный результат. Это обзор разработчиков, ориентированных только на JS, приводит нас к выводу, что React пользуется высокой репутацией среди программистов. Это был самый надежный интерфейсный фреймворк JavaScript каждый год. За исключением того случая в 2018 году, когда он разделил первое место с Vue.js. К нашему удивлению, популярность Angular среди пользователей в последнее время падает.
Примерно в начале 2020 года Statista провела онлайн-опрос разработчиков, чтобы изучить популярность веб-фреймворков. Среди наиболее часто используемых интерфейсных фреймворков JS можно увидеть jQuery, React.js и Angular. Честно говоря, ничего удивительного.
Чтобы подтвердить рейтинги, мы рассмотрели StackOverflow и их идеи для разработчиков в начале 2020 года. Результаты были очень похожи на результаты, полученные на Statista.
Это подводит нас к окончательному вердикту. Меняется популярность лучших интерфейсных JavaScript-фреймворков. Тем не менее, те, которые сохранили свою репутацию за последние пять лет, - это Angular, React и Vue.js.
Список фреймворков, которые будут популярны в 2021 году
Мы хотим поделиться с вами нашими прогнозами о главных тенденциях в интерфейсных фреймворках JavaScript на 2021 год. Есть несколько фреймворков, которые, несомненно, сохранят свои позиции. Вот наш шорт-лист на этот год, основанный на анализе прошлых лет и изменении популярности:
1. React.js
2. Angular
3. Vue.js
4. Backbone
5. Ember
Глядя на текущие тенденции, мы понимаем, что среда интерфейсных фреймворков JS процветает. Мы также хотим рассказать о нескольких полезных фреймворках, которые будут использоваться в 2021 году. Даже несмотря на то, что их прайм-тайм ушел:
1. Ext JS
2. Svelte
3. Preact
5 лучших Front-End JavaScript-фреймворков в 2021 году
Давайте внимательнее рассмотрим все основные особенности лучших Фронт JavaScript-фреймворков. После подробного изучения мы выбрали для вас 5 основных.
1. React
Более 162 тысяч звезд на GitHub делают React.js действительно заслуживающим доверия. Эта внешняя среда JavaScript с открытым исходным кодом увидела свет в 2013 году. Это произошло благодаря Facebook. Фреймворк был разработан, чтобы позволить дизайнерам и разработчикам создавать современные графические интерфейсы приложений. React.js использует компоненты, которые значительно улучшают весь процесс создания веб-проекта. Благодаря своей высокой эффективности этот JS-фреймворк идеально подходит для приложений с высокой посещаемостью. Как Netflix, Dropbox или Pinterest, которые все основаны на React.js.
React.js - самые важные функции:
- Этот интерфейсный фреймворк работает быстрее других. Благодаря этому программисты могут сэкономить много времени и стать более эффективными.
- По сравнению с Angular продуктивность React постоянно росла, превращаясь в инструмент для создания серьезного и сложного программного обеспечения.
React.js плюсы:
- Хорошая производительность, поскольку он основан на виртуальной модели DOM.
- Его компоненты можно повторно использовать в разных частях приложения.
- Большое сообщество постоянно развивается и делает фреймворк стабильным.
- Он универсален и может использоваться с любыми фреймворками.
- Односторонний поток данных.
Минусы React.js:
- Использование сложного JSX заставляет разработчиков и дизайнеров жаловаться на это.
- Его динамика иногда может влиять на поисковую оптимизацию Google (SEO).
- Поддерживает только результаты внешнего интерфейса.
2. Angular
Angular - фронт-енд JavaScript для веб-приложений, созданная инженерами Google. Они стремились полностью изменить дизайн интерфейсных веб-приложений. Им это удалось? Что ж, если мы посмотрим на его популярность и репутацию, мы можем сказать, что Angular превзошел своего старшего коллегу, jQuery. Приложения Xbox, Forbes и BMW основаны на этой технологии. Все программисты, использующие эту структуру, получают передовой опыт. Наряду с React.js новичкам широко рекомендуется Angular. Но действительно ли это так просто?
Angular - важнейшие особенности:
- Эта структура использует двустороннюю привязку данных. Он обеспечивает динамическую синхронизацию данных между уровнем представления и уровнем модели данных в архитектуре MVW.
- Angular построен исключительно на TypeScript, что обеспечивает плавную и эффективную работу. Другими словами, TypeScript - это основной язык Angular.
- Это кроссплатформенный фреймворк. Используя Angular, программисты могут создавать веб-сайты, веб-приложения, мобильные приложения и настольные приложения. Довольно аккуратно, да?
Angular плюсы:
- Он автоматически улавливает изменения на уровне модели, самостоятельно изменяя код HTML.
- Простые решения для тестирования на основе Angular поддерживают интеграцию модульных тестов.
- Внедрение зависимостей обеспечивает простой перенос и взаимодействие между всеми компонентами сложной системы.
- Angular отлично работает с внешними библиотеками, такими как jQuery, UnderscoreJS или Ionic framework.
- Встроенная связь REST через $http и $resource
Angular минусы:
- Трудно изучить сложные процессы. Это не самый простой фреймворк для новичков, не имеющих опыта работы с JavaScript и TypeScript.
- При открытии приложения все скрипты загружаются одновременно. Это влияет на эффективность и скорость работы программистов.
- Для полной индексации сайта вам нужно будет использовать внешние инструменты, которые возвращают правильный HTML-код.
3. Vue.js
Когда дело доходит до Vue.js, в представлении нет необходимости. Эта внешняя среда JavaScript с открытым исходным кодом модели MVV была впервые представлена в 2014 году Эваном Ю. Он раньше работал в Google, где использовал Angular. Сначала Вы создали облегченную версию того, что ему больше всего нравилось в среде Angular. Теперь, семь лет спустя, Vue.js является одним из наиболее часто используемых в мире интерфейсных фреймворков для JS. Но сможет ли он оправдать свою репутацию?
Vue.js - самые важные функции:
- Он работает как универсальный JavaScript-фреймворк, сочетая в себе самые удивительные инструменты из Angular, React и Ember. И он легче своих предшественников.
- Эта структура работает с виртуальной DOM и использует двустороннюю привязку. Все это делает Vue.js сложным и современным решением для разработки сложных веб-приложений.
- Vue.js основан на открытом исходном коде и, вероятно, станет более удобным для пользователя. Тем более, что для всех программистов подробная и обширная документация.
Плюсы Vue.js:
- Серверный рендеринг на основе того, что предоставляет Angular2 и React.
- Скорость и эффективность как для одностраничных, так и для многостраничных проектов.
- Интуитивно понятные функции и простой синтаксис делают этот фреймворк простым в освоении для новичков.
- Поддерживает эластичное и гибкое программирование на основе понятного и читаемого кода.
- Поддерживает использование машинописного текста.
Минусы Vue.js:
- Небольшая поддержка. За Vue.js. не стоит крупная корпорация. Это делает его менее предпочтительным для продвинутых программистов, которые привыкли к другим фреймворкам JavaScript.
- Гибкость. Не поймите неправильно. Это также преимущество Vue.js. Но в то же время выбор множества компонентов может вызвать проблемы. Особенно при реализации масштабного проекта, над которым работает много программистов.
- Языковой барьер. Многие из новых механизмов и плагинов, используемых в Vue.js, написаны на китайском языке.
4. Backbone
Backbone.js - это еще один стабильный фреймворк JavaScript для веб-приложений. Он был выпущен в 2010 году. Его создатель Джереми Ашкенас также известен благодаря CoffeeScript и Underscore.js. Эта облегченная структура JS обрабатывается моделью MVC. Он предназначен для разработчиков, работающих над одностраничными веб-приложениями. Backbone.js широко используется, и его популярность растет с каждым годом. Веб-приложения, построенные на этой платформе, включают, среди прочего, Airbnb, Hulu, SoundCloud или Verizon.com.
Backbone.js - самые важные функции:
- Легкая в освоении эта интерфейсная среда позволяет программистам разрабатывать клиентские веб-приложения и мобильные приложения.
- Он принимает императивную парадигму программирования при работе с DOM. Другими словами, Backbone состоит из команд, которые должны выполнять приложения.
- Backbone.js совместим с REST API, что делает его безупречным для синхронизации между бэк и фронт фреймворками.
Backbone.js плюсы:
- Обеспечивает быструю и плавную работу.
- Новичкам очень легко изучить эту внешнюю среду JavaScript для веб-приложений.
- Основанный на библиотеке с открытым исходным кодом, он имеет более 100 пользовательских рабочих расширений.
- Его модели и коллекции совместимы с архитектурой RESTful. Вы можете удобно получить их данные с сервера.
- Очень отзывчивый. Все изменения кода можно сразу увидеть в приложении.
Backbone.js минусы:
- Чтобы писать более сложные приложения, программистам необходимо загрузить дополнительные плагины и расширения.
- Небольшой размер. В то же время это преимущество. Тем не менее, если вы хотите использовать Backbone.js в полной мере, вам необходимо добавить в свой проект фреймворки Underscore.js и jQuery.
- Backbone.js не имеет готовых структур. В нем есть только несколько очень простых инструментов для разработки макета приложения.
5. Ember
Другой широко используемый и известный фронт фреймворк JavaScript - это Ember.js. Созданный в 2011 году Иегудой Кац, он настоятельно рекомендуется профессиональными кодировщиками, работающими над передовыми решениями. За этой структурой стоит заинтересованное сообщество, так как она основана на механизмах с открытым исходным кодом. Ember.js фокусируется на предоставлении инструментов высочайшего качества для клиентских веб-приложений и мобильных приложений. Прямо сейчас некоторые из самых известных веб-сайтов, использующих эту структуру, включают Apple Music, Discourse, LinkedIn и Twitch.
Ember.js - самые важные функции:
- Двусторонняя привязка данных, как в Angular.js. Эта функция синхронизирует и модель, и вид.
- Наличие Fastboot.js позволяет ускорить рендеринг всех серверных DOM и повысить производительность сложных интерфейсов.
- Ember.js - лишь один из основных компонентов сложного стека внешнего интерфейса, подготовленного командой Ember. Эти решения также включают Ember CLI, Ember Data, Ember Inspector, Fastboot и Liquid Fire.
Плюсы Ember.js:
- Он использует простые для понимания шаблоны, позволяющие легко и гибко разрабатывать пользовательский интерфейс.
- Благодаря этой структуре вы можете добавлять маршруты вложения поверх представления шаблона.
- Простая отладка благодаря решениям Ember Inspector.
- Пользователи получают хорошую документацию по фреймворку JS.
- Все используемые шаблоны можно предварительно скомпилировать на сервере.
Минусы Ember.js:
- Изучение фреймворка считается трудным. Ember.js рекомендуется продвинутым пользователям, хорошо разбирающимся в интерфейсных фреймворках JS.
- Он не использует простые модели JavaScript, что делает веб-приложения более сложными, чем в случае с Angular.js.
- За Ember.js стоит относительно небольшое сообщество. Поэтому поиск решения ваших проблем может занять немного больше времени.
Обзор других фреймворков
Мы выбрали три других JS-интерфейсных фреймворка, о которых стоит упомянуть. Даже если они не так популярны, как упомянутые ранее. Давайте взглянем на них бегло.
1. Ext JS
Ext JS, фронт-енд JavaScript-фреймворк для веб-приложений, был представлен в 2007 году. Сначала он был построен как расширение библиотеки-надстройки YUI. Использование внешних фреймворков с Ext JS необязательно. Эта технология может работать совершенно независимо. Возможно, это не самый популярный интерфейсный фреймворк, но он работает довольно хорошо. Особенно при создании динамических сеток для статических веб-страниц или разработке одностраничных веб-приложений.
Плюсы Ext JS:
- Использует множество виджетов, упрощает работу и вносит изменения.
- Существует надежное сообщество, предоставляющее хорошую документацию и руководства.
Это делает этот фреймворк интересным вариантом для начинающих программистов.
- Пользователи могут воспользоваться стабильной базой предварительно протестированных компонентов пользовательского интерфейса.
Минусы Ext JS:
- Бесплатная версия Ext JS имеет ограниченную поддержку пользователей, и у пользователей могут возникнуть проблемы с отладкой.
- Полная версия стоит довольно дорого. Поэтому мы рекомендуем его только тем пользователям, которые уверены, что продолжат работать с этим фреймворком.
Svelte - относительно молодой фронт фреймворк JavaScript, основанный на его предшественнике Reactive.js. Первая версия этого бесплатного фреймворка с открытым исходным кодом была выпущена в 2016 году. Программисты могут использовать Svelte прямо в браузере, что является нововведением по сравнению с его конкурентами. Поскольку он является одним из последних фреймворков JS-интерфейса, он все еще не имеет интегрированного сообщества. Может быть, в ближайшие годы это изменится. Будем внимательно следить за этим.
Плюсы Svelte:
- Легкие и, следовательно, более быстрые, чем другие интерфейсы.
- Это помогает уменьшить масштаб веб-приложения за счет уменьшения его размера. Это отличная возможность для всех тяжелых приложений, которые некорректно работают при медленном подключении к Интернету.
- Компоненты легко понять, и их реакция на помеченные утверждения работает очень хорошо.
Минусы Svelte:
- За фреймворком стоит небольшое (но постоянно растущее!) Сообщество. Становится сложно решить некоторые проблемы, которые могут возникнуть у начинающих программистов при изучении этой библиотеки.
- Для небольших проектов рекомендуется использовать Svetle. Доступных дополнительных инструментов по-прежнему недостаточно, чтобы помочь кодерам работать в больших масштабах.
3. Preact
Сначала вы можете спутать Preact с React. Однако первый фреймворк намного легче и быстрее. Переход на Preact - хорошая идея для всех разработчиков, работающих с JavaScript. Использование этого фреймворка определенно сделает все веб-приложения более адаптивными и быстрее работают. У этого есть и обратная сторона. Вы можете потерять несколько функций React. Будет ли Preact когда-нибудь так популярен, как другие фреймворки? На данный момент трудно сказать.
Плюсы Preact:
- Легкий, портативный и совместимый с библиотеками React.
- Высокая эффективность позволяет кодировщикам работать без проблем и создавать более легкие версии веб-приложений.
- У него больше функций, чем у React-lite framework.
Минусы Preact:
- Небольшое сообщество затрудняет получение решений некоторых проблем.
- Preact предоставляет только функциональные компоненты без сохранения состояния и компонент, зависящий от ES6.
Какие фреймворки Frontend JS следует изучить в 2021 году?
Итак, вы собрались изучить новый фронт фреймворк JavaScript в 2021 году? Затем вы должны спросить себя, чего вы хотите достичь. Найдите свою цель, а затем ищите средства для ее достижения. Есть несколько замечательных фреймворков для начинающих, у которых нет опыта работы с JavaScript. Лучший фронт JS фреймворк для начала - React.js. Благодаря известному сообществу пользователей новичкам будет легко искать решения проблем.
Продвинутые программисты должны бросить вызов самим себе и продолжать поднимать планку выше. Поэтому рекомендуем всем новичкам. Мы имеем в виду все фреймворки, которые не имеют большого сообщества и не используются начинающими программистами.
Почему это? Потому что таким технологиям, как Preact, Svetle и Ext JS, нужны профессионалы, которые помогут будущим программистам решить существующие проблемы.
Когда вы считаете себя профессиональным пользователем JavaScript, нет никаких ограничений в отношении фреймворков, которым вы можете доверять. Если вы ищете лучший фреймворк JS для проектирования и разработки крупномасштабного проекта, выберите Angular. Это будет одна из хорошо поддерживаемых разработок JS в 2021 году. Ваша работа может быть намного проще и быстрее, чем когда-либо, благодаря использованию TypeScript.
Еще одна замечательная идея - попробовать Vue.js. Он известен своей популярностью среди пользователей. Неудивительно, почему - в нем собраны все лучшие функции от Angular и React. И он также работает с TypeScript для повышения производительности и эффективности. Эта структура поддерживается большим сообществом программистов, которые готовы помочь в случае необходимости. С таким мощным инструментом ваш следующий большой проект приложения в 2021 году будет иметь потрясающие результаты.
Заключение
Хотим, чтобы вы запомнили еще одну вещь. Фреймворки JavaScript постоянно развиваются. И для веб-приложений, и для мобильных. Все они предоставляют различные библиотеки, функции и расширения. Некоторые подходят для одностраничных веб-приложений, другие лучше работают с более крупными проектами. Окончательное решение по-прежнему остается за вами, независимо от того, для чего вы планируете использовать фреймворки. Никогда не стоит просто плыть по течению. Не полагайтесь только на популярность веб-фреймворка. Выбирайте фреймворки, которые удовлетворят ваши потребности.
Английский вариант читать тут: The Best Front-end Frameworks for Web Development in 2021
Понравилась ли статья? Напишите отзывы, будем продолжать? :)
Как в 30 лет стать старым и никому не нужным на примере разработки квеста
Всем привет. Хочу поделиться своей историей, а именно — историей немного затянувшейся разработки простенького point‑and‑click квеста.
Флешбэки
Мне 21, я молод, работаю в рекламном агентстве веб-дизайнером. Денег хватает на съём жилья и дошик, но я не унываю, ведь это моя первая работа.
В какой-то момент натыкаюсь на флеш-блоги, в которых проскакивают нереально успешные истории простых работяг. С каждым днём я всё больше проникаюсь идеей бросить работу и попробовать сделать игру, а затем продать её. Пока нет клиентов, прямо в офисе собираю вот такой прототип.
Он играбелен и сделан полностью самостоятельно — это очень сильно мотивирует на подвиг.
Настал час Х. Отработав ровно год, увольняюсь и возвращаюсь в родную деревню. Имея под руками кряхтящий комп и графический планшет, приступаю к созданию полноценного приключения на базе прототипа.
Комп, планшет и один из рабочих моментов. 2012 г.
Первый облом — на компе 2 ГБ оперативы, он не тянет Flash и Photoshop одновременно открытыми. Докупаю ещё 2 гб, дело пошло.
Очень нравятся «Машинариум» и «Samorost» , я прямо влюблён в их визуальное и звуковое оформление. Вдохновившись, через пять месяцев работы выпускаю свою первую игру — Shapik: the quest, квест моей мечты.
Ничего умнее названия «Shapik» я не придумал, герой в шапочке — Шапик.
Немного деталей разработки
Рисовал с помощью планшета Wacom Bamboo A5. Это был первый опыт реального рисования, до этого использовал его для веб-макетов. Фоны — фотошоп, персонажи и анимация — флеш.
Когда было готово три первых уровня, задумался о музыке. Нашёл на флеш-форуме композитора, описал пожелания, а также отправил скриншоты уровней.
90% звуков взял с freesound.org, остальные записывал сам. Обрабатывал в Adobe Audition. В игре получилось больше 100 звуков.
Поиграть можно тут (flash).
Игра готова, теперь её нужно продать. В то время флеш-игры активно продаются на FGL(флеш-аукцион). Заливаю игру, аукцион длится три недели, я очень переживаю и радуюсь каждой новой ставке. В один момент приходит предложение, которое равно годовой зарплате в агентстве. Я очень рад, прямо на вершине от счастья.
Случайно наткнулся на FlashGAMM (конференция разработчиков) и отправил игру на конкурс. Так как мероприятие проходило в Москве, у меня не получилось его посетить и, по правде говоря, я не надеялся, что моя первая игра может что-то взять.
Произошло чудо, за три дня до начала конференции пришло уведомление о номинации сразу в трёх категориях. Прошу знакомого, который находится на конференции, понаблюдать, что будет дальше. И тут он пишет, что мой квест победил в номинации «Лучшая будущая мобильная игра», а главный приз — Microsoft Surface. Моей радости нет придела, я — крутой инди-девелопер.
2013‑2015 годы
На волне успеха флеш-квеста нахожу программиста и мы с ней клепаем физические пазлы-платформеры один за другим.
Вы спросите — почему же не новый квест? Физические пазлы в тренде, их делать намного проще, и они неплохо продаются. Нам хватает на жизнь и мы понемногу откладываем.
Скриншот с FGL, 3300 долларов за простой платформер
С 2015 года флеш, а вместе с ним и веб-игры постепенно уходят на задний план. Вместо флешек пришли игры на HTML5, они намного примитивные, а продаются в два раза лучше. Пилим милые пазлы.
Также в этот период из флеша все массово бегут на мобилки.
Вспоминаю, что когда-то у меня вышел вроде бы неплохой квест, и чтобы не отставать, портирую его на Android с помощью Adobe AIR. Благо, что всё портирование обошлось нажатием одной кнопки publish.
Игра выходит в Google Play. Так как не хватило ума прикрутить рекламу, а для платной я считаю ее очень маленькой, она выходит полностью бесплатной и без монетизации. Залил и забыл, не рассчитывая на какой либо успех, задача стояла собрать игру для мобильной площадки.
Android-устройства у меня нет, в магазин совсем не заглядываю. На одной из вечеринок друг достаёт Samsung Galaxy S5 — на тот момент аппарат с космической диагональю и нереально крутым дисплеем. Думаю, дай-ка я взгляну, как там дела у моего мобильного детища, и к своему удивлению обнаруживаю за месяц 35000+ инсталлов и больше 800 комментов. Я шокирован.
Так появляется идея сделать вторую часть, она должна быть в два раза больше, круче и интереснее.
Shapik: the quest 2, 2015 год
Общая история о ядерной войне и её последствиях появляется очень быстро.
Буквально за три дня на флеше собрал первый уровень.
Также нарисовал нового главного героя. По сравнению со старым у него появилось нормальное тело, голова и шея. Старый был, как сосиска.
Игра идёт в Full HD и простой флешик уже не справляется с нагрузкой. Нужно переписывать на GPU (starling). Я совсем не программист, пишу пост на геймдев.ру о поиске напарника.
Отписалось пять человек, первый не отвечал, связался со вторым и все завертелось.
Остаток 2015 года программист учится работать с GPU-флешем, я учусь рисовать и анимировать
2016 год
Хоть у нас совсем нет опыта, разработка идёт бодренько, мы созваниваемся и обсуждаем новые идеи, доработки. Я прям чувствую, что мы одна команда.
Чего только стоят наши брейнштормы по скайпу. Бывало, по паре дней ничего нового не лезло в голову, но стоило нам созвониться — идеи приходили сами собой.
Работало это примерно так.
- Обсуждаем новую концепцию уровня или головоломку;
- Зачастую программист рисует его схематически;
- Описываем ветки и анимации.
Примеры уровней от набросков до финального варианта
Далее тестируем, я собираю список правок и передаю программисту, вся работа идет через dropbox.
В активной разработке проходит год.
У нас готово 12 уровней и демо, это уже вдвое больше, чем у первой части. Заливаю в Steam Greenlight, зеленый свет получаем в течение двух недель.
И тут до нас доходит, что игра совсем без сюжета, а уровни это по сути набор отдельных головоломок. Также они очень короткие и плюс у игры плохо со звуковыми эффектами и музыкой.
2017 год
Прорабатываем сюжет. У программиста это отлично выходит.
Добавляем промежуточные уровни, катсцены, новые анимаци.
Составляющие для анимаций рисую в фотошопе, анимирую во флеше, эффекты — покадровый флеш.
В команду добавляется композитор/саунддизайнер.
Появляется атмосферный саундтрек, а также крутейшие звуковые эффекты.
Игра ощущается с новой силой.
Из-за специфики проекта озвучивание идет небыстро, так как каждая анимация это мини-мультфильм, который требует уникальных звуков.
2018 год
Квест готов на 80%, финализированы и озвучены практически все уровни, не хватает катсцен, блокнота подсказок, а также главного меню.
Катсцены собираю во флеше, а потом экспортирую в видео. На больших объемах флеш очень сильно подтормаживает, приходится собирать отдельные сцены, а потом всё это объединять. Это очень сильно замедляет.
Анимации, вложенные в анимации
В процессе придумывается меню на отдельных листах бумаги, оно прикольно смотрится, а самое главное — в нём нет никакого текста.
2019 год
Начало 2019-го. Игра готова и проходится от начала до конца, но нормально не протестирована, присутствуют мелкие баги, а также не добавлены некоторые бонусы. Мы в каком-то повисшем состоянии: вроде бы вс` готово, а вроде бы нет.
HTML5 и флеш-игры не продаются совсем. В период разработки Shapik: the quest 2 все мы параллельно работали над другими проектами, за счёт которых было, на что жить и продолжать разработку.
Программист уходит в офис. Я хоть и был настроен оптимистично, но понимал, что так, как раньше, уже не будет.
За месяц для игры ничего не сделано, и мы ни разу не созвонились — такое впервые. Программист очень сильно устает на работе, я его не виню. Усиленно тестирую и собираю список правок.
Правки вносятся по выходным, иногда простой по две недели. Я разбит и расстроен, такими темпами это всё затянется ещё на пару лет.
Прошу программиста, чтобы он открыл в облаке папку с исходниками игры (это нужно было сделать в самом начале разработки, сэкономило бы тонну времени). Начинаю ковырять арт, анимации, атласы и самопальный редактор сцен.
Редактор — это отдельная история. Разрешение игры — 1920x1080, а окна редактора — 600x550. В таком маленьком окне приходится очень много двигать камеру, и он ужасно тормозит. Ко всему прочему в нём нет отмены — если что-то запорол, спасёт только последнее сохранение.
Редактор умеет открывать и проигрывать.gaf-анимации, которые потом расставляются на сцене. После того как весь арт и анимашки расставлены, нажимаем «сохранить» и получаем нереально длинную строку с параметрами, которую нужно перенести во флеш-девелоп, а потом скомпилить.
Флеш-девелоп и та самая строка
Если что-то сдвинулось — повторяем операцию. Правка какой-то мелочи занимает тонну времени.
Я не выдерживаю и лезу в исходный код редактора, нахожу там строчку отвечающую за размер рабочей области, меняю ее на 1920x1080 и теперь весь уровень видно целиком. Также компилю редактор как отдельное приложение и пропадают все тормоза. Почему мы не сделали этого раньше, а столько лет мучились, я не знаю.
Весна. Ко мне приходит просветление, уровни, сделанные в далёком 2017 году выглядят пустыми и очень сильно хромают по качеству, также это касается катсцен, головоломок и анимаций. Идёт новая волна доработок…
Композитор также завален работой, озвучивание останавливается.
Обновил все уровни, собрали новую демку. Пришло время готовить тизер для игры.
Нарезаю видео и пытаюсь монтировать, промежуточные этапы обсуждаем с программистом и композитором. Это мой первый опыт, уходит много времени.
Понимаем что в названии Shapik: the quest 2 нужно избавляться от 2, новое название — Shapik: the moon quest.
Издатели.Кто это и как с ними работать, не имею понятия. Нашёл классную статью о том, как питчить игру.
Отправляю по списку всем. Из 60 ответили 20, реально заинтересованных 5, отвечают раз в неделю.
Начало лета. Я в одиночку ковыряю игру, читаю форумы в поиске инфы по решению багов, вношу правки в код, исправляю рывки в анимациях, нарезаю видео для озвучивания, местами правлю звуки, настраиваю сборку, общаюсь с издателями, разбираюсь со Steam, а также занимаюсь оптимизацией ресурсов.
Появляется ощущение, что игра нужна только мне. Неделями жду, пока закроется пара правок, сам момент ожидания очень томителен, и непонятно, что делать дальше. Бросить игру, когда она готова на 95% я не могу, но и в одиночку закончить мне не по силам, выпустить забагованный проект — тоже не вариант.
Иду в поход в Карпаты на три недели. В горах нет мобильной связи, а интернета и подавно. Это очень сильно помогает отвлечься.
Перед походом скидываю список правок.
Вернувшись через три недели, вижу, что список даже не открывался. Впервые за всё время работы у меня подгорает, в тот момент мне казалось, что на игру забили.
Начинается депрессия. Мысли только об игре, и я не вижу, как найти выход из сложившейся ситуации.
Нужно что-то менять, настало время офиса.
Вроде бы за время работы над казуалками я немного набрался опыта, ищу вакансии аниматора.
Мне быстро отвечают и скидывают тестовые задания. Выполнил, зовут на собеседование.
В один день совпало два собеседования. Из моей деревни до Киева 10 часов на поезде. Поезд приходит в 8 утра, первое собеседование на 11.
Вперед на собеседование!
Я в Киеве, прогуливаюсь по городу. Очень сильно волнуюсь: это второе собеседование и первое в серьезной компании, что там будет — непонятно.
В 9 утра приходит сообщение.
Доброе утро,
вынуждены сообщить, что мы не можем принять вас на собеседование, вы не подходите по возрасту.
Я думаю, что это ошибка, ведь до этого подходил и если позвали на реальную встречу, значит тестовое задание я выполнил, и я уже приехал в Киев, коротаю время у них возле офиса. Перезваниваю и мне повторяют текст мейла.
Что это за ответ и что это за бред…
Следующее собеседование на 14.00. Прогуливаюсь по городу, плавно двигаясь в место встречи. За полчаса приходит следующее.
Вынуждены отменить собеседование, вы нам не подходите. Причины мы не называем, чтобы это не выглядело, как призыв к действию.
Я в полном недоумении, собеседования закончились, не успев начаться. Оказывается, я старый и никому не нужный.
Медленно волочусь по Андреевскому спуску. Захожу в какую-то кафешку и встречаю старого знакомого. За бокалами пивка день перестает быть грустным. Поезд назад в 21: 00.
Сказать, что после «трудоустройства» я был подавлен, это ничего не сказать.
По прибытии домой моё чувство беспомощности усиливается в пять раз. Оказывается, в свои 30 лет я очень старый.
Понимаю, что многострадальный квест нужно довести до релиза. Созваниваемся, рассказываем, как у кого дела, обсуждаем моё пригорание и что нужно сделать для завершения.
Меня отпускает и как будто открывается второе дыхание, дорабатываю тонны анимашек и арта, которые постоянно откладывал, усиленно тестирую игру, а также собираю список правок. Наконец-то оформляю сайт и страницу в стиме.
По поводу пригорания. В этот момент наверное передышал свежего Карпатского воздуха, как можно было пригореть, когда проект держится на энтузиазме — непонятно…
2020 год
В начале года у программиста отпуск, и нам удаётся закрыть все баги и правки. А также закончена вся работа над музыкой и звуковыми эффектами.
В игре 22 уровня, 60 минут игровой музыки, более 1000 уникальных анимаций и звуков.
На текущий момент я с уверенностью могу сказать, что игра полностью завершена (прям даже не верится). Релиз запланирован на март.
Ссылки:
Steam: https://store.steampowered.com/app/1073810/Shapik_the_moon_quest/
Demo(windows): http://shapikthequest.com/data/ShapikTMQ-Demo.zip
Сайт игры: https://shapikthequest.com/
Подводя итоги хочется сказать об ошибках которые мы совершили.
- Отсутствие сценария и понимания, какой будет игра;
- Постоянная недооценка реальных сроков;
- Желание сделать 100500 фишечек;
- Отсутствие нормальных инструментов(редактор игровых сцен, система контроля версий, сборщик);
- Отсутствие нормального тестирования;
- Работа с комьюнити.
Этот пост написан не ради нытья или чтобы вызвать жалость, а для того чтобы показать будни просто разработчика.
И еще хочется сказать:
Я испытываю огромное уважение к программисту и композитору за то, что мы как «ненормальные» допиливаем то, что считаем правильным и стараемся делать это круто, когда сотни других «адекватных» разработчиков уже давно бы развернулись и ушли.
В целом очень забавно, что трое левых чуваков с флеш-форума смогли закончить игру.
P.S. Планы на будущее:
- Зарелизить квест;
- Найти работу (недавно предлагали революционную должность сторож-программист. В обязанности входит: реклама продукции в интернете, создание визиток/листовок, обход территории каждый час).
Еще немного атмосферных фото