
2016 - год перемен.
2010 — Flash vs Unity. 2016 — Flash vs Excel

!!! Внимание: Данный пост не претендует на абсолютную истину. Некоторые доводы и факты в нем нелепы. Отношение автора предвзято. В виду своего содержания не рекомендуется к прочтению никому.
Всё же, если вы решили узнать, о чём идёт речь, а затем и оставить комментарий, учтите следующее:
- Мы не переходим на «личности». Комментарии вроде “Ты не уверен в себе, поэтому и считаешь, что Unity лучше” недопустимы. Вы не согласны с чем-то — аргументируйте свою позицию. Если не находите достойных аргументов, чтобы отстоять свою точку зрения или опровергнуть противоположную, подумайте дважды прежде, чем переходить на личности.
- Здесь обсуждаются движки как инструмент для разработки игр. Мы не обсуждаем наши проекты/заработки, сколько накоплено опыта/достижений, как и то, у какого движка лучше маркетинг (Совершенно очевидно, что дурак Вася с отличной командой и чудесными инструментами снесёт пол города, в то время, как гений толик с молотком построит шикарный пентхаус. Это не доказывает, что инструменты и команда у Васи плохие. Не умеет он строить, только и всего.
- Автор не призывает всех перейти на Unity и выкинуть Flash, а лишь расширить круг навыков. (Если вы хорошо рисуете карандашом, а кто-то заявляет, что графический планшет и фотошоп намного лучше, чем рисунки на бумаге, то это вовсе не означает, что вашу роботу не ценят и что вам нужно выбросить все свои карандаши и бумаги и рисовать исключительно в фотошопе. Как раз наоборот это возможность пересмотреть возможные варианты, их преимущества и недостатки, а возможно и расширить свои возможности (как-то: сканировать свои рисунки и перерисовывать в фотошопе, может быть, анимировать. Или начать работать через интернет и сделать из любимого занятия любимую роботу. Или просто понять для себя, в чём преимущества и в дальнейшем их использовать. Но уж точно не сходить с ума каждый раз, как кто-то заявит: «Не пробовал фотошоп?» из-за внутреннего страха, что это слишком сложно и наверняка стоило начать раньше, а определиться для себя, что это не «ваше».
- У вас может быть синдром утёнка. Вы никогда не пользовались Unity или установили, поклацали недельку и теперь, зная немного о Unity, утверждаете, что Flash гораздо лучше для разработки игр. В то же время автор поста дурак и не разбирается во Flash. Ведь я же явно разбираюсь гораздо больше, чем он. Нужно хорошо понимать обе стороны вопроса, чтобы смести меня в пух и прах.
- Если вы докажите, что Flash лучше, чем я его представил в данной статье или того, что я о нём думаю, это всё равно не докажет, что он лучше подходит для разработке игр, чем Unity.
- То, что большинство разработчиков не этом блоге использует Flash, не делает меня неправым, а мою статью оскорбительной (Ребят, бросьте, на devgame всё больше Unity и UE4 проектов и всё меньше Flash проектов. Мы ведь все разработчики здесь, и каждый из нас уверен, что его платформа лучше. Но в то же время всем ведь хочется обсуждать и узнавать новое о других платформах и о проектах на этих платформах. Раньше тут было много обучающих материалов по Flash и минимум материла по Unity и UE4, несмотря на изменение тенденции. 90% постов про проекты на Flash. В то же время 90% инди-игр за последний год написаны не на Flash. Пришло время затрагивать те темы, которые привлекут новых разработчиков, а не только порадуют старых. Мы ведь здесь ради игровой вспышки а не Flash’а)
Данный пост написан с целью разжечь активные дебаты и разобрать давно накипевшие вопросы. Недавно я непреднамеренно начал дискуссию на эту тему в комментариях и тем самым испортил пост хорошей команды следующим сообщением:

Впрочем, мне кажется, что причина вспышки в том, что эта тема, как говорится, накипевшая. И поскольку ни разу не была детально и адекватно разобрана, вызвала столь массовую вспышку.
Почему Flash не игровой движок, не слишком хорош для создания игр для ПК и телфонов и спорен для браузеров.
Давайте начнём c моего определения Flash и AS3.0Flash – программа для создания картинок, анимации, мультипликационных фильмов и рисования, плэер которой поддерживают браузеры и который используют для создания баннеров, плэеров, игр.
За определением AS3 обратимся к Википедии:

Да, верно Flash можно использовать для создания игр, но делает ли это его игровым движком?
Нет!!!
И вот почему…
Давайте рассмотрим, где ещё можно делать игры.
Для начала возьмём Windows Forms на С# например


Они предназначены для кнопочных программ, которые, кстати говоря, поддерживают и роботу С++ напрямую, и тот же самый box2d без костылей.


Windows Forms поддерживают 3D, DirectedX, Box2D и технологии GPU, такие как Nvidia PhysX, CUDA и т.д. Много чего благодаря С#, тому самому, который в Unity. Но делает ли это всё Windows Forms игровым движком? Нет!
Попрошу не путать с XNA, который является игровым движком, и чуть позже мы разберём почему.

Можно их делать в Blender, который является программой для создания 3D графики, анимации и 3D мультфильмов и позиционирует себя как платформа, на которой можно делать игры. Однако, для того, чтобы поиграть в вашу игру, нужно чтобы человек сначала установил Blender. Так что я считаю его как минимум неполноценным игровым движком. Почему — смотрите ниже.
Более того, игры можно делать и в Excel или Word

Вот ссылка на статью
Туда же добавить библиотеки C++ и физический движок по средствам Windows Forms, которые они поддерживают. И сделать 3D игру в Excel. Если вы считаете, что это невозможно, то пожертвуйте нашей игре 25$, и я сделаю в течении недели, простенькую 3D демо-версию посредством Excel. В случае провала верну деньги и публично признаю нелепость данного заявления.
Удивительно, но правда. Игру можно написать где угодно, где есть скриптинг. Эти же платформы были выбраны намерено. В них можно сделать игру как в Flash или даже лучше. В Windows Forms и Blender однозначно. В Excel не до конца уверен.
На каждый язык программирования и платформу находится своя игра.
Но важно понимать то, что на платформе можно сделать игру с 2D графикой, не делает платформу игровым движком или подходящей для создания игор в 2016.
Рассмотрим требования к игровому движку:
- API для разработки игр (и это самое важное). API Flash Playerа это не API для разработки игр, а для написания простых скриптов для взаимодействия с анимацыэй и логики для анимации, как макросы в Excel. Игровое API должно быть предназначено в первую очередь для создания игр, а не просто давать возможность создать игру, а также избавлять от написания велосипедов таких как(2d Physix, 3d Physix, Event Sytem, UI System, Path Finders, Serialization System, и т.д), и делать взаимодействие между всеми игровыми механизмами бескостыльным, оптимальным и удобным. Словом, не так, как принято во Flash.
То, что так делают все, нисколько не означает, что это правильно. - Даёт игре возможность запускаться на нескольких платформах (браузер — не игровая платформа, напротив это платформа с очень жёсткими требованиями и лимитами). То, что adobe есть AIR, который якобы обеспечивает Flash кроссплатформенность, попросту ставит вместо браузерного flash Player на С++. Flash Player на (Java или Objective-C). вшивает его в вашу игру. Прога всё ещё работает на долбаном ограниченном Flash Player. Просто его устанавливать отдельно не нужно (и в нём есть поддержка самого минимального API платформы), хотя требования и лимиты такие же жёсткие, как и для браузерной версии. В то же время, как Unity на каждой платформе работает абсолютно по-разному. На windows у вас box2d, DirctedX и GPU. На дряхлом смартфоне — Coco2d, CPU и OpenGL.Хоть игра и выглядит также, но работает совсем по-другому. В этом и суть игровых API. Вы не знаете, что внутри. Вы пишете только игровую логику. А как оно реализуется на разных платформах — вам знать не обязательно (хоть и стоило бы).
- Поддержка игровых технологий, хотя бы видеокарты. Ведь сегодня нет компьютера без GPU. Если бы графика во Flash обрабатывалась через видеокарту, а игровая логика через процессор, хотя бы прорисовка посредством видеокарты улучшила бы уровень Flash проектов раза в 3. Но, увы, этого нет. Нет, я не оговорился, ведь видеокарта — это такой же процессор, как CPU, просто заточен под графику. И ему плевать, вычисляет ли он число pi или обрабатывает 3D графику. Он заточен под 3D графику, поэтому очень хорошо работает и с 2D. Что уж говорить про такие востребованные сегодня технологии, как:
- Leap Motion – Unity поддерживает (я даже создал пару мелких прототипов)
- Oculus Rift – Какой oculus rift во Flash? Unity же поддерживает и активно развивает
- И бессчётное множество технологий и библиотек, как VoIP, например, которые все остальные инди-движки поддерживают. Я и перечислять все устану. Те 3, которые я перечислил, это то, с чем я лично работаю.
- Editor которой упрощает разработку игры. Если остальные пункты хоть немного спорны, то здесь я воздержусь от комментариев и напишу по этому отдельный пост “Проблемы и недостатки Flash на фоне Unity и UE4”. Просто задумайтесь над двумя картинками.
Всё, что выделено цветами, — инструменты для разработки игр. Всё, что выбрано квадратиками, — инструменты для рисования и анимации.
Нет я не перепутал Flash и AS3.0 просто сам Editor должен упрощать саму разработку игры и давать инструменты для этого. Есть костыльные методы упрощения разработки, но опять-таки это можно сделать для любой платформы, а в игровом движке это должно быть внутри. - Позиция самой компании. Это очень важный пункт, так как это определяет дальнейшее развитие компании, поддержку и помощь.
Adobe развивает студию для анимации но не развивает Флеш плеер почти никак.
Если зайти на главный сайт и порыться там, то можно найти в основном об анимации и очень мало о скриптинге и о разработке игр.

Де есть куча внешних фреймворков которыэ можно использовать они все внешние что означает что они через кучу костылей работают между собой.
Что и подводит нас к основой проблеме Flash. Он не развивается уже вот как 11 лет в сторону игр нормально. Эта вопиющая невнимательность разработчиков и просто глупость с их стороны. Им же инди-разработчики вручили трон и посох. Браузерные игре все ваши, лишь развивайте хоть немного API для разработки и поддерживайте самих разработчиков игр. Они же безответственно всё забросили ещё лет 8 назад.
Что есть у Unity для разработчиков? Да всё, что угодно. Очень мощный API и разбор всех инструментов, туториалы на каждую тему (даже на такие, как маркетинг и PR игр). Организация встреч разработчиков, развитое сообщество игроделов. Поддержка всех игровых технологий (GPU, oculus Rift, Pathfinder…), почти всех платформ. Понятная документация, официальная поддержка Ads cloud build, Analytics. Огромный набор инструментов для разработки игры, рынок материалов для игр. Поддержка все возможных форматов для импорта… И так ещё на целый пост.
Unity заработал популярность не за хороший маркетинг, а за то, что даёт все необходимые инструменты разработчику и развивается активно, давая всё больше возможностей.
Итог:
В данной части я размышляю о рентабельности Flash в 2016 году, а не призываю его бросить.
Я считаю, что в 2016 Flash не является пригодным или рентабельным для разработки игр(За исключением некоторых порталок)!!! Да, в период с 2000 по 2010 он цеплял, был прост в изучении, популярен. И на нём инди-игру можно было сделать быстрее и лучше всего. Достойных и доступных альтернатив не существовало. Но в 2016 всё, чем он завлекал, более не актуально. Как в эксперименте с обезьянами
мы просто остаёмся на нём, так как это наша зона комфорта

мы просто остаёмся на нём, так как это наша зона комфорта. Речь не про то, что вы можете создать хороший проект во Flash и заработать на этом деньги. Речь о самом инструменте. Ловушка в том, что сам инструмент не стал хуже — даже наоборот стал чуточку лучше. Только мир вокруг поменялся.
Для примера. Вы просто сидите за печатной машинкой и пишете хороший роман, а вокруг все с ноутбуками. И дело не в том, что у вас печатная машинка плохая. А то, что для 2016 она не рентабельна и не пригодна. До 2005 это было спорно. А в 2000 и подавно компьютеры были лишней тратой сил и денег и подходили только очень крупным компаниям. Но в 2016 всё по-другому.
Использование компьютера ускорит вашу роботу над романом раз в 5(не надо перепечатывать все страницы из-за опечатки или чтобы поместить что-то в середину) и улучшит качество романа раза в 2(наличие интернета, возможность сохранения работы в процессе, а затем редактирования) Да, тех, кто всю жизнь печатал на машинке, компьютер пугает. (Я купил комп, а он требует какой-то ОС. Я спросил в магазине, она стоит 100$, а я ж уже и так заплатил. Заплатил за ОС, а где теперь искать Word. У кого спросить — непонятно. И что это за куча непонятных кнопок? Мне ведь только буквы нужны! И с чем мне есть браузер, или это мат?)
Почему стоит рискнуть и начать
!!! Далее следует самореклама. Оскорбление всего живого!!!ДА, вам придётся потратить время на Unity и преодолеть свой страх, но через полгода вы будете недоумевать: «Как я жил без этого раньше. Это же так удобно». Как и человек после работы на печатной машинке. Проекты в разы ускорятся, и качество проектов тоже будет расти вместе с пониманием Unity и С#.
Также у меня есть предложение для тех, кто говорит себе: «Мне не нужно учиться программировать или делать игры. Мне нужно адаптироваться к Unity после Flash. Я не новичок. Все же уроки либо для тех, кто ничего не знает. Либо уже слишком сложно и мне, как человеку с многолетним опытом разработки на Flash, хочется задавать вопросы и получать ответы, чтобы разобраться, что мне надо, а что не надо. Мне нужно всего-навсего адаптироваться к Unity, а не тратить дни-недели на поиск причин, почему это не работает или как сделать это правильно, а не через костыли». Короче говоря, у нашей студии есть для вас взаимовыгодное предложение.
Ваш много летный опыт и удачные проекты — это бесценно. По аналогии с печатной машиной. Вы пишите качественные романы, а мы умеем пользоваться компьютером и учимся писать романы. Однако, то, что мы пользуемся ноутбуком, не делает наши романы лучше ваших. Мы бы хотели с вами обменяться. Вы помогаете нам, делитесь опытом, подсказываете, как лучше сделать игру, как лучше организовать роботу, указываете по возможности на то, что мы делаем не так или что вам в игре не нравится. Взамен же мы поможем вам разобраться с Unity. Будем помогать чем сможем, подсказывать, почему это не работает, как сделать правильно или что вам изучить как уже грамотному разработчику игр. Хоть материала по Unity и много, но иногда возникают банальные вопросы, на который хочется получить прямой ответ. Иногда нужна дополнительная поддержка, чтобы не забросить, в виде человека, который не даст вам замудрённый ответ и, уж точно, не заявит, что это и так очевидно, а подойдёт к вопросу с пониманием.
Таким образом мы получаем ситуацию «выиграл-выиграл». Вы не становитесь учеником, который учит всё с нуля, когда уже и так много сделано, а вы становитесь учителем, чей опыт и проекты ценят. Если кому-то интересно, пишите на e-mail , а не в комментарии, и прямо сейчас, пока есть желание. Будем очень рады =)
Перед тем как написать комментарий помните о:
- О том, что было написано в самом начале статьи
Всех с наступившим 2016 годом! Успеха с любыми проектами и гринлайта всем!!!

Просьба вести конструктивное культурное обсуждение. Также обсудить статью можно у нас у нас на блоге.
- +2
- ComanGames
Комментарии (41)
Я думаю если бы эта платформа хорошо монетизировалась то многие бы так и делали. Лично для меня как для инди вопрос монетизации стоит достаточно остро;)
Подайте пример и расскажите отличную сакесс стори с цифрами)
Можно разобрать текст по цитатам и доколупаться до каждой (этим займется Кролик, как проснется), а можно просто написать, что все написанное бред далекого от геймдева человека ;).
Удачи с игрой!
Ну типа фраза «флеш нерентабельный» — это просто заявление. Где обоснование почему он нерентабельный? И что в этом месте значит флеш? А фотошоп рентабельный? А вижуалстудия?
И вообще путаница в понятиях. Почему-то флешом называется Flash IDE, хотя это целое семейство технологий.
или вот:
«в период с 2000 по 2010 он цеплял, был прост в изучении, популярен»
в 2000м флеш не был хорошей платформой для игр, а золотые годы пришлись на 2009-2011. Т.е. просто совсем грубая фактическая ошибка.
А никто вроде и не говорил что это игровой движок. Флеш и AS3 — это своего рода язык программирования, и он никогда не задумывался как ИГРОВОЙ движок. Точно также как С++, С#, Delphi — не являются игровыми движками.
Игровой движок — это по сути набор библиотек, упрощающих работу по созданию игр. Для флеша их написали великое множество, бери и используй, в чём проблема? Точно также как и с другими языками программирования.
Зачем я не пойму сравнивать табуретку с кроватью?
Игра никакая. Ну правда, вообще никакая. Всё никакое. А статью можно уменьшить до предложения: «Парни, начните холивар на тему флэша и юнити. Ну пожалуйста!»
Флеш есть в хроме, а юнити уже нет и похоже не будет. Шах и мат Юнити :3
Автор, жги ещё!