Привет, %username%!
Меня зовут %username2% и я профессиональный веб-разработчик и начинающий геймдев.
Годами во мне тлела надежда сделать свою игру и когда я услышал о Unity, то подумал — вот оно, счастье!
Каково же было моё изумление, когда скачав и установив Unity я там не обнаружил большой красной кнопки «Сделать игру» (чекбокса «Классную» тоже рядом не оказалось). Вместо этого мне предлагалось разбираться с какими-то там компонентами, изучать C# и API движка. С тех пор прошло уже времени достаточно, чтобы начать в этом всём бегло ориентироваться и позволить себе иметь некоторое мнение на сей счёт.

Главная проблема Unity это то, что у непосвящённых людей о ней складывается мнение как об очень высокоуровневом конструкторе игр. Это не так. Unity — это, в первую очередь, кроссплатформенный графико-физический движок. А визуальный редактор, который чаще всего можно видеть на скриншотах, — этакое бесплатное дополнение к нему. От которого вы будете отказываться в пользу кода, текстовых конфигов и сторонних плагинов с ростом 1) вашего опыта и понимания разработки игр, 2) численности команды и 3) размера и серьёзности проекта.
Вам нужен опыт в программировании чтобы сделать хоть что-то в Unity. Не умея программировать, вы не сможете сделать там ничего. Это не преувеличение.
Более того, вам нужен опыт разработки игр и понимание компьютерной графики. Ничего не знаете о физике в играх? Значит сначала придётся понять основные концепции вроде коллайдеров и джойнтов. Ничего не знаете о графике? Тогда будьте добры сначала погуглите mipmap, texture atlas, POT/NPOT, UV map, shader, анизотропная фильтрация, billinear vs trillinear filtering, и т.д. Хотите хорошее и быстрое освещение — значит придётся хотя бы немного вникнуть в то, какие примитивы освещения существуют, вроде направленного или точечного света, и как они влияют на производительность. Не обойтись конечно и без понимания фраз вроде diffuse light или specular light, vertex light vs pixel light, bump mapping. После этого можно переходить к изучению соответствующего раздела документации Unity.
Конечно же, этот опыт можно приобрести прямо в Unity. Но нужно понимать, что Unity не снимает необходимость понимания базовых вещей в геймдеве. Проблема в том, что во многих статьях о сабже между строк читается обратное.
Кроме того, платформа всё ещё достаточно сырая:
(Проблем достаточно много, чтобы они не влезли сюда. Их описание потянет не отдельную статью. Кому-нибудь интересна эта тема подробнее?)
Unity — это не учительница начальных классов. Она не расскажет вам почему трава зелёная, а небо голубое. И если вы вдруг собрались бросить работу,семью и детей, и уйти с головой в геймдев, сначала попробуйте сделать что-нибудь очень небольшое. Прощупайте почву перед тем как отдаваться во власти грёз о миллионах с игры за две недели на Unity.
Меня зовут %username2% и я профессиональный веб-разработчик и начинающий геймдев.
Годами во мне тлела надежда сделать свою игру и когда я услышал о Unity, то подумал — вот оно, счастье!
Каково же было моё изумление, когда скачав и установив Unity я там не обнаружил большой красной кнопки «Сделать игру» (чекбокса «Классную» тоже рядом не оказалось). Вместо этого мне предлагалось разбираться с какими-то там компонентами, изучать C# и API движка. С тех пор прошло уже времени достаточно, чтобы начать в этом всём бегло ориентироваться и позволить себе иметь некоторое мнение на сей счёт.

Главная проблема Unity это то, что у непосвящённых людей о ней складывается мнение как об очень высокоуровневом конструкторе игр. Это не так. Unity — это, в первую очередь, кроссплатформенный графико-физический движок. А визуальный редактор, который чаще всего можно видеть на скриншотах, — этакое бесплатное дополнение к нему. От которого вы будете отказываться в пользу кода, текстовых конфигов и сторонних плагинов с ростом 1) вашего опыта и понимания разработки игр, 2) численности команды и 3) размера и серьёзности проекта.
Вам нужен опыт в программировании чтобы сделать хоть что-то в Unity. Не умея программировать, вы не сможете сделать там ничего. Это не преувеличение.
Более того, вам нужен опыт разработки игр и понимание компьютерной графики. Ничего не знаете о физике в играх? Значит сначала придётся понять основные концепции вроде коллайдеров и джойнтов. Ничего не знаете о графике? Тогда будьте добры сначала погуглите mipmap, texture atlas, POT/NPOT, UV map, shader, анизотропная фильтрация, billinear vs trillinear filtering, и т.д. Хотите хорошее и быстрое освещение — значит придётся хотя бы немного вникнуть в то, какие примитивы освещения существуют, вроде направленного или точечного света, и как они влияют на производительность. Не обойтись конечно и без понимания фраз вроде diffuse light или specular light, vertex light vs pixel light, bump mapping. После этого можно переходить к изучению соответствующего раздела документации Unity.
Конечно же, этот опыт можно приобрести прямо в Unity. Но нужно понимать, что Unity не снимает необходимость понимания базовых вещей в геймдеве. Проблема в том, что во многих статьях о сабже между строк читается обратное.
Кроме того, платформа всё ещё достаточно сырая:
- GUI (внутриигровой интерфейс). Его в Unity нет. Оно не «не очень хорошее». Оно просто никуда не годится. Поэтому все покупают NGUI в Asset Store. Если хотите обидеть кого-нибудь из Unity при встрече намекните ему про его GUI (если вы понимаете, о чём я).
- Unity-проект плохо ложится в VCS. При возникновении конфликтов вы скорее всего не сможете их нормально разрешить, из-за нечитаемого (пусть и текстового) формата файлов. А система контроля версий, как минимум для меня, — неотъемлемая часть работы в команде.
- Перекомпиляция проекта на лету часто не срабатывает. И, поначалу, это может отнять у вас тонну нервных клеток и времени, чтобы понять, почему правки в коде не отображаются на игровом процессе. А надо всего лишь перезапустить игру. Ещё одна похожая проблема состоит в том, что не весь код написанный вами может нормально обновляться на лету.
- Физика. Она то работает как вам надо, то нет, хотя должна. Что делать во втором случае? Экспериментировать ;) Кроме того, в документации описано ограничение на массу объектов — до 10 кг. Это вызывает смутные подозрения о проблемах в консерватории.
- Откровенные баги вроде не срабатывания OnMouseDown на GUITexture.
(Проблем достаточно много, чтобы они не влезли сюда. Их описание потянет не отдельную статью. Кому-нибудь интересна эта тема подробнее?)
Unity — это не учительница начальных классов. Она не расскажет вам почему трава зелёная, а небо голубое. И если вы вдруг собрались бросить работу,