Разработка приложений в 21 веке имеет огромную силу. Сейчас трудно представить себе, что в плеймаркете не найдётся читалки книг, счётчика калорий или мобильной игры. За каждым из этих продуктов стоит процесс его создания. Он представляет собой мощную работу с прописыванием кодов, связыванием объектов и т.д.
Мир «программистов» на столько быстро развивается, что платформы, на которых делаются эти приложения постоянно совершенствуются и образуются новые. Профессионал практически сразу может определиться с выбором движка (в зависимости от того, что конкретно он собирается разработать). Новичку же сложно понять, как сориентироваться в базовых программных обеспечениях.
Существует несколько технологий разработки приложений: кроссплатформенный, нативный и гибридный. Если последнее легко понять – соединение первых двух способов, то как раз с первыми двумя не всё ясно, ведь каждый из них обладает уникальными особенностями. Выясним плюсы и минусы каждого из них.
Кроссплатформенная технология
Кто «дружит» с английским языком, сразу поймёт, в чём суть. «Кросс» обозначает «пересекать». Кроссплатформенный метод представляет собой создание приложения, которые будет работать на всех платформах, то есть он как бы «пересекается» на всех операционных системах: Android, IOS, Windows, Linux. При этом, нет необходимости думать о несовместимости. Такой подход предполагает автоматическую «подстройку» под используемое устройство.
Что такое Unity. Как сделать игру
При разработке применяются специальные инструменты, одним из которых является движок Unity 3D. Главный язык, используемый в работе – C#.
Чтобы отличить один способ от другого, можно воспользоваться аналогией и каждый раз, когда происходит путаница вспоминать её: будильник, скайп, календарь, калькулятор – это приложения нативные. В браузере запускаются различные процессы: форумы, соцсети, сайт – это кроссплатформенная разработка.
Достоинства Unity 3D
Этот движок имеет множество положительных моментов.
- Простота использования. Сюда стоит отнести сам язык, который является многоуровневым. Программисту не нужно «придумывать велосипед», язык уже реализован. От разработчика требуется только к одному объекту добавлять другие. Например, если создается главный персонаж игры, то ему необходимы управление и внешняя оболочка. Особых знаний не нужно, что приятно для любого новичка в этом деле.
- Дешёвая разработка. Бюджет становится некрупным, благодаря той же кроссплатформенности. Код работает сразу на всех устройствах, следовательно, уменьшается количество самих разработчиков (и соответственно зарплата) и рабочих часов. Да и сам движок бесплатен. Конечно, есть платная подписка, но для создания личного «игрового мира» она может и не понадобится.
- Время. Исходя из того же «пересечения», время на создание объекта уменьшается. Уменьшению часов способствует и отсутствие уникальных элементов интерфейса и единая технология.
- Поддержка. Community этого движка одно самых мощных. На официальном сайте находится вся информация по каждому шагу разработки. Если возник вопрос и, кажется, что на него нет ответа, то стоит зайти на сайт и сразу же понять, в чём дело. Даже если отсутствует конкретный пример, то никто не отменял службу поддержки.
- Asset Store. В этом месте находятся все необходимые ресурсы для создания приложения. Удобный поиск и сортировка позволяют быстро подобрать то, что нужно.
- Единая логика. Одна технология позволяет, во-первых, производить обновления одновременно на всех устройствах, во-вторых, избежать двойной работы, так как единая система содержит меньшее количество ошибок.
Недостатки Unity 3D
Идеальным быть ничего не может, поэтому и здесь не обошлось без минусов.
- Медлительность. Этот фактор часто вытекает из таких приложений, которые подразумевают масштабность, сложные сцены. Приходится использовать дополнительные утилиты, и всё это влияет на производительность.
- «Тяжеловесность». Практически все приложения имеют большой объём. Если речь идёт о мобильном приложении, то это может занять много памяти в телефоне. Даже если в простую игру включить минимум, то есть звук, графику, то установочный файл будет весить около 20 МБ.
- Отсутствие «самостоятельности». Оно заключается в том, что при использовании Unity 3D автоматически встраивается их логотип. Избавиться от него можно оплатив PRO-версию.
- Ограничение. Оно представляет собой отсутствие функций управления «вшитыми» параметрами, начиная от камеры и заканчивая базой данных. Это делает приложение «негибким» и исключает работу на максимальных возможностях.
Нативная технология
Нативный подход заключается в программировании приложения для каждой платформы отдельно. Например, если нужна игра на Android и IOS, то необходимо разработать два приложения. Каждый из них пишется на «родном» языке платформы. Для андроида используется Java, для IOS – Objective-C.
Как уже говорилось выше, примерами таких приложений являются «стандартные» программы (календарь, часы), которые дополнительно помогают пользователю реализовать ту или иную задачу. Отсюда и название.
Достоинства нативной разработки
Здесь также стоит выделить положительные факторы, которые во многом могут облегчить жизнь будущего программиста.
- Производительность. Особенно этот момент следует учитывать для мобильных версий. Данная технология экономно использует батарею, увеличена скорость работы процессов. Всё это возможно, благодаря разработкам для отдельных платформ. Именно поэтому этот метод позволяет эффективно пользоваться приложениями.
- Интерфейс. В отличие от первой «логики» создания, код пишется под конкретную систему, поэтому визуал чётко подстроен под пользователя, все «кнопки» располагаются на привычном месте.
- Доступ к служебным программам. Здесь нет ограничений на использование той же геолокации или Bluetooth, что даёт возможность решать конкретные задачи.
- Тестирование. Нативное приложение или игру проще тестировать. В этом процессе используются все механизмы, которые легко «считывают» ошибки и неточности. Они же, в последствии, удаляются разработчиками. Система обновлений на платформах также включает в себя возможность утилизировать проблемы для конкретного пользователя уже в процессе пользования.
- Режим. Приложение, разработанное на нативной основе, работает как онлайн, так и без интернета.
- Поддержка магазинов. Скачивая приложение с App Store или Google Play, пользователь может быть уверен в качестве, так как при малейших несоответствиях (графика, звук, управление, визуальное наполнение) программа просто не пропускается в магазин, что позитивно отражается на репутации самих магазинов и подобной технологии. Более того, загрузка приложений с официального источника залог отсутствия каких-либо перебоев.
Недостатки нативной разработки
Несмотря на то, что плюсов нашлось около шести, все они существенны. Но не стоит забывать, что везде есть подвох.
- Затратность денег и времени. Над созданием одного приложений могут работать целые команды. Это легко объяснить, так как для каждой версии, операционной системы нужен специалист, которому нужно платить. Следовательно, увеличивается бюджет, а также теряется много времени. Последний фактор следует также учитывать, и заранее подготовиться. Особенно это важно понимать и при обновлениях и поддержке, так как создано не одно приложение, а как минимум два. Значит, и профессионалов также должно быть больше.
- Отсутствие совместимости. Такое положение является естественным последствием, так как для конкретной ОС пишется код, который не может интегрировать и работать на другой платформе. Например, если приложение создано для Android, то оно будет несовместимо с IOS.
- Сокращение дохода. Это факт вполне реален, так как та же игра или полезный календарь пишется только на одну платформу. Если в дальнейшем нет ориентира на другие системы, то часть рынка в любом случае теряется, а, значит, уменьшается и прибыль.
В любом случае нужно определиться с целью, для которой нужна разработка приложения. Если требуется игра или необходимо быстро создать приложение, и ограничен бюджет, то лучшим решением станет использование движка Unity 3D. С помощью него можно значительно улучшить графическую составляющую. Более того, этот способ позволит охватить больший рынок, за счёт адаптации под все операционные системы. Чтобы программа работала с высокой скоростью, функционал должен быть простым.
Если же задача заключается в реализации идеи в неигровом секторе, требуется долгосрочное применение и достаточно сложный функционал, то нативная разработка станет самым подходящим вариантом. Это даёт возможность получить положительную оценку от пользователей. Как альтернативу можно рассмотреть гибридный способ, чтобы увеличить охват и сэкономить денежные средства.
Источник: app-android.ru
Чем так хорош движок Unity?
И крупные компании, и небольшие студии, разрабатывающие игры, часто применяют в своей работе UNITY. На самом деле это даже не движок, а готовая среда, предназначенная для разработки компьютерных игрушек. В составе этой программной среды собраны различные программные продукты, например, отладчик, компилятор, которые потребуются создания игрушек.
UNITY, может работать под управлением более чем двадцати операционных систем, комфортность использования, все это позволяет игровых дел мастерам создавать приложения для широкого круга ОС и игровых платформ и тем самым расширяя круги игроков. Во-первых, движок Unity3D обеспечивает возможность разрабатывать игровые программы, не обладая особенными знаниями.
В этой среде использован компонентно-ориентированный подход, с его помощью игродел может создать объект, например, основного героя. Кроме этого, он может добавлять разные элементы. Это может изображение основного героя и методы контроля над ним.
В UNITY3D использован Drag https://appfox.ru/blog/preimushestva-dvizhka-unity/» target=»_blank»]appfox.ru[/mask_link]
Полный обзор Unity 5
В данной статье мы дадим полное описание нового движка Unity 5, сравним его с предыдущей версией (Unity 4), расскажем о достоинствах перед другими движками, такими как: Unreal Engine 4, CryEngine 3, поговорим о будущем движка и о том, стоит ли всерьез заниматься геймдевом с Unity3d.
Unity 5
Unity 5 — кросс-платформенный игровой движок для разработки двухмерных и трехмерных приложений и игр под различные платформы. У Unity3d есть две версии: бесплатная и платная. Отличаются они рядом возможностей, которые могут сильно понадобиться при разработке игры. Во-первых, бесплатная версия Unity3d поддерживает только Android, Web Player, PC-платформы.
Полная версия позволяет разработчикам выкладывать своё творение под все самые известные платформы, такие как: PC, Linux, Mac, Windows Store, IOS, Android, Windows Phone 10 Store, Blackberry 10, Wii U, PS3, Xbox 360, PS4, Xbox One. Есть возможность делать софт для VR(Virtual Reality), т.е. под очки и шлемы виртуальной реальности: Hololens, Oculus Rift, StarVR и прочие, а также писать программы для Kinect 2.0, LeapMotion. Полную версию Unity 5 можно адаптировать под свои нужды: например, если вас интересует разработка софта под Kinect 2.0, вы можете убрать некоторые элементы меню в интерфейсе и дополнить его своими надстройками, которые реально облегчат разработку.
Возможности Unity 5
Unity3d имеет очень простой Drag and Drop интерфейс, который человек осваивает за месяц. Весь движок (от и до) только на английском языке. Русификации Unity 5 нет. Unity разбит на несколько окон: Hierarchy, где находятся названия всех объектов на сцене, которые можно группировать и легко переходить по ним, Scene, где можно рассмотреть определенную сцену под нужным вам ракурсом, Inspector, который поможет с настройкой выделенного объекта, Project, где видны все материалы проекта, Toolbar (или меню с инструментами).
Unity 5 поддерживает два языка: C#(наиболее используемый) и Javascipt. Разработчику необходимо знать один из языков в совершенстве, а другой на среднем уровне, так как некоторые моменты Unity 5 делает только на одном из двух языков, или это делается намного труднее, чем на другом языке программирования. Предпоследняя версия Unity3d, а именно Unity 4, поддерживала язык программирования Boo(диалект Phyton), но его убрали из 5-ой версии, так как им практически никто не пользовался, да и документации, если честно, на официальном сайте Unity особо не было. Расчеты физики в Unity 5 производит та же NVIDIA PhysX, которая, кстати, отлично с этим справляется. Совсем недавно NVIDIA представила одну интересную вещь — NVIDIA Flex, которую, возможно, в будущем встроят в игровые движки.
Объекты в Unity3d могут быть пустыми, (чтобы объединить несколько объектов в одну группу, т.е. сделать их дочерними GameObject), содержать компоненты, с которыми взаимодействуют скрипты, могут быть названы одним и тем же именем, могут быть присвоены теги, которые служат для того, чтобы скрипт нашел нужный нам объект. К объектам в Unity3d можно присвоить коллайдеры: Box Collider — куб, в который попадает модель объекта, Sphere Collider — сфера, Character Collider — коллайдер, который был специально введен в Unity 5 для использования под персонажей, Mesh Collider — коллайдер, созданный по мешу, то есть повторяющий геометрию объекта, Wheel Collider — коллайдер для колес, Terrain Collider — коллайдер для Terrain — площадки, которую используют для отображения земли.
Анимировать модели в Unity3d можно несколькими способами: создание анимаций в специальных программах, например: 3Ds Max, Blender и прочие, а можно и в самом Unity3d, так как редактор Unity имеет компонент для их создания. Материалы в Unity 5 играют важную роль. Импортированные текстуры в Unity3d прикрепить к объекту нельзя, необходимо создать материал, который можно присваивать игровому объекту. К назначенным материалу шейдерам будут присвоены текстуры. Шейдеры можно редактировать прямо в Unity3d. Unity 5 позволяет
генерировать нормал-мапы(normal-map), лайт-мапы(light-map), различные альфа-каналы и mip-уровни.
В полной версии Unity 5 возможно полное настраивание шейдеров, а в бесплатной — нет.
Особенности Unity 5
Unity 5 имеет две очень важные особенности: Occlusion Culling и Level Of Detail. Обе вещи позволяют сильно снизить нагрузку на центральный процессор, благодаря грамотной детализации. Например, в играх жанра 2D и 3D Runner при преодолении определенной дистанции все, что было позади вас, удаляется, а то, что впереди вас, генерируется.
Таким образом, при длительной игре ваше устройство не захламляет ненужная информация. Occlusion Culling не визуализирует геометрию и коллайдеры объектов, находящихся не в поле зрении камеры, а Level Of Detail заменяет детализированные объекты, находящиеся далеко от игрока, на менее детализированные, причем разработчик сам настраивает эту систему. То есть скромный проект может позволить выставить огромные значения в Level of Detail, когда AAA-проекты выставляют его на минимум.
Минусы и плюсы Unity 5
Unity 5 обладает огромным количеством преимуществ перед другими игровыми движками. Коммьюнити Unity 5 на сегодняшний момент является самым большим в мире. На официальном сайте Unity есть специальный раздел, в котором можно найти статистику по игровым движкам. По этим данным Unity 5 используют более 50% разработчиков видеоигр.
20% принадлежат Unreal Engine, а остальные игровые движки — 30%. Для разработки 2D или 3D инди-игр Unity 5 подходит по всем параметрам. В Unity 5 очень просто запекать проекты (билдить). Причем можно создать один проект под множество платформ, что очень сильно облегчает процесс для девелоперов. Все скрипты, используемые в Unity 4, можно будет автоматически исправить в Unity 5.
Разработка ААА-проектов в Unity — самый сложный процесс. Во-первых, любой скрипт в Unity сразу влечет за собой кучу ошибок, которую в будущем необходимо исправить, или переписать скрипт заново. Во-вторых, все ещё обладает плохой оптимизацией.
Весь контент, который стоит у вас в окне Project, но не стоит у вас на сцене, будет запечен, а значит, что игра будет весить в разы больше, чем предполагалось. А самое главное, что в интернете были вопросы о том, что проекты, в которые не подключены стандартные настройки, при билде все-равно запекались. Unity в ближайшем обновлении пофиксит этот момент.
В движке есть ряд проблем со скроллингом. При приближении к объекту в определенный момент камера приближается медленнее. Если вам нужно максимально близко приблизиться к земле, то иногда это бывает очень сложно сделать. Скорее всего, в ближайших обновлениях скроллинг пофиксят, либо научат им пользоваться, что тоже хорошо. В Unity 5 есть проблемы с мультиплеером.
Но, если у вас прямые руки, то он настраивается очень просто. Например, в The Forest некоторые объекты видел один игрок, а другой — нет, а хороший пример — игра HeartStone.
Быть Unity девелопером сегодня очень престижно. В российском сегменте разработчики Unity сильно ценятся, а зарплата хоть у программистов, хоть у моделлеров высока. Так что если вас интересует разработка видеоигр, если вы любите создавать инди-проекты, то смело выбираем Unity!
Редакция Devgam
Благодарим наших читателей и подписчиков за проявленный интерес. Поделитесь постом в социальных сетях.
Источник: devgam.com