Робота в геймдева з точки зору програміста
Фото: Shutterstock
З продуктом геймдева - відеоіграми - у наш час знайомі всі , але мало хто досить обізнаний про процесі їх розробки. А адже ця IТ -галузь має свої особливості , характеристики та властивості , особливо з точки зору програміста. Створювати ігри - дитяча мрія доброї половини девелоперів , а також студентів інженерних спеціальностей. Можливо , саме тому про цю індустрії завжди велика кількість питань , припущень і навіть міфів.
Чи правда , що життя гейм -розробника схожа на гру , але потрапити в геймдев -компанію дуже складно , знання і навички вимагаються нереальні , а компенсації в галузі до непристойності малі ? Тільки нещодавно на форумі ДОП майнуло думку , що «в геймдева працюють висококваліфіковані програмісти , але отримують зарплату середнячків з аутсорсингу ».
Узагальнений погляд на геймдев ззовні виглядає наступним чином :
« Попрацювавши рік з невеликим рядовим PHP розробником , я почав відчувати нудьгу . Всі проекти в цілому схожі один на одного , в них немає ідеї , немає виклику . Рідко коли доводиться придумувати свої рішення. Геймдев ж приваблює не стільки у фінансовому плані , скільки можливістю проявити більше креативу . Я думаю , в розробці ігор куди легше знайти щось , що сполучає в собі і творчу , і технічну сторони ».
Олександр , студент- девелопер .
Щоб розібратися в специфіці ігрової розробки , ми поспілкувалися з людьми , безпосередньо пов'язаними з цією областю. Олександр Савчуків (СТО компанії ) , Олесь Шишківці (СТО компанії 4A Games) , Максим Гринів ( незалежний розробник ігор , творець головоломки Contre Jour ) , Едуард Лобас (HR -менеджер компанії iLogos) , а також гейм- девелопери Олександр та Андрій розповіли нам :
Про особливості індустрії
Олександр Савчуків : геймдев увазі , що працівник хоч якось цікавиться іграми як такими. Я особисто вважаю , що якщо людина не цікавиться або просто байдужий до ігор , то робити йому в цій індустрії нічого ( принаймні , я б не став брати такого співробітника в команду) . Що стосується зарплат , то в геймдева працюють різні фахівці і зарплати відповідно у них різні.
Олесь Шишківці : Основна особливість - у тому , що ми весь час перебуваємо в стані пошуку нових рішень : як правило , не існує рішень , готових і перевірених заздалегідь кимось іншим. Ми балансуємо на вістрі досліджень у величезній кількості областей , починаючи від АІ , анімацій , моушен планінги, фізики , графіки , геймплея і навіть тулсета . Відповідно, нам ніколи не нудно.
Але треба мати на увазі , що ми - порівняно велика компанія, що займається тільки ААА іграми , тобто все, що я пишу , відноситься тільки до даного напрямку . У компаніях , які займаються дрібними мобільними або , наприклад , соціальними іграми , все може бути зовсім інакше. У нас працюють висококваліфіковані програмісти , і отримують вони значно вище середнього по ринку.
Максим Гринів : Все, що напишу нижче , вірно тільки для невеликих команд , які намагаються робити складні проекти. Перша особливість - складність завдань. Я знаю , що більшість аутсорсеров просто в це не повірять , мовляв «у нас теж бувають круті проекти». Але я 5 років відпахав в аутсорсингу , з них 4 на позиціях архітекта/тим лида , в різних містах і командах , і знаю , про що кажу: завдання на порядки складніше. Саме не " своя специфіка» , яку можна освоїти , а фундаментальна складність .
Друга особливість ( для команд типу моєї ) - відсутність спеціалізації : ти пишеш нетворкінг , графіку , AI , паралельно дописувати свій движок , використовуючи декілька мов , парочку IDE , постійно перемикаєшся з рівня роботи безпосередньо з залізом на рівень високих абстракцій , все це під постійним тиском обмежень продуктивності , пам'яті.
Едуард Лобас : геймдев - специфічна область . Існує помилка, що в геймдева зазвичай менш досвідчені програмісти , ніж у Ентерпрайзі . Це не так. Програмісти повинні бути однаково хорошими для обох цих сфер - адже робота їх від специфіки змінюється не сильно : алгоритми , розрахунки , структура , оптимізація . Що стосується особливостей : частіше у геймдев -компаніях атмосфера краще , менше бюрократії і відмінно налагоджений зв'язок з керівництвом . Я працював і в енетерпрайзе , і в геймдева . Мені здається , що в ігрових компаніях люди більш щасливі .
Зарплати ж у геймдева залежать виключно від компанії , а не від області як такої. Чим крутіше сама компанія і чим більш прибуткові її проекти , тим вище і зарплати програмістів.
Олександр: геймдев - це дуже цікава сфера роботи для тих , кому цікаво різноманітність , коли є можливість проявити себе з творчої точки зору , привнести в гру якісь ідеї , які будуть радувати тисячі людей. Процес розробки не виглядає одноманітним , як у випадку , коли розробляється додаток або цілий пакет програмних продуктів.
Андрій: Якщо подобаються ігри та програмування , то в геймдева кожен робочий день буде в радість !
Про переваги і недоліки роботи в геймдева
Олександр Савчуків : Переваг багато , але кожен знаходить свої . Одним з таких критеріїв є те , що ви можете "грати" в роботі - розробляючи гру , ви так чи інакше в неї граєте. Більше того , ви самі змінюєте і творіть цей світ , чого не зробиш в грі , яку створили інші люди. На мій погляд , творчість - це дуже важливий і невід'ємний аспект мотивації для будь-якого програміста.
Крім того , в геймдева ви вирішуєте зовсім інші завдання - більш наближені до реального відчутному світу , якщо можна так висловитися. Наприклад , ви програмуєте логіку стрільби якоїсь зброї або спосіб переміщення ворога в грі , або ж - як резонанс - ви програмуєте логіку обчислення бухгалтерського обліку в якийсь офісної програмі . Я думаю , є різниця , але кожному своє.
Головний недолік (і в той же час перевага ) геймдева - велика динамічність і нестабільність індустрії . Ринок змінюється дуже швидко , тому практично неможливо запланувати весь проект від початку до кінця. У цій індустрії важко працювати людям , які люблять стабільність , передбачуваність і впорядкованість. Співробітник повинен бути готовий до хаосу і вміти під нього адаптуватися в максимально стислі терміни. Також завжди потрібно тримати руку на пульсі , рухатися в ногу з технологіями , підвищувати і розширювати свій портфель навичок , щоб бути затребуваним на ринку і не виявитися «за бортом ». Але це все додає інтересу і азарту !
Олесь Шишківці : Крім щодо вільного графіка роботи , у нас завжди є чим зайнятися , тобто нудьгувати не доводиться - і це цікаво. Багатьом також подобаються часті виставки , конференції - світ можна подивитися. Наприклад , прямо зараз будуть змагання на яхтах між кількома гейм- дів конторами в Хорватії - чим не плюс ?
З недоліків : бувають кранчи , вихід кожного проекту дуже болючий. Бувають моменти , коли весь креатив закінчується , і ми всі разом йдемо зверху вниз по баг - трекера без оглядки на « спеціалізацію » програміста. Іноді баги валять по 1000 в день тижнями , а ми встигаємо пофиксить максимум по 100 ... Хоча це , напевно , специфіка не тільки геймдева .
Максим Гринів : Переваг багато: цікаві завдання , прямий фідбек від гравців - відчуваєш , що те, що ти робиш , потрібно живим людям . Сам граєш в те, що робиш.
Величезні можливості для одинаків і невеликих команд - сформована інді -сцена . Набагато більш неформальна атмосфера. Популярність, увагу , слава , фанати - це , звичайно, не Голлівуд , але трохи схоже . Комусь це подобається , комусь - ні , але це є.
Недоліки: великі ризики , розширена зона відповідальності . Всім начхати , що ти пишеш ідеальний код , що він супер оптимізований - якщо геймплей виходить похмурим , вашу команду ніщо не врятує.
Едуард Лобас : У багатьох програмістів є ідеї щодо ігор , які вони люблять , які вони уявляють собі в розумі. Робота в геймдев -компанії допомагає їм розкрити цей . Вони беруть участь у чомусь позитивному . До того ж , приємно , коли твої друзі в соцмережах запрошують тебе в ті ігри , над якими ти працював.
Недоліки - рівно такі ж , як і в інших областях IT. Тут вже залежить від поділу на продуктові , аутсорсингові , стартапи і так далі.
Олександр: Розробляти ігри весело ! Дуже приємно усвідомлювати , що в ігри , які ти робиш , будуть грати тисячі людей , а якщо вони будуть проводити в грі годинник - твої старання не пройшли дарма . У розробці ПО , систем автоматизації і т. д. немає такого. У додатку людина проводить рівно стільки часу , скільки буде потрібно на виконання якогось завдання . У грі людина може сидіти годинами , а щоб цього досягти, потрібно дуже постаратися.
Про недоліки сказати щось конкретне складно , особливо коли справа стосується улюбленої роботи . Як кажуть - знайди роботу до душі , і тобі більше ніколи не доведеться працювати. Один з основних мінусів: коли підсів на розробку ігор , злізти вже складніше . Наприклад , після геймдева працювати на проекті з автоматизації буде на порядок нудніше , а це означає , що і продуктивність людини падає , і ніякі гроші не дадуть того настрою, який виникає при розробці гри , нехай навіть не найпопулярнішою .
Андрій: Головною перевагою я б назвав те , що ігри - це весело і цікаво. Ігри дарують людям радість і задоволення. Ще в геймдева є місце для творчості та пропозиції своїх ідей щодо поліпшення проекту. Для порівняння , в Ентерпрайзі дуже часто вже все вирішено заздалегідь , і потрібно реалізувати суворо певний функціонал , іноді навіть немає можливості вибору технологій , потрібно просто написати код . Але це справа смаку.
А головний недолік - ставлення людей до ігор і геймдева . Неодноразово зустрічав думку, що розробка ігор - це несерйозне заняття, яке не вимагає особливих зусиль або знань .
Також складнощі в роботі виробляє постійна зміна вимог ( але це ж розвиток? ) і , як наслідок , погіршення якості коду. З технічних проблем : для геймдева особливо гостро стоїть питання продуктивності системи. На відміну від більшості ентерпрайз проектів , в ігровій індустрії користувачі більш « розпещені » і не будуть чекати по 2-3 секунди на обробку запиту. Все має бути доведено до досконалості . Якщо користувач заходить на якийсь сайт і бачить помилку позиціонування елемента , йому не дуже приємно , але він продовжує користуватися ресурсом . А якщо користувач заходить в гру і бачить все таку ж помилку позиціонування або порушення анімації , то , швидше за все , він піде і більше не повернеться.
Про те , як стати гейм- розробником
Олександр Савчуків : Якщо ви вже працюєте програмістом в іншій індустрії , то стати гейм- розробником дуже просто . Але ви повинні бути готові перейти на нове місце з пониженням ставки на перший час. Велику роль відіграє ступінь бажання стати саме гейм- програмістом - саме на цьому слід наголошувати і намагатися показати його повною мірою на співбесіді. У нормальній гейм студії це завжди відзначають і оцінюють.
Особисто для мене і нашої компанії найважливішим є сама особистість , характер людини і його комунікабельність . Якщо людина була відмінник і перемагав на всіх олімпіадах , але разом з тим він є « ботаніком » , то я б не став брати його на роботу. Найчастіше такі , як я їх називаю , ніндзя- програмісти - абсолютно не командні гравці. А командность в геймдева набагато важливіше , ніж в soft development'е , тому що динаміка індустрії зумовлює постійне делегування завдань між усіма членами команди. Не можна допускати , щоб людина сідав у « бункер » і виконував завдання одноосібно і більше нікому невідомо як , навіть якщо це буде зроблено геніально . Командна розробка спрощує підтримку , зміна коду і всього проекту в цілому , а це пряма економія інвестицій . Підводячи підсумок , можна сказати , що прийняти рішення про наймання співробітника можна , просто поспілкувавшись і задавши кілька навідних технічних питань , не шукаючи в інтернеті хитромудрих задачок.
Якщо говорити про технології і терміни, то все залежить від того , які технології використовує в даний момент компанія , в яку ви йдете. Але завжди добре б знати хоча б основи (С + + , C # , Java , OpenGL , DirectX , шейдерні мови). У сучасних реаліях особливо корисно вивчити хоча б один Game Engine з ряду найпопулярніших ( Unreal , CryEngine , Unity3D ) .
Олесь Шишківці : Стати гейм- девелопером можна точно так само , як і будь-яким іншим програмістом. Потрібно дуже захотіти. Мінімум знань - це C + + , алгоритми та структури даних. Далі вже починається спеціалізація . У будь-якому випадку вчитися доведеться все життя.
На співбесіду головне - показати вміння працювати в команді і бажання вчитися. Ще ми завжди запитуємо , у що грає людина , в які ігри ? Дивно , якщо людина хоче робити гри , але не грає в них , чи не так?
Едуард Лобас : Як потрапити в геймдев -компанію ? Якщо чесно , то такі ж , як і в будь-яку іншу. Як правило , вітається , а іноді і необхідний досвід роботи в геймдева . А знання матчастини , своєї технології та іншого потрібні рівноцінні .
Максим Гринів : Як стати гейм- девелопером ? - Писати гри. І в процесі вивчати , що буде потрібно .
Олександр: Гейм -програмістом стати легко - так само , як і звичайним програмістом , за винятком того , що людина повинна любити ігри , любити грати . Думаю, багато айтішники , які з дитинства грали в комп'ютерні ігри , мріяли ( ють) розробляти свою .
На що робити упор і що вчити ? Вчитися потрібно кодіть , і кодіть добре ! Конкретну мову програмування вибирається залежно від масштабності майбутніх проектів і, звичайно , від складності для людини.
Андрій: Головне , щоб галузь подобалася , і було бажання в ній розвиватися. Основний упор у вивченні потрібно робити на структури даних і алгоритмізацію , а далі вже дивитися і пробувати якісь движки і фреймворки . Все залежить від напрямку в геймдева : мобільні платформи , консолі , браузерні або десктопні гри. Варіантів багато, і все цікаво.
Всі , хто мріяв створювати свої ігрові світи , але з якихось причин вагався , - дерзайте !
Особистими історіями , досвідом або просто своєю думкою запрошуємо поділитися в коментарях.
Опубліковано: 23/09/13 @ 08:26
Розділ Різне
Рекомендуємо:
Дайджест : скандал навколо Klumba.ua , чи потрібні менеджери , бойовий досвід Haskell
Невідомі раніше змінні Яндекс.Директ
Дайджест цікавих вакансій № 103
Продовження бесіди з Антоном Карпенко
5 жовтня, Київ - Пошук SphinX і все таке . Андрій Аксьонов