Професія програміста-поліглота: розробник ігор. Розробник комп'ютерних ігор Професія розробник ігор

Розробка ігор – це складний багатоплановий процес (докладніше про процес розробки гри можна прочитати у статті «Етапи створення комп'ютерної гри»), в якій бере участь безліч різноманітних фахівців.

Наразі існує вже понад сотня офіційних найменувань робочих посад у процесі розробки ігор. Не вдаватимемося в практичні подробиці, опишемо поділ праці при створенні ігор у максимально спрощеній формі. За приклад візьмемо невелику команду з кількох людей, щоби не заплутатися в ієрархії.

Взаємне розташування професій

Сфера \ ЕтапІдеяРеалізаціяКомпонуванняДоопрацюванняВипуск гри
КонтрольМенеджер
ОформленняГеймдизайнерХудожникПрограмістТестерПіарник
МеханікаГеймдизайнерПрограмістПрограміст
ЗмістГеймдизайнерДизайнер картПрограміст

Ігри складаються із трьох основних сутностей: оформлення (графіка, музика, звук, інтерфейс), механіка (правила гри, режими гри, внутрішня логіка), зміст (персонажі, сюжет, діалоги). Кожен фахівець займається своєю частиною гри. Художники – малюють; програмісти – реалізують механіку гри; дизайнери карт, сценаристи, актори – наповнюють гру змістом. Але весь цей поділ важливий лише на етапі реалізації. Етап вигадування та проектування повністю лежить на плечах геймдизайнера. Етап компонування повністю відповідає програмістам. Всі інші фахівці безпосередньо не беруть участь у розробці, а лише допомагають безпосереднім учасникам. Тестери виявляють помилки у пробних робочих версіях гри, піарники займаються підготовкою аудиторії до зустрічі з грою. Усіми цими процесами зверху керують менеджери: продюсери, директори, начальники відділів.

Як видно, для розробки гри потрібна як мінімум зв'язка з геймдизайнера і програміста, всі інші професії - надмірність для інді розробників, але вже давно нагальна необхідність для великих ігрових студій.


Тепер розглянемо кожну професію окремо. Які їх завдання, правничий та обов'язки, кращі особисті якості. Окрім сухих формулювань також намагатимемося створити образи типових геймдизайнерів, програмістів, художників, відобразивши відомих представників, їхні робочі місця, приклади готових робіт.

Опис професії "Геймдизайнер"

Завдання професії:

Завдання: Вигадувати правила гри

Геймдизайнера можна порівняти з режисером фільму, його ідеї та настанови для інших учасників стають основою гри.

Це найбажаніша, але й найвідповідальніша професія в індустрії. Мало хто знає провідних програмістів, художників, які задіяні у розробці ігор, але відомі геймдизайнери у всіх на слуху.

(У російськомовних компаніях роль головного «вигадника» виконує продюсер, а геймдизайнер є лише оформлювачем його ідей у ​​технічно грамотну форму).

Проектування базової ігрової механіки;

Проектування ігрового балансу;

створення образів ігрових персонажів;

Планування ігрового процесу протягом усієї гри;

Написання дизайну документа з гри;

Коригування концепції гри в процесі розробки

Які якості важливі?

Ця посада не для новачків. Стати геймдизайнером можна лише провівши кілька років на інших посадах з помітними успіхами, або заснувавши власну ігрову студію.

Геймдизайнер перш за все повинен бути мудрою людиною, йому необхідно знати безліч фактів із різних галузей науки: історії, географії, біології, літератури, філософії, психології. Адже, по суті, він повинен вигадати цілий новий світ, але так, щоб він був правдоподібним і частково був схожим на реальний світ.

Крім того, геймдизайнер повинен хоча б поверхово знати специфіку всіх процесів створення гри: жанри, ігрові механіки, дизайн карток, графічні редактори. Адже він має роздавати конкретні завдання виконавцям, і йому не досягти успіху, якщо він доручатиме завдання, які технічно неможливо виконати.

Де вчитись?

Хороша гуманітарна освіта, опціонально-технічна.


Опис професії "Програміст"

Завдання професії:

Завдання: Реалізувати ігрові ідеї у вигляді програмного коду

Програмісти створюють базову механіку ігор. Від їхньої праці залежить, які можливості будуть у грі, наскільки бездоганно гра працюватиме з технічної точки зору.

Якість роботи програмістів безпосередньо впливає результати праці інших співробітників, тому є основним кістяком групи, весь процес розробки гри крутиться навколо них.

Що потрібно буде робити?

Написання, доопрацювання програмного коду;

створення ігрових об'єктів, прописування їх характеристик;

створення базової ігрової механіки;

Ведення файлової архітектури всього проекту;

Компонування результатів решти фахівців у програму

Які якості важливі?

Важливими є знання конкретних мов програмування. Знання математики, швидке навчання, здатність вдосконалюватися.

Вітається наявність гарної технічної освіти. Але так історично склалося, що найкращі програмісти виходять шляхом самонавчання. У ВНЗ вчать лише основним принципам. Практичні навички програмування можна отримати лише у процесі роботи.

Найкращим варіантом буде заочне навчання. При цьому потрібно мати гарну самодисципліну, щоб витрачати вільний час не на розваги, а саме на самонавчання.

Де вчитись?

Найкращий технічний ВНЗ (заочно).


Опис професії "Художник"

Завдання професії:

Завдання: Прикрашати гру, робити її привабливішою для гравців

Для створення аматорських ігор вистачає зв'язки геймдизайнер-програміст. Художників найчастіше наймають для більш об'ємних проектів. У зв'язку з цим серед художників дуже розвинена спеціалізація. Хтось займається лише декораціями, хтось – текстурами, хтось – моделюванням, хтось – анімацією, хтось інтерфейсом. Художник універсал у великих проектах не потрібний. До кожного напряму роботи потрібні свої конкретні практичні навички.

Що потрібно буде робити?

Вивчення дизайну документа з гри;

створення артів за описами геймдизайнера;

створення текстур, 3D-моделей, графічних спецефектів, анімацій;

Оформлення інтерфейсу гри

Які якості важливі?

Важливі творчі дані: вміння малювати, уявлення про композицію та колір. Також необхідно впевнене володіння сучасними графічними редакторами 3D моделювання та 2D графіки.

Де вчитись?

Художня школа або ВНЗ, де навчають малюнку, живопису, основам композиції, квітознавству.


Опис професії "Дизайнер карт, рівнів"

Завдання професії:

Завдання: Наповнювати ігровий світ предметами, подіями, учасниками

Геймдизайнер розробляє лише структуру, і уявляє собі гру лише загалом. Сценаристи пишуть лише історію та сюжетні події. А більшість конкретної реалізації ігрового світу залишається за дизайнерами карт.

Що потрібно буде робити?

Вивчення дизайну документа з гри;

створення ландшафту рівнів;

створення, продумування шляхів руху персонажів;

Розміщення готових ігрових об'єктів;

Створення та розстановка сюжетних подій на рівнях

Які якості важливі?

Працьовитість, посидючість, загальні навички програмування.

Де вчитись?

Найкращий спосіб навчання – працювати над картами, рівнями, сценаріями, створювати моди та доповнення для існуючих ігор.

Якщо й вступати кудись вчитися, то краще на програміста. Це полегшить розуміння ігрових скриптів. Але основними навичками дизайну рівнів професійно вас ніхто і ніде не навчить.


Опис професії "Тестер"

Завдання професії:

Завдання: Знаходити помилки у попередніх версіях гри

Найдоступніша посада для новачків – тестер. Це чорнороб, який відчуває ігри, для якого не потрібна наявність особливих навичок.

Але в нашій країні не прийнято тримати в командах окремих людей для тестування, тож краще відразу орієнтуватися на закордонні компанії та вивчати іноземні мови.

Що потрібно буде робити?

Грати в альфа та бета версії гри;

Використовувати всі ігрові можливості та їх комбінації;

Знаходити та документувати знайдені помилки під час гри

Які якості важливі?

Працездатність, посидючість, уважність.

Де вчитись?

Освіта не обов'язкова


Опис професії "Піар менеджер, ігровий журналіст"

Завдання професії:

Завдання: Розповідати про гру так, щоб її захотіли купити

Що потрібно буде робити?

вивчати ранні версії гри;

Створювати та розповсюджувати зображення з гри, відеоролики;

Проводити виставки, презентації

Які якості важливі?

Товариська, відкритість, активність, організаторські здібності. Грамотність та гарний склад.

Де вчитись?

Будь-який ВНЗ, де готують журналістів.


Опис професії "Менеджер"

Завдання професії:

Завдання: Координувати роботу решти фахівців

Поки кожен фахівець сидить окремо у своєму куточку та займається вузькоспрямованою діяльністю, менеджер має бачити всю ситуацію в цілому. Продюсер керує всім проектом, тех. директор керує програмістами, арт-директор – митцями, фін. директор – матеріальними ресурсами. Всі вони несуть відповідальність за кінцевий результат у першу чергу, і тому повинні постійно спрямовувати роботу у потрібне русло, усувати розбіжності та вирішувати інші організаторські проблеми.

Що потрібно буде робити?

Розділяти глобальні завдання на безліч дрібних;

розподіляти обов'язки між учасниками;

Ставити точні терміни та умови виконання;

Мотивувати та підбадьорювати інших фахівців;

планувати витрати матеріальних ресурсів;

Запобігати та усувати можливі неприємності в процесі

Які якості важливі?

Лідерські навички, відповідальність, уміння планувати, високий рівень комунікативних навичок, досвід керування проектами.

Де вчитись?

Насправді, у процесі розробки ігор.


Перелік усіх професій у розробці ігор

Вище описані лише базові ролі у процесі розробки ігор. Насправді конкретних найменувань професій набагато більше. Перерахуємо їх для довідки.

Базова рольКонкретна спеціалізація
ГеймдизайнерГоловний геймдизайнер
Геймдизайнер базової механіки
Геймдизайнер персонажів
Програмісттех. директор
Програміст-проектувальник
Програміст базової механіки
Програміст інтерфейсу
ТестерБета-тестер
ХудожникАрт. директор
Дизайнер 2D графіки
Дизайнер 3D моделей
Аніматор
Художник спецефектів
Художник інтерфейсу
ЗвукЗвукорежисер
Дизайнер картДизайнер карт
ТекстСценарист
АнімаціяАктор
Фахівець Motion Capture
ПіарЖурналіст
ПідтримкаГрупа підтримки (гаряча лінія)
МенеджерГенеральний директор
Головний менеджер проекту
Продюсер

Досягнення "Почесний читач сайт"
Сподобалася стаття? На подяку можна поставити лайк через будь-яку соціальну мережу. Для вас це один клік, для нас черговий крок вгору в рейтингу ігрових сайтів.
Досягнення "Почесний спонсор сайт"
Для особливо щедрих можна переказати гроші на рахунок сайту. У цьому випадку ви можете вплинути на вибір нової теми для статті або проходження.

Основи програмування
Ази програмування, основні терміни та поняття

Відеокурс познайомить студентів з азами програмування, основними термінами та поняттями. Навчить розробляти алгоритми та дасть реальний досвід створення веб-продуктів. Уроки включають огляд актуальних мов та напрямків програмування, допомагають студентам вибрати найцікавіші для себе та надають матеріали та інструкції для подальшого професійного розвитку.

Урок 3. Перша програма

Вибір мови програмування. Підготовка браузера. Програма Hello, world!

Урок 4. Змінні

Встановлення зручного редактора коду. Знайомство зі змінними. Простий калькулятор.

Урок 5. Типи даних

Типи даних. Операції з різними типами даних. Перетворення типів даних.

Урок 6. Алгоритми та блок-схеми

Алгоритмічний мислення. Візуальні блок-схеми.

Урок 7. Оператор розгалуження if

Вибір варіантів у програмі. Оператор розгалуження if. Гра в загадки.

Урок 8. Логічні операції

Комплексні умови вибору. Логічні І, АБО. Гра «Злі птахи».

Урок 9. Цикли do, while

Цикли do та while. Гра в руську рулетку.

Урок 10. Цикл for

Цикл для. Фінансовий калькулятор.

Урок 11. Масиви

Великі набори даних та масиви. Гра в рулетку.

Урок 12. Функції

Опції. Підготовка до написання гри Black Jack (21).

Урок 13. Гра "Black Jack". Частина 1

Написання повноцінної гри. Основа – роздача карток та підрахунок очок.

Урок 14. Гра "Black Jack". Частина 2

Завершення написання гри. Визначення результатів та переможця.

Урок 15. Кар'єра програміста

Огляд основних напрямів у програмуванні. Як вибрати мову програмування? Чому вчитися далі?

C#. Швидкий старт
Основи мови C# на прикладі розробки невеликої гри

Відео-курс для тих, хто цікавиться програмуванням мовою C# і хоче дізнатися про можливості та переваги, які він пропонує. Курс складається з 7 уроків, у ході яких ви отримаєте досвід програмування цією мовою та напишете невелику гру з графічним інтерфейсом. Для ефективного освоєння матеріалу потрібен мінімальний досвід програмування, тому зовсім розробникам-початківцям ми рекомендуємо спочатку пройти безкоштовний онлайн-курс "Основи програмування".

Урок 1. Ознайомлення з мовою C#

Навіщо вивчати C#? Що розробляють із його допомогою?

Урок 2. Змінні типи даних

Урок 3. Розгалуження. Цілі числа.

Урок 4. Цикли

Познайомимося із графічною бібліотекою SmallBasic. Розберемо цикл while з прикладу управління черепашкою.

Урок 5. Функції

Вивчимо цикл for. Напишемо слово "Торт" за допомогою черепашки. Будемо використовувати функції.

Урок 6. Розробка гри: частина 1

Почнемо розробляти гру. Навчимося керувати черепашкою з клавіатури.

Урок 7. Розробка гри: частина 2

Допишемо гру до кінця. Навчимо черепашку ганятися за їжею.

Git. Швидкий старт
Основи роботи з Git

Відеокурс дає досвід командної розробки за допомогою Git. Навчає «з нуля» організувати спільне сховище коду та ефективно його використовувати. Студенти освоюють git-клієнти з графічним та консольним інтерфейсом, навчаються контролювати випуск версій програми та «відкочуватися» до попередніх версій. Докладно розглядаються поширені помилки командної розробки: при злитті гілок, створенні commit-ів, зберіганні файлів, що виконуються в репозиторії.

Урок 1. Призначення та можливості

Дізнаємося, навіщо потрібен git і які можливості він відкриває програмістам.

Урок 2. Базові операції

Створюємо сховище коду, доступне всім учасникам розробки в мережі. Освоюємо базові операції: Clone, Commit, Push, Pull.

Урок 3. Відкат змін коду

Вчимося відкочувати зміни у коді за допомогою git. Освоюємо операції Discard, Revert, Reset.

Урок 4. Робота з гілками

Робота з гілками.
Паралельно розробляємо кілька версій програми. Освоюємо операції Add branch, Checkout, Merge.

Урок 5. Конфлікти

Вчимося вирішувати конфлікти при злитті гілок.

Урок 6. Поширені помилки. Частина 1

Побоювання створення нових гілок. Зберігання виконуваних файлів у репозиторії.

Урок 7. Поширені помилки. Частина 2

Помилки під час роботи з гілками. Помилки під час створення commit-ов.

Урок 8. Pull Request. Робота з Open-Source-проектами

Освоюємо Pull Request на прикладі роботи з Open-Source-проектами.

Урок 9. Pull Request. Складання домашніх завдань.

Складання домашніх завдань у GeekBrains за допомогою Pull Request.

Урок 10. Консольний git-клієнт. Базові операції

Освоюємо базові операції у консольному git-клієнті.

Урок 11. Консольний git-клієнт. Робота з гілками

Вчимося працювати з гілками в консольному git-клієнті.

Урок 12. Робота з версіями програми

Вчимося випускати різні версії програмного продукту із використанням git.

Урок 13. Підсумки

Підбиваємо підсумки виконаної роботи.

Курс призначений для новачків у програмуванні, які хотіли б освоїти сучасну мову C#, що є на даний момент однією з найпопулярніших мов розробки і має безперечні переваги. Він добре організований, суворий, більшість його конструкцій логічні та зручні. Розвинені засоби діагностики та редагування коду роблять процес програмування приємним та ефективним, а потужна бібліотека класів платформи.NET бере на себе масу рутинних операцій, що дає можливість вирішувати складні завдання, використовуючи готові "будівельні блоки". Все це дозволяє розцінювати C# як ефективну заміну мов Паскаль, Basic і C++ під час навчання програмування. Можливості C# воістину безмежні, адже він охоплює практично всі сучасні технології. А велика кількість пропонованих вакансій на ринку IT-послуг дозволяє легко працевлаштуватися програмісту C# та отримувати високий дохід! Базовий курс програмування, побудований на основі C#, дозволить швидше досягти рівня затребуваного фахівця-професіонала. У процесі навчання ми будемо використовувати велику кількість реальних програм. Особлива увага приділяється об'єктно-орієнтованому програмуванню (ООП), що найчастіше викликає труднощі в освоєнні у новачків. Після отримання необхідної теоретичної бази ви перейдете до практики вирішення завдань, головна мета якої – навчитися мислити як програміст C#.

Урок 1. Запровадження. Базові типи даних. Консоль. Класи та методи.

Що таке .NET Framework; Створюємо консольну програму в VisualStudio. Змінні. Типи даних та їх перетворення. Виводимо та вводимо дані через консоль. Перше знайомство з методами та класами.

Урок 4. Масиви. Текстові файли

Від об'єктів до масивів. Від масивів до "складних" завдань. Текстові файли

Урок 5. Символи, рядки, регулярні вирази

Символи та рядки; незмінні рядки; StringBuilder, StringReader та StringWriter; Регулярні вирази; практика.

Урок 6. Делегати, файли, колекції

Делегати; організація системи введення-виведення; робота з файловою системою; колекції; практика.

Урок 7. Введення у Windows Forms

Від консольної програми до Windows Forms; події та їх обробники; клас Form; створюємо перший додаток.

Урок 8. Програмування "по-дорослому"

Про рефлексію; що таке XML; серіалізація та десеріалізація; створюємо редактор питань для гри «Вірю – не вірю».

Основи ОВП
Складна концепція простими словами

У продовженні курсу [«Основи програмування»](http://https://сайт/courses/58) студенти освоять найпоширенішу і найпопулярнішу парадигму, яка використовується практично у всіх сучасних мовах – об'єктно-орієнтоване програмування. Принципи ООП вивчаються через практику: розробку гри «Змійка» мовою C# із використанням системи контролю версій Git.

Урок 1. Постановка цілей

Підготовча робота. Установка середовища розробки Visual Studio, початок роботи з Git-ом.

Урок 2. Процедурний підхід

Виводимо крапки на екран без використання ООП.

Урок 3. Класи та об'єкти

Створюємо перший клас "Точка".

Урок 4. Конструктори. Інкапсуляція

Створюємо конструктори класу "Точка". Вивчаємо один із ключових принципів об'єктно-орієнтованого програмування – інкапсуляцію.

Урок 5. Оперативна пам'ять: вид зсередини

Що відбувається в оперативній пам'яті під час створення та присвоєння змінних та об'єктів класу?

Урок 6. Освоюємо клас «Список»

Вчимося застосовувати практично клас «Список» мови C#. Створюємо список «крапок».

Урок 7. Клас «Горизонтальні лінії»

Створюємо новий клас, який відповідає за відображення горизонтальних ліній на ігровому полі.

Урок 8. Клас «Вертикальні лінії» та «Фігура»

Створюємо новий клас, який відповідає за відображення вертикальних ліній на ігровому полі. Створюємо клас «Фігура» – базовий для «Горизонтальної лінії» та «Вертикальної лінії».

Урок 9. Клас «Змійка»

Створюємо новий клас, який відповідає за відображення та керування змійкою на ігровому полі. Застосовуємо принципи наслідування. Створюємо перерахування (enum), що відповідає за напрямок змійки.

Урок 10. «Змійка» у русі

Навчаємо «Змійку» переміщенню ігровим полем.

Урок 11. Керована «Змійка»

Керуємо "Змійкою" з клавіатури.

Урок 12. «Змійка» з добрим апетитом

Навчаємо «Змійку» виживання в реальному світі – харчування та зростання!

Урок 13. Клас «Перешкоди». Поліморфізм

Створюємо клас, який відповідає за перешкоди на шляху змійки. Освоюємо принцип об'єктно-орієнтованого програмування – поліморфізм.

Урок 14. Пригодницький бойовик «Добути їжу, уникнути перешкод»

Навчаємо змійку реагувати на перешкоди під час полювання на їжу.

Урок 15. Підсумки

Підбиваємо підсумки, насолоджуємося грою.

Курс "C# Рівень 2. Просунутий курс" є продовженням базового курсу C#. На курсі дається глибше розуміння принципів об'єктно-орієнтованого програмування. Немає нічого цікавішого, ніж розробити власну гру, тому на курсі принципи ОВП пояснюються в процесі написання аркадної гри. Такий підхід, з одного боку, дає добре розуміння принципів ОВП, з іншого, дозволяє вивчити технологію написання програм під Windows. У другій частині курсу упор зроблений на навчання застосуванню різних технологій .NET Framework, без знання яких неможливо стати професійним розробником Microsoft: LINQ, ADO.NET, WCF, WPF та ін.

Урок 1. Об'єктно-орієнтоване програмування. Частина 1

структура. Клас. Об'єкт. Інкапсуляція. Конструктори. Властивості. Індексатори. Спадкування та поліморфізм.

Урок 2. Об'єктно-орієнтоване програмування. Частина 2

Абстрактні методи та класи. Інтерфейси. Стандартні інтерфейси. Винятки.

Урок 3. Об'єктно-орієнтоване програмування. Частина 3

Узагальнення. Делегати та події. Паттерн "спостерігач".

Урок 4. Об'єктно-орієнтоване програмування. Частина 4

Списки. Узагальнені списки. Лямбда-вирази. Linq.

Урок 5. Ознайомлення з технологією WPF.

Особливості платформи WPF. Введення в мову XAML. Стилі. Огляд елементів керування та їх властивостей.

Урок 6. Зв'язування даних. Тригери.

Зв'язування даних. Тригери. Обробка винятків. ListView. Віртуалізація.

Урок 7. Взаємодія із базою даних.

Взаємодія із базою даних. Огляд технології ADO.Net.

Урок 8. Огляд сервіс-орієнтованої архітектури додатків (SOA).

Web-сервіс Asmx. WCF-сервіс. Web-api сервіс.

Основи бази даних. 20 уроків.
Проектування БД та запити SQL

Бази даних (БД) - це системи зберігання та обробки даних, для доступу до яких використовується мова SQL (Structured Query Language). Будь-який сучасний сайт, гра або настільний додаток потребують зберігання даних. На даний момент існує безліч різних систем управління базами даних (СУБД), найпопулярнішою є MySQL. "Основи баз даних" - це 20 інтенсивних відео-уроків (по 10 хвилин), де ми пройдемо всі етапи проектування БД на прикладі інтернет-магазину з використанням мови запитів SQL. Після цього курсу ви зможете використовувати різні бази даних, такі як MS SQL та Postgre Sql, оскільки синтаксис мови SQL для них практично не відрізняється.

Урок 1. Реляційні бази даних

Чим відрізняється БД від СУБД; які бази даних називаються реляційними; огляд сучасних СУБД.

Урок 2. Встановлення СУБД

Установка СУБД MySql та графічної програми Mysql Workbench.

Урок 3. Проектування бази даних, нормальні форми

Проектування даних у Excel; нормальні форми; первинний ключ.

Урок 4. SQL-команда CREATE

Створення таблиць у графічному інтерфейсі MySql Workbench; команда CREATE; типи даних; робота у консолі.

Урок 5. SQL-команда INSERT

Заповнення таблиць даними за допомогою графічного інтерфейсу; команда INSERT; AUTO INCREMENT.

Урок 7. SQL-команди DISTINCT, ORDER BY, LIMIT

Отримання та фільтрація даних за допомогою SQL-команд DISTINCT та LIMIT; Сортування за допомогою команди ORDER BY.

Урок 9. Узгодженість даних

Поняття узгодженості чи консистентності даних.

Урок 10. Зовнішній ключ

Поняття зовнішнього ключа та обмежень на значення стовпців; FOREIGN KEY CONSTRAINTS.

Урок 11. Створення таблиць із ставленням “багато хто до багатьох”

Додавання кошика до бази даних інтернет-магазину.

Урок 12. Складовий первинний ключ

Використання складеного первинного ключа при проектуванні таблиці з ставленням "багато до багатьох".

Урок 13. Об'єднання даних із кількох таблиць

Отримання даних із кількох взаємозалежних таблиць; неспроможність підходу з використанням кількох SELECT-ів.

Урок 14. Оператор INNER JOIN

Об'єднання даних із кількох таблиць за допомогою оператора INNER JOIN.

Урок 15. Оператори LEFT JOIN, RIGHT JOIN

Об'єднання даних із кількох таблиць за допомогою операторів LEFT JOIN та RIGHT JOIN.

Урок 16. Оператор UNION

Об'єднує результати кількох SQL-запитів за допомогою оператора UNION.

Урок 17. Агрегуючі функції

Агрегуючі функції COUNT, SUM, MIN, MAX.

Урок 18. Оператор GROUP BY

Угруповання вибраного набору рядків за допомогою оператора GROUP BY.

Урок 19. Індекси

Фільтрування у GROUP BY з використанням HAVING; збільшення швидкості виконання запитів із використанням індексів.

Урок 20. Транзакції

Концепція транзакції; оператор TRANSACTION; вимоги ACID до транзакційної системи

Unity – це інструмент для розробки двовимірних та тривимірних ігор. Створені за допомогою Unity програми працюють під операційними системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux, а також на ігрових приставках Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One. Також цей ігровий движок дозволяє запускати ігри в браузерах за допомогою спеціального модуля Unity Web Player і технологій WebGL, що підключається. На курсі ми вивчаємо основні інструменти редактора Unity, а також підходи, які використовуються для розробки ігор. Крім того, ми розберемо весь процес створення однокористувацької 2D і 3D гри. Після навчання ви не тільки розумітимете принципи більшості існуючих ігрових механік, а також зможете їх реалізовувати на практиці. Вестимемо розробку власного 3D-шутера. Для успішного проходження курсу “Unity. Рівень 1” потрібні знання мови C#, які можна придбати на Базовому курсі “С#. Рівень 1”.

Урок 1. Знайомство з Unity

Unity як екосистема; історія створення, версії; сфера застосування; створення нового проекту; інтерфейс редактора, Layout, основні вікна; ігрові об'єкти, примітиви, компоненти; навігація сценою; поняття префабу; гарячі клавіші; складання проекту; asset store.

Урок 2. Ознайомлення з компонентами

Створення першої гри з компонентів, спрайтів та скриптів.

Урок 3. Створення скриптів у Unity.

Основні методи класу MonoBehaviour. Доступ до ігрових об'єктів та компонентів. Переміщення та поворот. Project Settings. фізика.

Урок 4. Створення скриптів у Unity. Частина 2

Immediate Mode GUI. Класи Mathf, Random, Invoke. Coroutines. Тригери та колізії. Спеціальні папки проекту.

Урок 5. Створення ІІ та простого інтерфейсу

Immediate Mode GUI. Класи Mathf, Random, Invoke. Coroutines. Простий ІІ обробка перешкод.

Урок 6. Анімація, аудіо та візуальні ефекти

Успадкована анімаційна система, анімація на основі Mecanim, компонент Character Controller. Компоненти AudioListener, AudioSource. Візуальні ефекти (система частинок, ефекти для камери)

Урок 7. Розробка інтерфейсу

Об'єкти та компоненти для розробки інтерфейсу користувача: Canvas, Canvas Scaler, Graphic Raycaster, Rect Transform, Text, Image, Raw Image, Button, Toggle, Toggle Group, Slider, Scroll View, Scroll Rect, Scroll Bar, Dropdown, Input Field. Event System. Event Trigger.

Урок 8. Розробка під мобільні устрою.

Розробка під мобільну платформу

Unity. Рівень 2. 1 місяць.
Розробка 3D-ігри

Даний курс є продовженням базового курсу з Unity і включає вивчення питань, без яких складно розробляти якісні і просунуті ігри. На курсі вивчаються поняття об'єктно-орієнтованого програмування та те, як вони використовуються при створенні ігор Unity. Розглядається реалізація таких методів як пошук шляхів, зона видимості противника, стеження за об'єктом за допомогою стандартних методів. Розглянемо створення власного плагіна для спрощення роботи та зменшення витрат часу при розробці ігор. Також ми навчимося зберігати вихідні дані власних ігор. Ознайомимося з оптимізацією та фізичними компонентами Unity3d. Вестимемо розробку власного 3D-шутера.

Урок 1. Принципи ООП у Unity. Частина 1

Простір імен; класи, поля, методи, властивості; конструктори; успадкування, поліморфізм; віртуальні методи; навантаження методів.

Урок 2. Принципи ООП у Unity. Частина 2

Колекції; абстрактні класи та методи; інтерфейси; винятки; події та делегати; coroutines.

Урок 3. Створення простого ІІ. Частина 1

Знайомство із сімейством NavMesh. NavMeshAgent, OffMeshLink, NavMeshObstacle.

Урок 4. Створення простого ІІ. Частина 2

Створення персонажа, встановлення поля зору, патрулювання території, впровадження компонента дії патрульного: переслідування та атака.

Урок 5. Робота із класом Editor. Збереження даних

Персоналізація Unity3D, додавання власних кнопок та функціоналу.

Урок 6. Фізичні компоненти. Збереження даних.

Physics Joints (FixedJoint, SpringJoint та інші). Cloth (Симуляція тканини). Створення міні-карти. Збереження даних (JSON, XML, PlayerPrefs).

Урок 7. Основи оптимізації

Rendering Statistics; Profiler; Debugging; Frame Debugger; Quality Settings; Оптимізація (Frustum Culling, Occlusion Culling, LOD group, Текстури та матеріали, освітлення та тіні, скрипти).

Урок 8. Підбиття підсумків.

Загальні принципи мультиплеєра; підбиваємо підсумки.

Як стати програмістом? 13 уроків.
Покрокова інструкція з пошуку роботи

Кар'єра у сфері програмування – це захоплююча подорож у світ сучасних технологій. У кожного розробника своя історія та свій досвід. Однак існує базовий алгоритм, який допоможе правильно зробити перші кроки та призведе до вашої мети. Ми підготували 13 відео-уроків, у яких відповіли на найактуальніші питання про кар'єру програміста в компаніях та на ринку фрілансу. Часто думаєте про працевлаштування та відчуваєте, що готові почати заробляти? Тоді цей відеокурс для вас.

Урок 1. Професія "Програміст"

Особливості професії; поширені запитання; затребуваність ринку праці.

Урок 2. Профорієнтація

Чи стану я успішним програмістом? Чинники успіху.

Урок 3. Починаємо складати резюме

Найважливіше – перше враження; як назвати посаду

Урок 4. Вибір мови програмування: веб-розробка

Огляд мов для створення сайтів: HTML, CSS, JavaScript, PHP, Python, Ruby, C#, Java; правильний вибір.

Урок 5. Мобільна технологія. Універсальні мови програмування

Огляд мов: Java, Objective-C, Swift; C#, C++, Python: правильний вибір

Урок 6. Правила ефективного резюме

Список технологій; портфоліо; дипломи та сертифікати; особистісні якості. Погляд технічного спеціаліста та HR.

Урок 7. Пошук роботи: що, де, коли

робота мрії, психологічні аспекти; техніка запиту.

Урок 8. Співбесіда та випробувальний термін

Співбесіди для програмістів: як поводитися, що говорити, до чого прислухатися; випробувальний термін та правила його проходження.

Урок 9. Фріланс: перші кроки

Огляд майданчиків для фрілансу; особливості реєстрації; оформлення облікового запису; як виділятись серед більшості виконавців.

Урок 10. Фріланс: початок роботи та пошук замовлень

Стратегія пошуку замовлень; пріоритет замовлень: що брати у роботу; ведення переговорів; завдання та підводні камені ТЗ; методи звернення до клієнта; написання відповідей та привернення уваги клієнтів; правильні питання.

Урок 11. Фріланс: виконання замовлення та оплата

Способи оплати: безготівковий або розрахунок готівкою; передоплата або післяплата; огляд ситуацій, у яких краще спрацює кожен із способів; підготовка до роботи та обов'язкові домовленості з клієнтом; особливості процесу роботи; завершальні етапи співробітництва; обмін відгуками; техніка "порадитися".

Урок 12. Спеціальності у сфері IT

Як відбувається розробка у великих компаніях? Хто такі аналітики, дизайнери, тестувальники, архітектори, projectmanager-и, team-lead-и та ін.

Урок 13. Кар'єрні сходи у сфері IT

Як виглядають кар'єрні сходи у сфері IT? В яких спеціальностях простіше розпочинати свій шлях? Які перспективи розвитку?

Курс, розроблений спільно зі школою EnglishDom, допоможе освоїти ключові англомовні теми, актуальні для IT-фахівців-початківців. Максимум практики та фокус на IT-лексику. На 10 уроках розбирається складання CV, технічних завдань та ділових листів, співбесіди та переговори, міжнародне спілкування при просуванні свого проекту. У живих діалогах англійською студенти закріплять фрази, які стануть у нагоді в роботі розробникам та тестувальникам, маркетологам та дизайнерам.

Урок 10. Start up

Розповідаємо про свій проект та представляємо команду англійською.

Стажування. 2 місяці.
У форматі вебінарів

Стажування у GeekBrains буде проводитись у форматі вебінарів. З початку занять Ви приступите до спільної розробки під керівництвом викладача. На кожному занятті ми проводитимемо нараду, як у реальних IT-компаніях. Аналізувати виконану роботу, обговорювати отриманий код, визначати обсяг завдань наступного тижня.

Урок 1. Постановки задачі

Постановка задачі. Робота з Bug-tracker-ом.

Урок 2. Розбір інструментів розробки

MS Visual Studio 2015, TortoiseHg, Mercurial, BitBucket

Урок 3. Об'єктно-орієнтована парадигма проектування та розробки ПЗ

Принципи побудови програм (DRY, KISS, YAGNI, SOLID)

Правила хорошого коду

Урок 5. Делегати, події. Локалізація додатків

Делегати та події. Створення власних подій. Основи локалізації програми

Урок 6. Оптимізація. Постобробка зображення

Графічні прийоми. Оптимізації рендерингу та скриптів. Розбір плагінів





Хто працює в індустрії розробки ігор

Розробкою гри у великій компанії займаються різні фахівці, і зараз ми спробуємо познайомити вас з більшістю спеціальностей, задіяних в цьому процесі. Усіх розробників можна розділити на групи, кожна з яких має власну зону відповідальності. Загалом це:
  • дизайн (геймдизайн)
  • програмування
  • графічний контент
  • тестування

Дизайн

Геймдізайн-  процес опрацювання основних концепцій майбутньої гри, її правил, контенту, ігрового світу, механіки та геймплею. Геймдизайнер повинен володіти одночасно художніми, технічними та письменницькими навичками (для складання документації, диздоку).

Провідний дизайнер, провідний геймдизайнер- Керівник і координатор решти дизайнерської команди, до його обов'язків входить визначення та опрацювання ключових елементів майбутньої гри, взаємодія з іншими керівниками інших відділів (арт-директором, провідним програмістом і т.д.), вирішення інших дизайнерських завдань, які не можна за якими- або причин доручити підлеглим дизайнерам. Загалом саме провідний дизайнер є обличчям, яке визначає кінцевий вигляд гри, її "суть" лише на рівні геймплея.

Дизайнер ігрової механіки- Людина, в чиї обов'язки входить визначення потреб з боку програмного коду для реалізації ідей та геймплею, розробленого дизайнерською командою. Дизайнер ігрової механіки повинен мати деякі технічні навички в галузі програмування, щоб грамотно ставити завдання з реалізації геймплею через програмний код перед програмістами.

Дизайнер рівнів, левел-дизайнер- людина, в завдання якої входить створення та складання ігрових рівнів, карт, локацій і т.д. Левел-дизайнером може бути як вузькоспеціалізована людина, яка займається тільки збиранням локацій з готових елементів (моделей), так і поєднувати цю посаду з іншою-наприклад, левел-дизайнер може бути ще й 3D-художником.

Дизайнер інтерфейсу, дизайнер UI- Розробляє інтерфейс користувача, всілякі меню, HUD"и, вікна і т.д. Малювати їх самостійно йому зовсім не обов'язково, але загалом це було б плюсом.

Сценарист- людина, яка відповідає за текстову складову гри. До його обов'язків входить складання діалогів, опрацювання сюжету, опис різноманітних сцен, подій, можливих варіантів їх розвитку, наповнення внутрішньоігрової літератури, якщо така є і т.д. - Загалом, все, що зробить геймплей органічно вписаним в ігровий світ. Серед новачків існує мода називати себе сценаристами, проте реальне наповнення цього слова набагато об'ємніше, ніж просте написання сюжету для гри. Набагато складнішим завданням може стати складання несуперечливих, логічних місій і завдань, написання реалістичних реплік для різних персонажів - все це вимагає високої художньої майстерності, володіння мовою і певною часткою таланту.

Програмування

Програмування ігор- Процес створення програмного коду з метою візуалізації ігрового світу, взаємодії гравця з цим світом і пересування по ньому. Програмування відеоігор поділяється на велику кількість спеціалізованих областей, кожна з яких відповідає за деяку функціональну частину майбутньої гри (штучний інтелект, фізика, візуалізація тощо).

Ведучий програміст- Найбільш досвідчений і технічно підкований фахівець, завдання якого входить зведення всіх підрозділів ігрового движка в широкому сенсі цього слова в єдину працюючу систему. Провідний програміст саме програмуванням може займатися меншу частину свого часу, т.к. його основний обов'язок це все ж таки саме координація і з'єднання всіх систем в єдине ціле. Також провідний програміст може займатися написанням "скелета" ігрового двигуна для всіх підсистем, якими вже займатимуться інші люди.

Програміст ігрової механіки- Людина, що відповідає за програмну реалізацію всіх елементів геймплею. Наприклад, якщо геймдизайнер передбачив можливість використання ящиків як метальних снарядів - завданням програміста ігрової механіки буде зробити так, щоб гравець міг брати ці ящики і кидатися ними.

Програміст 3D-движка, програміст графічного движка- Спеціаліст, що відповідає за відображення ігрового світу на екрані гравця, шейдери, графічні ефекти і т.д.

Програміст AI(штучного інтелекту)-в його завдання входить програмна реалізація різних моделей поведінки ворогів, системи тригерів, умов та інших елементів, що управляють поведінкою внутрішньоігрових об'єктів з боку комп'ютера.

Програміст UI- Відповідає за взаємодію користувача з ігровим світом через інтерфейс користувача (UI), різні HUD, меню і т.д.

Програміст інструментарію-У його завдання входить створення всіляких утиліт, редакторів та інших інструментів, які покликані допомагати художникам і дизайнерам виконувати їх завдання швидше, зручніше і якісніше. Зручний інструментарій здатний скоротити час створення окремих елементів гри.

Програміст мережного коду-Відповідає за взаємодії гри через мережу інтернет (або локальну мережу) з серверами оновлень, іншими гравцями (мультіплеер) і т.д.

Графічний контент

Графічний контент, асети-   сукупність об'єктів ігрового світу, які гравець бачить на екрані. Сюди входять моделі персонажів, предмети оточення, ландшафт та ін.

Арт директор- керівник художнього відділу, зазвичай найдосвідченіший співробітник арт-відділу, відповідає за координацію роботи підлеглих 2D і 3D художників, контролює якість, стежить за витримуванням загального стилю у всіх роботах.

2D-художник- Узагальнена назва низки більш вузьких спеціальностей. Завданням 2D-художника зазвичай є створення графічного контенту в 2D-редакторах (зазвичай Photoshop) у вигляді ескізних малюнків, текстур для 3D-моделей, різного роду заставок, фонових зображень і т.д. Вужчими спеціальностями 2D-художників є: концепт художник, художник за текстурами, художник бекграундів.

Концепт художник-Відповідає за створення різноманітних нарисів, ескізів персонажів, будівель, декорацій, локацій і т.д. - Іншими словами, у візуальній формі представляє образи та ідеї майбутньої гри. Робота концепт художника служить джерелом координації дій інших учасників арт-отдела, служить демонстрації ідей керівництву, інвесторам тощо.

Художник з текстур- В його обов'язки входить створення різних текстур для 3D-моделей, створених 3D-художниками, відповідно до концепт-малюнок.

3D-художник- Узагальнена назва низки більш вузьких спеціальностей. Завданням 3D-художника загалом є створення 3D-контенту як моделей персонажів, техніки, архітектури та інших ігрових об'єктів. Вужчими спеціалізаціями 3D-художників є: модельер персонажів, модельер оточення (environment artist), аніматор.

Моделер персонажів- Займається створенням в 3D-пакеті моделі ігрових персонажів, їх одягу, озброєння, обладунків і т.д. Втім, персонажі можуть бути як органічними (гуманоїди), так і неорганічними (різного роду техніка), тому багато моделей відносять себе до моделей органіки або моделей неорганічних поверхонь залежно від умінь і уподобань.

Моделер оточення-У його завдання входить моделювання предметів навколишнього світу, ландшафту, будівель і т.д.

Аніматор- аніматорів можна виділити в окрему категорію спеціальностей; займаються анімацією (оживленням) 3D-моделей, найчастіше персонажів. До завдань аніматора входить створення рухів ходьби, бігу, стрибків, атаки та подібних рухів залежно від вимог геймплею.

Тестування

Тестування, контроль якості (QA, Quality Assurance)- процес виявлення різноманітних помилок і дефектів контенту гри. Тестування обов'язково має проводитися щоб уникнути часткової чи повної непрацездатності гри в кінцевого споживача.

Тестування може проводитися відділом тестування видавця гри, тестерами розробника, незалежними тестерами, і навіть у процесі публічного бета-тестування звичайними користувачами. Процес тестування зводиться до проведення та перевірки ряду стандартних сценаріїв (наприклад, чи не зависає гра при виході на робочий стіл), тестування геймплею, різних ситуацій тощо.

Звук

Звук- Відділ звуку забезпечує гру звуковими ефектами, музикою і озвучує ігрових персонажів.

Композитор-У його завдання входить написання музики (саундтреку) до гри.

Звукоінженер- Займається пошуком готових звукових ефектів для гри або створенням нових шляхом синтезу декількох звуків або записом оригінальних.

Актори озвучування- Озвучують ігрових персонажів.

Такими є основні спеціальності в індустрії розробки ігор. Зрозуміло, існують ще багато спеціальностей, які не були згадані (наприклад, продюсери чи художники за спецефектами), проте основні люди, задіяні у розробці ігор, були перераховані.

Розробник ігор або gamedev— спеціаліст, який займається створенням програмного коду, візуалізацією та концепцією гри, а також вибором коштів для реалізації поставлених завдань. Професія підходить для тих, кого цікавить інформатика (див. вибір професії з інтересу до шкільних предметів).

Короткий опис

Розробник може працювати як самостійно, так і в команді, яка складається з керівників, та . Склад команди безпосередньо залежить від бюджету проекту, але якщо фінансування мінімальне, то розробник ігор виконує функції всіх перерахованих вище фахівців або ті завдання, які він зробити здатний.

Представників професії умовно можна поділити на кілька груп:

  • справжні метри, які займаються розробкою найпопулярніших ігор у відомих компаніях;
  • професіонали, які займаються розробкою якісних ігор середнього сегменту;
  • спеціалісти, які розробляють прості ігри (браузерні, мобільні та інші);
  • геймери та любителі, які випускають доповнення та індії-ігри.

Для роботи у цій сфері необхідний диплом програміста. Також розробкою ігор можуть займатися дизайнери мобільних додатків, геймдизайнери та інші професіонали зі сфери IT, попередньо пройшовши короткий підготовчий курс.

Специфіка професії

Для створення простих ігор фахівець повинен чудово знати програмування, але якщо він хоче заробляти більше, багато часу доведеться приділяти отриманню нових знань:

  • інструмент Unity та інші движки, які необхідні для створення 2D та 3D ігор;
  • об'єктно-орієнтоване програмування;
  • вивчення мови програмування C#, Ajax та інших;
  • оптимізація 2D та 3D ігор;
  • 3D редактори;
  • етапи проектування ігрового процесу, промальовування, візуалізації, анімації, фізики та інших аспектів гри;
  • основи розробки ігор для мобільних пристроїв та багато іншого.

Gamedev - універсальний фахівець, який після навчання має вміти створювати анімацію, візуальні ефекти, концепцію гри, дизайн, знати основи моделювання та юриспруденції. Так, розробник, який працює сам на себе, має вміти не лише захищати, а й запатентувати розроблену гру або програмне забезпечення для неї.

Багато студентів сьогодні прагнуть освоїти цю спеціальність, але не всі досягають успіху. Лише найкреативніші та найталановитіші можуть отримати роботу у відомих компаніях, а решта випускників займаються розробкою простих ігор і отримують за цю роботу солідну винагороду.

Плюси та мінуси професії

Плюси

  1. Досвідчений та талановитий програміст отримає за розробку ігор гідну заробітну плату.
  2. Є шанс працевлаштуватися у відому компанію та здобути популярність у певних колах.
  3. Фахівці, які працюють на себе, можуть творчо реалізуватись.
  4. Ігри для ПК та мобільних пристроїв користуються популярністю, тому інвестори охоче вкладають кошти у просування ігрових програмних продуктів.
  5. Професія дозволяє працювати з різними платформами (ОС, IOS/Android та інші).
  6. Знаючи мови програмування, програми для створення 3D графіки, основи розробки мобільних додатків та інші напрямки, пов'язані з професією, фахівець зможе спробувати свої сили у кожній із цих сфер.

Мінуси

  1. Розробник повинен відсувати свої амбіції та творчі задуми на другий план, ставлячи на перше місце вимоги інвестора чи замовника.
  2. До досвіду та знань спеціаліста висуваються серйозні вимоги, адже від його професіоналізму залежить успішність проекту.

Особисті якості

Розробник ігор повинен розуміти, що створення гри – це перша сходинка на шляху до успіху, адже потрібно зібрати команду, знайти інвестора, провести рекламну кампанію, яка справді продаватиме створений продукт. Тому розробник має відрізнятися такими рисами характеру:

  • стресостійкість;
  • витривалість;
  • відсутність психологічних проблем;
  • схильність до тривалої роботи;
  • завдатки керівника;
  • вміння працювати в колективі;
  • підприємницька жилка;
  • добре розвинена фантазія.

Навчання на розробника ігор

Якщо студент бажає після завершення навчання займатися розробкою ігор, він спочатку має освоїти або професію програміста, або спеціальність геймдизайнера. Спеціальності «розробник ігор» у вузах СНД немає, але після здобуття вищої освіти можна пройти додатковий навчальний курс у приватній IT-академії.

Онлайн-курси GeekBrains

Загалом за 4 місяці люди без додаткової підготовки можуть освоїти професію «розробник ігор», займаючись практичною роботою. Курс складається із багаторівневої програми, тому студенти знаходять роботу ще на стадії навчання. Після завершення курсу в руках у студента залишається портфоліо, відмінне резюме, досвід роботи та сертифікат!

Школа Scream School

У цій школі студенти зможуть здобути повноцінну освіту або пройти підготовчі курси, а також підвищити свою кваліфікацію. Випускники школи високо цінуються на ринку праці, тому швидко знаходять високооплачувану роботу. Термін навчання залежить від багатьох факторів, серед яких спеціалізація, обрана програма та інші.

Місце роботи

Сучасний бізнес поступово переходить в інтернет, тому розробники ігор користуються попитом на ринку праці. Справа в тому, що мобільні та браузерні програми стають майданчиком для реклами того чи іншого продукту, а мережеві та звичайні комп'ютерні ігри давно вже приносять стабільний дохід своїм власникам.

Представники професії зможуть працевлаштуватися в агенції та копанні, які займаються розробкою всіх видів ігор.

Оплата праці

Оплата праці цих фахівців найчастіше провадиться поетапно за фактом виконаної роботи. Розмір гонорару залежить від рівня підготовки розробника, його обов'язків та проекту, над яким він працює, а також від кількості осіб у команді. Але якщо фахівець хоче отримувати стабільний заробіток, то варто звернути увагу на сегмент браузерних і соціальних ігор, мобільних додатків, а також ігор для PlayStation.

Зарплатня на 08.08.2019

Росія 20000-90000 ₽

Москва 60000-180000 ₽

Кар'єра

Розробник ігрового ПЗ здатний реалізувати свій талант у будь-якій IT-спеціальності, тому перед ним відчинені всі двері. Він може відкривати власні компанії, створювати продукти, які йому цікаві, а потім займатися пошуком інвесторів, працювати на компанію або агентство, отримуючи стабільний прибуток.

Професійні знання

  1. Мови програмування.
  2. Обов'язковим є знання англійської мови.
  3. Вміння малювати від руки чи за допомогою спеціальних програм.
  4. Знання Unity та інших ігрових двигунів.
  5. Вміння працювати з 3D-редакторами, програмами для 3D-моделювання та іншими інструментами для розробки ігрового програмного забезпечення.

Відомі представники професії

  1. Американ Макгі.
  2. Вілл Райт.
  3. Хідео Кодзіма.

(Відеоігр).

Енциклопедичний YouTube

  • 1 / 5

    Розробкою відеоігор може займатися як одна людина, так і фірма (колектив розробників). Часто комерційні ігри створюються командами розробників, найнятими однією фірмою. Фірми можуть спеціалізуватися на виробництві ігор для персональних комп'ютерів, ігрових приставок або планшетних комп'ютерів. Часто розробка фінансується іншою, більшою фірмою - видавцем. Фірма-видавець після закінчення розробки займається поширенням копій гри, бере він пов'язані з цим витрати. Буває, що фірми-видавці наймають команди розробників, або фірма-розробник самостійно (без участі видавців) розповсюджує копії ігор, наприклад, засобами цифрової дистрибуції (інді-гри).

    Розробка найбільш великобюджетних ігор може коштувати десятки мільйонів доларів США, причому протягом останніх десятиліть ці бюджети безперервно зростали, як і чисельність команд розробників і терміни розробки. Так, наприкінці дев'яностих гру для консолі PlayStation для кінцевого покупця - могла зробити команда з 10 осіб за рік, для PlayStation 2 (перша половина 2000-х років) необхідна була команда з 30-50 осіб і два роки розробки, до 2012 року мова йшлося вже про команди з понад 100 розробників і термін близько трьох років. За твердженням Алекса Мура, геймдизайнера з компанії Sumo Digital, якби ціна гри для кінцевого споживача зростала в тій же пропорції, ігри в 2012 році коштували б по 1800 доларів США; іншими словами, щоб окупити зрослі бюджети при збереженні тих же цін у магазинах, компанії-видавці мають продавати набагато більше копій ігор.

    Для російських компаній розробка середнього проекту коштує в середньому від 100 тисяч до мільйона доларів. Вартість розробки маленьких російських проектів іде від 10 тисяч доларів. Розробку зазвичай фінансує фірма-видавець, хоча останнім часом з'являються успішні приклади фінансових вливань з індустрій, які пов'язані з виробництвом ігор. Процес розробки звичайної сучасної гри займає близько року, для AAA-проектів може затягтися до 2-3 років, цикл розробки «казуальних» ігор займає близько 4-6 місяців, при тому що йде конвеєрна розробка відразу 2-3 проектів.

    Спеціалізації

    На початку 1980-х років після появи перших домашніх комп'ютерів та ігрових приставок один програміст міг керувати майже всіма завданнями, пов'язаними з розробкою гри. Розробка сучасних ігор передбачає наявність широкого кола навичок та персоналу підтримки. Для роботи над одним проектом потрібні цілі команди. До складу типової сучасної команди розробників зазвичай входять представники різних спеціалізацій:

    • Один чи кілька продюсерів для спостереження за виробництвом;
    • Геймдизайнери, або творці;
    • Художники;
    • Звукооператори:
      • творці звукових ефектів;

    Деякі члени команди можуть виконувати декілька функцій. Наприклад, продюсер може бути дизайнером або провідним програмістом. p align="justify"> Багатофункціональність була звичайним явищем на початку епохи відеоігор, а зараз, при розробці професійних ігор, зустрічається все рідше і рідше.

    Проектна документація

    Відколи над іграми стали працювати цілі колективи розробників, виникла необхідність документувати процес розробки. З одного боку, це певною мірою полегшує пошук колег та інвестицій, з іншого дозволяє планувати бюджет та координувати розробку. Зміст та перелік документів значно варіюються в залежності від рівня розробника, але ось 3 основні документи:

    • концепт-документ 2-6 сторінок тексту, наскільки можна, розведених ілюстраціями, показують основні особливості гри, з якого приблизно видно, які ресурси знадобляться на разработку
    • дизайн-документ - після того, як стає ясно, що етап препродакшіону буде пройдено, концепт-док починає обростати деталями і перетворюватися на дизайн-документ.
    • документ-пропозиція (англ. proposal document ) короткий опис гри, без внутрішніх деталей розробки, що пояснює потенційному інвестору, чому гра принесе прибуток
    • technical design document - у невеликих російських розробників, зазвичай, окремо не виділяється, визначає технічні вимоги до гри (типу полігонального бюджету, фпс, обсягу пам'яті, портованості, використання баз даних, протидія читам, використання многопоточности); визначає використовувані утиліти, мови програмування.

    Процес розробки

    Процес розробки гри зазвичай включає такі етапи:

    • підготовка («препродакшн» від англ. pre production);
    • уточнення геймдизайну;
    • виробництво;
    • підтримка.

    Етапи можуть змінюватися в залежності від переваг фірми та особливостей проекту.

    Передвиробничий процес (препродакшн)

    Зазвичай перед початком розробки будь-якої гри має сформуватися ідея, а видавець/розробник має дати «зелене світло».

    У більш поширеному випадку, якщо розробник та видавець є різними компаніями, ідея має бути запропонована керівництву, схвалена та виставлена ​​на розгляд видавцям. У цій справі може допомогти робоче демо, але воно не є обов'язковим для авторитетного видавця з гарною репутацією. Якщо зацікавленого видавця знайдено, можна розпочинати виробництво. Сьогодні ідея гри рідко запевняє, якщо в ній не зацікавлений видавець.

    Якщо розробник також є видавцем, або якщо вони є підрозділами однієї компанії, то схвалення має дати тільки вище керівництво. Однак, залежно від розміру компанії-видавця, може знадобитися кілька спроб, доки ідея не підніметься вгору через усі шари керівництва.

    Представником проекту зазвичай є геймдизайнер, але ним також може бути людина з ігрової індустрії будь-якої іншої посади. Перед початком повномасштабного виробництва геймдизайнер повинен написати дизайн-документ – докладний документ, що описує концепцію та геймплей. Також він може містити деякі попередні скетчі (ескізи, малюнки) різних аспектів гри. Деякі геймдизайнери включають до дизайн-документу навіть приблизний робочий прототип, що демонструє одну або кілька сторін гри. Зазвичай дизайн-документ поєднує в собі всі або більшу частину матеріалів початкового задуму. Основна особливість дизайн-документа – це його «живість» – насправді він не буде завершений доти, доки гра перебуває в розробці. Він може змінюватися щотижня, іноді – щодня. Тому, навіть якщо дизайн-документ повинен існувати у певній формі перед початком повномасштабного виробництва, він майже ніколи не є завершеним дизайном, хоча може описувати багато аспектів усіх стадій повністю спроектованої гри.

    Перед тим, як з'явиться схвалений дизайн, основна команда програмістів та художників може розпочати роботу над ідеями. Програмісти можуть розробити початкові прототипи демонстрації однієї чи кількох можливостей, які хочуть бачити у грі деякі посередники. Або вони можуть розпочати розробку каркасу, який, зрештою, використовуватиметься грою. Художники можуть намалювати ескізи як плацдарм для розробки реальних ігрових ресурсів. Спочатку продюсер може працювати над грою неповний робочий день, але підвищувати свою зайнятість у міру просування розробки.

    Виробництво

    На етапі основного виробництва виконується величезний обсяг робіт. Програмісти пишуть вихідний код, художники малюють графіку (спрайти або 3D-моделі ігрових елементів). Звукооператори розробляють звукові ефекти, а композитори пишуть музику для гри. Дизайнери рівнів створюють рівні, а письменники пишуть діалоги для скриптових сцен та неігрових персонажів.

    Весь цей час геймдизайнер доповнює та змінює ігровий дизайн, щоб відобразити поточне бачення гри. Деякі особливості або рівні можуть бути вилучені, деякі додані. Художнє трактування може еволюціонувати, а сюжет (передісторія) – змінитись. Може з'явитися нова цільова платформа, а також нова цільова аудиторія . Всі ці зміни мають бути задокументовані і більшість із них має з'явитися у дизайн-документі.

    З погляду часу, перший рівень гри розробляється довше за всіх інших. Оскільки дизайнери рівнів та художники використовують інструменти для створення рівнів, їм потрібні можливості та зміни внутрішніх інструментів. З появою нових можливостей деякі рівні можуть застаріти, тому до першого рівня гри можуть вноситися різні виправлення. Крім того, через динамічну природу розробки ігор, дизайнерське бачення першого рівня з часом може змінюватися. Досить звичайним є витратити перший рівень понад 12 місяців за загальної трирічної розробки гри. Наступні рівні можуть розроблятися значно швидше, тому що список можливостей стає повнішим, а бачення гри – більш ясним.

    Плани щодо аутсорсингу розглядають на етапі підготовки виробництва; саме тоді розраховують необхідні тимчасові та фінансові витрати на роботу, яка буде зроблена поза компанією-розробником.

    Російськомовні компанії, що займаються аутсорсинговою розробкою ігор: Infinity Apps