Привет! Я делаю игры и ассеты на Unity. Начинающие разработчики иногда спрашивают меня, с чего начать и насколько мощный компьютер им понадобится. Лично у меня железо довольно старое. И чтобы ускорить разработку, я решил наконец-таки провести апгрейд своего компьютера. С далекого 2011 года сердцем моего ПК является процессор Intel Core i5 2500K, но настала пора отправить его на пенсию. Но что лучше — высокая тактовая частота или наличие большого количества ядер? Обязательно ли покупать дорогой процессор, или получится сэкономить? Какая видеокарта нужна для разработки? Будем разбираться под катом!

Самые нетерпеливые сразу могут промотать в конец)

Существует несколько операций, выполнение которых занимает много времени при работе с Unity. Обычно в таких случаях я иду чаевничать или играю с котом. Иногда даже удается пройти пару уроков в Duolingo.
Intel Core i5 2500K вышел в 2011 году и относится к линейке Sandy Bridge (техпроцесс 32 нанометра). Частота 3,30 GHz (3,70 GHz с Turbo Boost), 4 ядра и 4 потока, кэш-память 6 Mb. Ничего особенного, если бы не адекватный ценник и приставка K. На хорошей mobo (у меня чипсет p67) гонится как черт (у всех Sandy Bridge под крышкой припой). У меня он 7 лет проработал на частоте 4.7 Ghz. На дворе 2018 год, а этот процессор до сих пор считается лучшим в бюджетном сегменте, на барахолке он стоит около 5000 рублей. В общем то, никаких особых неудобств при разработке я не испытываю, такого процессора вполне хватает. Почему не i7? Да потому что стоит он вдвое больше, а я денюжкой не сорю)
Видеокарта непосредственно для разработки никакого значения не имеет. Она понадобится вам только для запуска и тестирования проектов. Если вы делаете игру для PC с «крутым графоном», стоит потратиться на хорошую видеокарту. Поскольку я делаю мобильные игры, у меня нет никакой нужды бежать в магазин за GTX 1080 (которую наверняка уже раскупили майнеры). Поэтому я решил оставить свою старушку GTX 460. Тем не менее, я проведу тест с двумя видеокартами.
С выходом Ryzen AMD вернулись на рынок процессоров. Поэтому выбор будет стоять между:
Все, что ниже i5, а также старые процессоры AMD я рассматривать не буду (несмотря на все шутки про инди-разработчиков и дошираки).
Последний Core i5 — логичная замена моего i5 2500K. За эти 7 лет Intel, не имея никакой конкуренции и следуя своей концепции «Тик-так-так», прокачала свои процессоры в среднем на 50%. Поэтому даже если после покупки нового процессора Unity будет тупить в полтора раза меньше, я буду доволен.
Core i7 — камень для бояр, стоит вдвое больше i5. Нужен ли Hyper Threading за такие деньги? Согласно различным бенчмаркам, Hyper Threading обеспечивает прирост производительности до 30%.
Ryzen 5 и Ryzen 7 — новые 6-ядерные и 8-ядерные процессоры. Ядер больше, чем у Intel, но частоты меньше.
Серверные процессоры Xeon серий 16ХХ и 26ХХ имеют от 6 до 10 ядер (E5 2680 V2). Списанные с китайских серверов, они продаются на AliExpress по цене 100-150$, поэтому рассмотреть их стоит. Особенно, если вы ограничены в бюджете. Из минусов — придется купить китайскую материнку за 100$ и мощный кулер. Из плюсов — дешевая серверная DDR3 (регистровая).
После выхода Ryzen Intel оперативно скорректировал свой бизнес-план и выпустил шестиядерные процессоры. Если вам нужен процессор для игр, то выбирать нужно однозначно Intel. В большинстве игровых тестов даже 4-ядерные процессоры Intel, например i7 7700K, оказываются лучше Ryzen. Кроме того, гонятся до 5 Ghz даже на воздушном охлаждении.
Но у меня другой случай — я делаю игры, а не играю в них. Станут ли мои coffee break вдвое короче при использовании 8 ядер?
Увы, у меня нет возможности купить все эти процессоры, чтобы провести эксперимент. Но под рукой есть i5 2500K и серверный Xeon E5 1660 с шестью ядрами (будем считать его «аналогом» Ryzen 5, т.к. по бенчмаркам они очень близки). Вполне достаточно, чтобы определить, что же лучше для разработки на Unity.
Итак, будем тестировать:
Замечу, что на E5 1660 удалось поставить максимальный множитель 42/42/42/42/0/0. Это значит, что при загрузке более 4-х ядер частота будет снижаться до базового значения 3600 Mhz (хотя на брендовых платах его гонят до 4800). i5 2500K же может работать на ��аксимальной частоте 4700 Mhz при любой нагрузке.
Для сравнения, результаты бенчмарка этих процессоров и более новых, рассматриваемых к покупке (все в разгоне):

Таким образом, выбирая новый процессор, можно использовать эти данные, чтобы оценить выигрыш в быстродействии.
Методикой это назвать можно с натяжкой. Берем секундомер и запускаем следующие операции:
Поскольку загрузка ОС — это по большей части лишь копирование файлов с SSD в оперативную память, система загружается в обоих случаях очень быстро (чай завариться не успевает). Разницу в несколько секунд можно списать на время включения материнских плат (разные сокеты, разные BIOS).
Удаленная папка это не та, которая далеко находится. Я ее просто удаляю, чтобы Unity выполнил повторный импорт проекта (функции Reimport не доверяемся).
Первым в бой идет i5 2500K:

Результат 5:43. Процессор практически все время трудится на максимальной частоте 4700 Mhz, однако на 100% не загружается.
Затем очередь E5 1660:

Результат 5:53. Процессор работает, не напрягаясь, а частота лишь изредка достигает максимума в 4200 Mhz. Средняя загрузка процессора около 12%.
О чем говорят эти результаты? 5 минут в обоих случаях это довольно долго. i5 2500K не сбрасывает максимальную частоту, но при этом не загружен на 100%. E5 1660 старается использовать все ядра, и поэтому снижает частоту до 3600 Mhz (но при этом средняя загрузка очень низкая).
Остается предположить, что первому не хватает потоков, а второму частоты, поэтому оба процессора показывают одинаково плохой результат.
Снова начинает i5 2500K:

Результат 2:50. Работает на максимальной частоте, а загрузка ядер временами достигает 100%. Будь их больше, результат бы улучшился.
Затем E5 1600:

Результат 2:50, абсолютно такой же! Частота все та же — 3600 Mhz, но загрузка ядер ни разу не достигает 100%. Хотя нагрузка определенно выше, чем при импорте проекта.
Выводы можно сделать абсолютно такие же, как в предыдущем тесте. Кроме того, i5 уперся в свой потолок.
До сих пор работала GTX 460. В этом тесте я заменю ее на GT 210. Кто не знает, это самое днище среди видеокарт. Хуже ее может быть только ее отсутствие.
Импорт проекта для E5 1660:

Результат 5:38. Как и ожидалось, скорость операции не изменилась (разницу спишем на погрешность и сторонние факторы, например, работу Windows).
У меня 12 Gb RAM, и ее использование при работе с Unity не превышает 50%. Таким образом, для разработки на Unity хватит и 8 Gb RAM. И параллельно еще сможете запустить фотошоп и ютуб.
1. Для комфортной разработки нужна и высокая тактовая частота процессора, и большое количество потоков. 4-х потоков у процессоров Intel i5 явно недостаточно. Исходя из бюджета, можно рассмотреть 4-х ядерный i7 7700K, который очень любят геймеры или 6-ядерный i5 8600K, оба стоят в районе 250-300$. Если есть деньги, то можно взять и 6-ядерный i7 8700K, который стоит под 400$. Ryzen 5 1600X и Ryzen 7 1800X могут быть адекватной альтернативой за меньшие деньги, хотя и будут проигрывать Intel в максимальной частоте — 4 Ghz против 5 Ghz у Intel (в разгоне, конечно же). Использовать устаревшие платформы Sandy Bridge+, будь то i5, i7 или серверные Xeon 16XX и 26ХХ, имеет смысл только при ограниченном бюджете.
2. Вам не обязательно нужна самая крутая видеокарта. Особенно, если вы делаете мобильные игры. Так что оставьте топовые видеокарты майнерам. Я для замены своей GTX 460 выбрал GTX 1050 за 130$, чтобы Dark Souls 2 пройти еще разок.
3. Кроме того, рекомендую использовать SSD, поскольку Unity активно работает с файлами. Если вы ограничены в бюджете, можно взять даже самый дешевый SSD на 8 или 16 Gb, чтобы хранить на нем сам проект, а также установить туда Unity и все необходимые SDK.

«Короче, что лучше?»
Самые нетерпеливые сразу могут промотать в конец)
Когда тупит Unity?

Существует несколько операций, выполнение которых занимает много времени при работе с Unity. Обычно в таких случаях я иду чаевничать или играю с котом. Иногда даже удается пройти пару уроков в Duolingo.
- Обработка файлов проекта. Unity считает хэши всех файлов в проекте, создает мета-файлы и строит свою библиотеку (папка Library). Особенно долго Unity обрабатывает звуковые файлы. Библиотеку никто не хранит в системе контроля версий, поэтому если вы давно не синхронизировали проект, вас ждет пара минут ожидания. Кроме того, если изменить платформу, например с Android на iOS, этот процесс придется повторить.
- Запекание света (baking). Тут все зависит от сложности освещения. Я делаю мобильные игры, поэтому запекание практически не использую.
- Сборка проекта. Во многом зависит от выбранной платформы и самого проекта. WebGL может вообще собираться целую вечность (иногда реально состариться можно и еще борода отрастает). Я имею ввиду именно получение готовой игры, а не компиляцию исходного кода (которая происходит практически мгновенно).
Пару слов о моем 2500K
Intel Core i5 2500K вышел в 2011 году и относится к линейке Sandy Bridge (техпроцесс 32 нанометра). Частота 3,30 GHz (3,70 GHz с Turbo Boost), 4 ядра и 4 потока, кэш-память 6 Mb. Ничего особенного, если бы не адекватный ценник и приставка K. На хорошей mobo (у меня чипсет p67) гонится как черт (у всех Sandy Bridge под крышкой припой). У меня он 7 лет проработал на частоте 4.7 Ghz. На дворе 2018 год, а этот процессор до сих пор считается лучшим в бюджетном сегменте, на барахолке он стоит около 5000 рублей. В общем то, никаких особых неудобств при разработке я не испытываю, такого процессора вполне хватает. Почему не i7? Да потому что стоит он вдвое больше, а я денюжкой не сорю)
Видеокарта
Видеокарта непосредственно для разработки никакого значения не имеет. Она понадобится вам только для запуска и тестирования проектов. Если вы делаете игру для PC с «крутым графоном», стоит потратиться на хорошую видеокарту. Поскольку я делаю мобильные игры, у меня нет никакой нужды бежать в магазин за GTX 1080 (которую наверняка уже раскупили майнеры). Поэтому я решил оставить свою старушку GTX 460. Тем не менее, я проведу тест с двумя видеокартами.
Выбор процессора
С выходом Ryzen AMD вернулись на рынок процессоров. Поэтому выбор будет стоять между:
- Intel Core i5
- Intel Core i7
- Ryzen 5
- Ryzen 7
- Многоядерные серверные процессоры Xeon прошлых поколений (ибо стоят недорого)
Все, что ниже i5, а также старые процессоры AMD я рассматривать не буду (несмотря на все шутки про инди-разработчиков и дошираки).
Последний Core i5 — логичная замена моего i5 2500K. За эти 7 лет Intel, не имея никакой конкуренции и следуя своей концепции «Тик-так-так», прокачала свои процессоры в среднем на 50%. Поэтому даже если после покупки нового процессора Unity будет тупить в полтора раза меньше, я буду доволен.
Core i7 — камень для бояр, стоит вдвое больше i5. Нужен ли Hyper Threading за такие деньги? Согласно различным бенчмаркам, Hyper Threading обеспечивает прирост производительности до 30%.
Ryzen 5 и Ryzen 7 — новые 6-ядерные и 8-ядерные процессоры. Ядер больше, чем у Intel, но частоты меньше.
Серверные процессоры Xeon серий 16ХХ и 26ХХ имеют от 6 до 10 ядер (E5 2680 V2). Списанные с китайских серверов, они продаются на AliExpress по цене 100-150$, поэтому рассмотреть их стоит. Особенно, если вы ограничены в бюджете. Из минусов — придется купить китайскую материнку за 100$ и мощный кулер. Из плюсов — дешевая серверная DDR3 (регистровая).
После выхода Ryzen Intel оперативно скорректировал свой бизнес-план и выпустил шестиядерные процессоры. Если вам нужен процессор для игр, то выбирать нужно однозначно Intel. В большинстве игровых тестов даже 4-ядерные процессоры Intel, например i7 7700K, оказываются лучше Ryzen. Кроме того, гонятся до 5 Ghz даже на воздушном охлаждении.
Но у меня другой случай — я делаю игры, а не играю в них. Станут ли мои coffee break вдвое короче при использовании 8 ядер?
Увы, у меня нет возможности купить все эти процессоры, чтобы провести эксперимент. Но под рукой есть i5 2500K и серверный Xeon E5 1660 с шестью ядрами (будем считать его «аналогом» Ryzen 5, т.к. по бенчмаркам они очень близки). Вполне достаточно, чтобы определить, что же лучше для разработки на Unity.
Итак, будем тестировать:
- разогнанный i5 2500K (4С/4T) ~ 80$
- немного разогнанный (на хуанане особо не разгонишь) E5 1660 (6C/12T) ~ 130$
Замечу, что на E5 1660 удалось поставить максимальный множитель 42/42/42/42/0/0. Это значит, что при загрузке более 4-х ядер частота будет снижаться до базового значения 3600 Mhz (хотя на брендовых платах его гонят до 4800). i5 2500K же может работать на ��аксимальной частоте 4700 Mhz при любой нагрузке.
Для сравнения, результаты бенчмарка этих процессоров и более новых, рассматриваемых к покупке (все в разгоне):

Таким образом, выбирая новый процессор, можно использовать эти данные, чтобы оценить выигрыш в быстродействии.
Тестовый стенд
- Свежеустановленный Windows 10 (не захламленный всяким мусором)
- Самый дешевый китайский SSD
- Видеокарты GT 210 и GTX 460
- Проект Tap Tap Builder (мобильная игра для Android и iOS), суммарный размер ассетов около 500 Mb
Тестовая методика
Методикой это назвать можно с натяжкой. Берем секундомер и запускаем следующие операции:
- загрузка Windows 10 (с момента включения блока до появления рабочего стола)
- пересоздание удаленной папки Library (с момента открытия проекта до появления окна редактора)
- сборка игры под Android (с момента нажатия кнопки Build до появления APK)
- Параллельно будем смотреть на загрузку CPU в AIDA64.
Загрузка Windows 10
- E5 1660 загружает систему за 21 секунду
- i5 2500K загружает систему за 26 секунд
Поскольку загрузка ОС — это по большей части лишь копирование файлов с SSD в оперативную память, система загружается в обоих случаях очень быстро (чай завариться не успевает). Разницу в несколько секунд можно списать на время включения материнских плат (разные сокеты, разные BIOS).
Пересоздание удаленной папки Library
Удаленная папка это не та, которая далеко находится. Я ее просто удаляю, чтобы Unity выполнил повторный импорт проекта (функции Reimport не доверяемся).
Первым в бой идет i5 2500K:

Результат 5:43. Процессор практически все время трудится на максимальной частоте 4700 Mhz, однако на 100% не загружается.
Затем очередь E5 1660:

Результат 5:53. Процессор работает, не напрягаясь, а частота лишь изредка достигает максимума в 4200 Mhz. Средняя загрузка процессора около 12%.
О чем говорят эти результаты? 5 минут в обоих случаях это довольно долго. i5 2500K не сбрасывает максимальную частоту, но при этом не загружен на 100%. E5 1660 старается использовать все ядра, и поэтому снижает частоту до 3600 Mhz (но при этом средняя загрузка очень низкая).
Остается предположить, что первому не хватает потоков, а второму частоты, поэтому оба процессора показывают одинаково плохой результат.
Сборка проекта под Android
Снова начинает i5 2500K:

Результат 2:50. Работает на максимальной частоте, а загрузка ядер временами достигает 100%. Будь их больше, результат бы улучшился.
Затем E5 1600:

Результат 2:50, абсолютно такой же! Частота все та же — 3600 Mhz, но загрузка ядер ни разу не достигает 100%. Хотя нагрузка определенно выше, чем при импорте проекта.
Выводы можно сделать абсолютно такие же, как в предыдущем тесте. Кроме того, i5 уперся в свой потолок.
Поменяем видеокарту
До сих пор работала GTX 460. В этом тесте я заменю ее на GT 210. Кто не знает, это самое днище среди видеокарт. Хуже ее может быть только ее отсутствие.
Импорт проекта для E5 1660:

Результат 5:38. Как и ожидалось, скорость операции не изменилась (разницу спишем на погрешность и сторонние факторы, например, работу Windows).
Оперативная память
У меня 12 Gb RAM, и ее использование при работе с Unity не превышает 50%. Таким образом, для разработки на Unity хватит и 8 Gb RAM. И параллельно еще сможете запустить фотошоп и ютуб.
Выводы
1. Для комфортной разработки нужна и высокая тактовая частота процессора, и большое количество потоков. 4-х потоков у процессоров Intel i5 явно недостаточно. Исходя из бюджета, можно рассмотреть 4-х ядерный i7 7700K, который очень любят геймеры или 6-ядерный i5 8600K, оба стоят в районе 250-300$. Если есть деньги, то можно взять и 6-ядерный i7 8700K, который стоит под 400$. Ryzen 5 1600X и Ryzen 7 1800X могут быть адекватной альтернативой за меньшие деньги, хотя и будут проигрывать Intel в максимальной частоте — 4 Ghz против 5 Ghz у Intel (в разгоне, конечно же). Использовать устаревшие платформы Sandy Bridge+, будь то i5, i7 или серверные Xeon 16XX и 26ХХ, имеет смысл только при ограниченном бюджете.
2. Вам не обязательно нужна самая крутая видеокарта. Особенно, если вы делаете мобильные игры. Так что оставьте топовые видеокарты майнерам. Я для замены своей GTX 460 выбрал GTX 1050 за 130$, чтобы Dark Souls 2 пройти еще разок.
3. Кроме того, рекомендую использовать SSD, поскольку Unity активно работает с файлами. Если вы ограничены в бюджете, можно взять даже самый дешевый SSD на 8 или 16 Gb, чтобы хранить на нем сам проект, а также установить туда Unity и все необходимые SDK.
