Этим вопросом я задался, когда решил попробовать разработку игр. Ничего общего с gamedev'ом я не имею и никогда не имел, а сам работаю в сфере разработки и внедрения JEE приложений. Итак, начнем.
Все мы, проводя время в играх, мечтали создать свою собственную, которая будет такой же интересной, но вот еще с этой и с этой фишечками, либо носили идею своей, кардинально новой и совершенно другой игры. Главное, что у нас была идея. Но, как показывает практика, этого не всегда бывает достаточно для выпуска конечного продукта, поэтому мы углубимся непосредственно в разработку, в gamedev.
Для того, чтобы найти ответ на главный вопрос "А с чего все же начать разработку игр?" предлагаю решить одну главную задачу:
(Статья, призывающая и мотивирующая тут: Как начать разрабатывать игры даже если до этого вы были бухгалтером / Хабрахабр)
У меня был ряд критериев, по которым я выбирал движки:
Итак, после долгого серфинга по инету я остановился на 3х вариантах:
UDK - мощный инструмент на базе движка Unreal Engine 3. Картинку дает бесподобную, а в качестве языка для скриптинга использует свой UnrealScript. Подходит для создания игр AAA-класса.
Доступность.
UDK полностью бесплатен. Одна особенность лицензии только в том, что, если ваша игра соберет более 50 000$, то Epic Games (разработчики UDK) будут брать себе 25% с последующей прибыли.
Документация и сообщество.
Инструмент популярный, поэтому и комьюнити большое и документация большая и подробная.
Удобство.
Среда разработки мне понравилась, но показалась не очень удобной и не интуитивной(для новичка). Этакий монстр для создания игр. Так же решающим фактором стал скриптинг, я решил, что посмотрю другие платформы, прежде чем начать изучать UnrealScript. Подробнее можно прочитать в выше приведенной статье на хабре.
Полезные ссылки.
Unity3d - мощный инструмент на базе одноименного движка. Очень популярный и может вполне конкурировать с Unreal Engine. Для скриптинга используется C#, JavaScript, Boo (диалект Python). Подходит для создания игр AAA-класса. Как преимущество, можно отметить портируемость на множество платформ.
Доступность.
У Unity3d есть 2 лицензии: Pro и Free. Соответственно по Free лицензии мы получаем полноценный продукт, но без некоторых фич, которые доступны для Pro. Сравнение лицензий от самого производителя тут: License Comparisons. Бесплатная версия вполне подойдет для прототипов и полноценных игр, хотя как пишут для создания игры ААА классы все-таки лучше приобрести Pro лицензию.
Документация и сообщество.
Тут проблем нет. Огромное и активное сообщество, куча ответов на вопросы, очень много туториалов и видео по созданию игр, разнообразие плагинов к среде разработки.
Удобство.
Не знаю почему, но запустив среду Unity3d я сразу ощутил какую-то родственную связь. Все интуитивно понятно, может быть это связано с тем, что до этого я ковырял 2 дня UDK, но среда разработки в Unity3d мне приглянулась сразу. Про скриптинг и говорить нечего - он на высоте. Поддержка C#, JavaScript, Boo (диалект Python) обеспечивает низкий порог вхождения для разработчиков, так как языки очень популярные, и практически каждый имеет (или имел) дело с C#/Java, JavaScript, Boo/Python.
Полезные ссылки.
Все мы, проводя время в играх, мечтали создать свою собственную, которая будет такой же интересной, но вот еще с этой и с этой фишечками, либо носили идею своей, кардинально новой и совершенно другой игры. Главное, что у нас была идея. Но, как показывает практика, этого не всегда бывает достаточно для выпуска конечного продукта, поэтому мы углубимся непосредственно в разработку, в gamedev.
Для того, чтобы найти ответ на главный вопрос "А с чего все же начать разработку игр?" предлагаю решить одну главную задачу:
- Выбор платформы/движка для разработки.
(Статья, призывающая и мотивирующая тут: Как начать разрабатывать игры даже если до этого вы были бухгалтером / Хабрахабр)
Выбор платформы/движка
Сам я разрабатываю на Java, но для разработки игр я не стал привязываться к ЯП, а решил изучить уже существующие платформы, независимо от того на чем придется писать.У меня был ряд критериев, по которым я выбирал движки:
- Доступность (либо это должен быть OpenSource проект, либо с вариантом Free лицензии). Не то, чтобы у меня нет 1500$ на лицензию, но я хочу ознакомиться с продуктом и сделать достойный прототип игры, прежде чем платить.
- Документация и сообщество. Если есть хорошее комьюнити у продукта, значит решено много проблем и есть решения типовых задач, а это хорошо поможет на старте, да и в дальнейшем.
- Удобство. И среда разработки и скриптинг, все должно быть удобно, это очень важно, а особенно для новичка. Если многое интуитивно понятно, то можно быстро выучить основы, понять принципы работы, ведь они общие, и даже, если в дальнейшем придется сменить инструмент - это не страшно, так как знания останутся.
Итак, после долгого серфинга по инету я остановился на 3х вариантах:
- UDK (на базе движка Unreal Engine 3)
- Unity3d 4.2 (на базе движка Unity3d)
- jMonkeyEngine 3 SDK (на базе движка jmonkeyengine)
Рассмотрим вкратце каждый из них. Сразу хочу сказать про статью на Хабре, где сравниваются UDK и Unity3d, она так и называется Сравнение Unity и UDK / Хабрахабр. Коротко и по делу рассмотрены два движка. Ниже будет мой краткий обзор, в рамках критериев, которые привел выше.
UDK - мощный инструмент на базе движка Unreal Engine 3. Картинку дает бесподобную, а в качестве языка для скриптинга использует свой UnrealScript. Подходит для создания игр AAA-класса.
Доступность.
UDK полностью бесплатен. Одна особенность лицензии только в том, что, если ваша игра соберет более 50 000$, то Epic Games (разработчики UDK) будут брать себе 25% с последующей прибыли.
Документация и сообщество.
Инструмент популярный, поэтому и комьюнити большое и документация большая и подробная.
Удобство.
Среда разработки мне понравилась, но показалась не очень удобной и не интуитивной(для новичка). Этакий монстр для создания игр. Так же решающим фактором стал скриптинг, я решил, что посмотрю другие платформы, прежде чем начать изучать UnrealScript. Подробнее можно прочитать в выше приведенной статье на хабре.
Полезные ссылки.
- unrealengine.com/udk/ - официальный сайт UDK.
- Обилие видео на youtube.com
Unity3d - мощный инструмент на базе одноименного движка. Очень популярный и может вполне конкурировать с Unreal Engine. Для скриптинга используется C#, JavaScript, Boo (диалект Python). Подходит для создания игр AAA-класса. Как преимущество, можно отметить портируемость на множество платформ.
Доступность.
У Unity3d есть 2 лицензии: Pro и Free. Соответственно по Free лицензии мы получаем полноценный продукт, но без некоторых фич, которые доступны для Pro. Сравнение лицензий от самого производителя тут: License Comparisons. Бесплатная версия вполне подойдет для прототипов и полноценных игр, хотя как пишут для создания игры ААА классы все-таки лучше приобрести Pro лицензию.
Документация и сообщество.
Тут проблем нет. Огромное и активное сообщество, куча ответов на вопросы, очень много туториалов и видео по созданию игр, разнообразие плагинов к среде разработки.
Удобство.
Не знаю почему, но запустив среду Unity3d я сразу ощутил какую-то родственную связь. Все интуитивно понятно, может быть это связано с тем, что до этого я ковырял 2 дня UDK, но среда разработки в Unity3d мне приглянулась сразу. Про скриптинг и говорить нечего - он на высоте. Поддержка C#, JavaScript, Boo (диалект Python) обеспечивает низкий порог вхождения для разработчиков, так как языки очень популярные, и практически каждый имеет (или имел) дело с C#/Java, JavaScript, Boo/Python.
Полезные ссылки.
- Официальный сайт unity3d.com - здесь можно скачать дистрибутив, а так же зарегистрироваться, чтобы получить доступ к основным ресурсам.
- Unity3D Answers - своего рода база проблем и решений.
- Русскоязычный ресурс unity3d.ru
- Обилие видео на youtube.com
jMonkeyEngine 3 - Open Source движок, написанный на Java. Это активно-развивающийся проект, и, судя по скринам, на нем можно делать действительно красивые вещи (ссылки смотри ниже). Собственно это и является для меня двумя главными плюсами по сравнению с 2-мя рассмотренными выше движками:
Доступность.
OpenSource.
Документация и сообщество.
Сообщество вроде как большое, проект активно развивается. Хорошая, подробная документация.
Удобство.
Обожаю Java, но среда разработки мне не понравилась (сразу начал резать русский язык в IDE, который просто так, без танцев с бубном, не изменить). Я сразу столкнулся с несколькими ошибками при создании нового проекта, но довольно быстро с ними разобрался (при помощи гугла). В целом среда для разработки привычная для Java (построена на базе Eclipse) и похожа на уже рассмотренные (Unity3d и UDK): графический редактор, менеджер ресурсов, менеджер проекта.
Полезные ссылки.
Тут я мало что посоветую, разве что официальный сайт:- OpenSource.
- Java, как язык разработки (нативный).
Доступность.
OpenSource.
Документация и сообщество.
Сообщество вроде как большое, проект активно развивается. Хорошая, подробная документация.
Удобство.
Обожаю Java, но среда разработки мне не понравилась (сразу начал резать русский язык в IDE, который просто так, без танцев с бубном, не изменить). Я сразу столкнулся с несколькими ошибками при создании нового проекта, но довольно быстро с ними разобрался (при помощи гугла). В целом среда для разработки привычная для Java (построена на базе Eclipse) и похожа на уже рассмотренные (Unity3d и UDK): графический редактор, менеджер ресурсов, менеджер проекта.
Полезные ссылки.
Можно сделать однозначный вывод, что все кандидаты достойны, теперь перейдем к выбору. jMonkeyEngine отпал сразу, так как не совсем понятно что с портами на смартфоны и планшеты, да и по ощущениям движок уступает двум оставшимся. Остался выбор между UDK и Unity3d, здесь уже выбор значительно сложнее, так как это два гиганта, которые оба достойны внимания. После того, как я поковырялся некоторое время (пару дней) с каждым из них, я выбрал Unity3d, так как из коробки есть поддержка большинства ОС (PC, планшеты, смартфоны), IDE мне удобна, а скриптинг на знакомых мне языках программирования (C# очень похож на Java, нежели UnrealScript). Думаю, что Unity3d идеально подойдет для старта в разработке игр, поэтому я решил, что основы буду разбирать с Unity3d, а в будущем может быть и вернусь к UDK, если это будет иметь смысл.
Заключение
Вот и все, краткий обзор инструментария закончен, мы выбрали Unity3d. Хотел посоветовать почитать книги, но пока сам не знаю какие действительно хорошие, поэтому с радостью выслушаю Вас по этому поводу :)