Не твоя проблема

image

Ти — цілеспрямований розробник ігор. Ти хочеш створити і випустити приголомшливу гру, щоб про неї дізнався світ. Це складно, набагато складніше ніж, скажімо, написати книгу. Гра — це алхімічна суміш мистецтва, особистого смаку, суворої математики, логістики та проектування. Дуже небагато можуть створити гру в поодинці, при цьому легко відволіктися, надто легко. Або ще гірше — зайнятися тим, що тобі не потрібно. Ти задоволений, багато чого вчишся, щось робиш, але гра не стає ближче до завершення, яке і є метою. Не забувай про цілі…

Фахівці

Проблеми фахівців — це не твої проблеми.
Ти підписаний в твіттері на таких крутих експертів, як @ID_AA_Carmack, @notch і @grumpygamer? Всі вони відмінні розробники успішно випущених ігор.

А ти вже випустив гру? Ні, правда? Тоді проблеми цих хлопців — не твої проблеми. У тебе зовсім інша проблема, що вимагає свого повного уваги: випуск завершеної гри. От і все.

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

Проблеми фахівців

image
Джон Кармак: «Я радий, що ми нарешті забезпечили підтримку C++11 в базі коду Oculus для мобільних пристроїв. Там є купа місць, де unique_ptr дуже допоможе.»

Ой-ой-ой, а я використовую GameMaker! Я не справжній програміст, викину-ка весь проект в смітник! Треба терміново замовити на Amazon шість книг по C++11.

Зупинись! Використання розумних покажчиків — не твоя проблема. Щоб випустити гру, тобі потрібно для початку викинути з голови покажчики. Як ти будеш виконувати збірку гри? Як забезпечиш її роботу на чужому комп'ютері? Цілі ігрові студії ледве з цим справляються, адже у них команди часто складаються з сотень людей. Це не твоя проблема.

У фахівців багато проблем: хейтеры в Інтернеті, фанати просять інновацій, фанати просять залишити все як є, великі колективи, бюрократія, яка виникає у великих колективах, особлива бюрократія, яка виникає у великих колективах кодерів (методологія Scrum, ставлення до співробітників як до ресурсів, планірки, спори про невимитий посуд в раковині — загалом, проблеми фахівців).

Сама суть

Ось твої проблеми за ступенем важливості.

  1. Придумати гру, яку ти можеш зробити, і
    • Яку оцінить (а може і купить!) хтось ще.
    • Яку ти зможеш зробити менше, ніж за місяць. Так, саме.

  2. Знайти готовий движок
    • В якому вже створювали комерційні ігри.
    • В якому можна розробляти ігри швидко.

    • Який сам займається складанням.
    • А якщо ти вже знайомий з ним, то взагалі чудово.
  3. Закінчити гру
  4. Продати її (або викласти)
  5. Прорекламувати її
  6. відгуки
  7. GOTO 1
Якщо у вибраному движку ти не можеш за півдня створити клон Pong, що інші люди зможуть зіграти вперше, отже, вибір був невірним і тебе з'їсть Гру.

А ось проблеми, які не твої.

  1. Створення движка на C++
    • Немає
    • Неееееет

    • Неа
  2. Переписування бібліотеки STL C++, щоб вона не займала так багато пам'яті
    • *Стримувані ридання*

  3. Вивчення способів створення багатоплатформених збірок
    • Навчитися make
    • Потім cmake (make — для лохів!)

    • Потім premake (cmake — фігня)
    • Потім Jam (пфф, premake!)
    • І так він опускався все глибше в темряву безодні. Ми знаємо, що більше не побачимо його особи. Він втрачений для нас. Ще одне дитя Адама заблукало в темряві.
  4. Почати писати клас Vector
    • Хм, краще подивитися в операції SIMD
    • Потім матриці, кватерніони, пекло інтеграції OpenGL на будь-який смак для шести платформ. Ой, стривайте-но, адже краще створити ще й загальний шар абстракції для підтримки DirectX. І матеріал для металу. А, потрібен якісний проміжний мова написання шейдерів!
      • Ні сліз.
      • Ні жалю.

      • Ні надії.

  5. Спори про всяку фигне в інтернетах
    • Мову X краще мови Y
    • Бібліотека краще X Y

    • Платформа
    • Методологія програмування
    • Треба прагнути до 60 FPS (правильна відповідь: ні.)
  6. Вивчення програмування шейдерів
    • Це було твоєю метою? Ні? Тоді ВИСТАЧИТЬ. Роби гру.
    • Тобі потрібна якась техніка? Ну добре, продовжуй...
      • … але з обережністю.
  7. Автоматизовані системи документування
    • Doxygen
    • cldoc

    • Закопуйте його
  8. Локалізація
    • Nooooo
    • Nein

    • Non
    • ヤダー
    • Займаєшся нею, як і всім іншим, після релізу.
  9. Оптимізація
    • «Ігри — це дослідницьке програмування»
      • Ти викинеш цей код
      • Буде не важливо, наскільки швидко він ворушиться на дні кошика для сміття.

    • Ти будеш займатися нею, поки код не стане швидким, або таким повільним, що не захочеться продовжувати
  10. Написання багатотомних диздоков
    • малювання UML-діаграм (Відкрию секрет: ніхто цим не займається.)
    • Розробка через тестування.
      • — Ні.
  11. Створення редактора рівнів
    • Не піддавайся спокусі
    • Якщо очевидно, що це заощадить час, створи МІНІМАЛЬНИЙ редактор. Не тіш себе думкою, що він стане в нагоді в майбутньому.

    • MFC (Тут тобі краще просто вийти з-за комп'ютера, взяти молоток і вдарити себе по пальцях. Це буде менш болісно.)
    • Qt — нееееет
    • .NET — неа
    • Прості текстові файли з динамічною перезавантаженням в редакторі
      • Дивно, але так
  12. XML
    • Немає
    • Написання власного парсера XML
      • Який працює з просторами імен!
        • Немає

    • SOAP
      • Ти так далеко зійшов з шляху розробки ігор, що вже не бачиш його.
    • JSON, YAML, MessagePack
      • ні, ні, Ні
  13. Boost!
    • Усыпите нас обох. Дороги назад вже немає. Це точка неповернення.
У всьому цьому немає нічого поганого, але займаючись такими речами, ти ніколи не випустиш гру. Через кілька років колупання в тебе буде відмінний самописний движок, але ти залишишся на першій клітині поля. Створи і випусти гру.

Поради

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

改善 — кайдзен
Все японське — це круто, чи не так? Ну, якщо подумати, можна знайти кілька винятків. А взагалі в Японії є те, що, без сумніву, чудово — це Toyota. Так, люди, що роблять автомобілі! Вони, як Генрі Форд двотисячних, створюють безліч цікавих бізнес-інновацій. І адже всі ми завжди готові поговорити про бізнес-інновації? Правда?

Ну ладно, пора прокинутися!

Компанія Toyota популяризувала відмінний метод кайдзен: постійне удосконалення. Коротко описати цю техніку можна як світогляд, спрямований на постійний пошук областей для поліпшення процесу розробки. Невеликих поліпшень, нехай на 1%. Жодних революцій.

Вибери мінімальний крок, який може поліпшити процес і наблизить тебе до мети.
Коли я думаю про кайдзен у світлі розробки ігор, я ігнорую те, що стосується процесу і розглядаю цей метод як питання: «Яке мінімально можливу дію я можу зробити, щоб гра наблизилася до релізу?» Це може бути створення одного рівня або швидке накидывание усіх рівнів при першому етапі доведення. Це може бути складання списку потрібних звуків і відправка його аутсорсеру. Важливо завжди рухати процес розробки вперед.

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

Почни з малого

Це буде твоя перша гра? О, тоді тебе чекають проблеми.

Почни з малого! Дійсно малого. Маленького як Pong. Вибери саму маленьку гру, яку зможеш зробити, і пройди з нею весь процес розробки. Завдяки цим муках ти отримаєш з перших рук мудрість, яка недоступна людям, роками пыхтящими над своєю першою грою.

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

Вибери те, що надихає тебе

Мета, яка надихає тебе, але не занадто масштабна або складна! Фактор X для будь-якої гри — це ти, з своїми унікальними поглядами на дизайн ігор, своїм світовідчуттям, яке ти можеш виразити через гру. Не бійся вносити власні штрихи.

Чим більше тебе надихає проект, тим простіше буде закінчити.

Завершення — це навичка

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

Завершення підвищує упевненість в собі і дозволяє бути раціонально амбітним.

Споживай менше

Прочитання 20 статей про розробку ігор в день схоже на роботу. Так це і є робота! Але даремна, непродуктивна робота: ти топчешься на місці.

Проводь менше часу на Gamasutra, TIGSource, r/gamedev/ (або де там ще тусуються круті хлопці в наші дні), і витрачай трохи більше часу на роботу над проектом.

Дай свого внутрішнього голосу і інтуїції трохи розвернутися!

Поділися

Розповідай про те, що робиш, що відчуваєш, які проблеми у тебе виникають і т. д. Багато розробники, які ведуть бій зі своїми проектами, знайдуть для тебе слова підтримки. Крім того, ти отримаєш зворотний зв'язок, а вона зробить тебе краще.

Висновок

Вистачить читати, приступай до справи!
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.