У чому небезпека розвитку самонавчальної гри? [зачинено]


58

Я збираюся здійснити подорож у розвитку ігор. Після відповіді на моє останнє запитання я буду використовувати C # і XNA.

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

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

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

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

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


Погляньте, річ із уроками із спільного використання може перетворити запитання як відкритий та визнати його недійсним, тож воно може закритися.
Густаво Масель

Це хороший момент. Будь-який відвідувач я планую прийняти вичерпну відповідь.
Ste

Сте, майте на увазі, що ви можете перенести галочку на іншу відповідь, якщо ви вважаєте, що нова краще. Мої вибачення перед Густаво, не намагаючись коштувати йому реп :) Але суть цих сайтів, а також голосування та контрольні позначки - це підкреслити найкращу відповідь на питання. Крім того , хоча це здорово , що ви зробили прийняти відповідь, це не потрібно приймати той , який швидко - через годину після того, як ваш публікується питання, трохи в найближчим часом . Я зазвичай чекаю хоча б день, а може і більше, перш ніж приймати відповідь. Подивіться, що з’являється.
Циклопи

@Cyclops - так, я не очікував, що питання виявиться таким популярним. Я перегляну наступного тижня. Дякую всім за чудові відповіді на даний момент.
Ste

Дякую за всі чудові відповіді. Я перемістив прийняту відповідь до тієї, що отримала найбільше відгуків. Я зробив це, щоб відобразити думку громади. Сподіваюся, ви зрозуміли @Gustavo
Ste

Відповіді:


54

Розвиток гри - це як інженерна конструкція

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

Наступна частина - велика частина. Форма частина. Форма - це те, що справді відрізняє хороші ігри від чудових ігор. Це та частина мистецтва розвитку ігор. Я не кажу лише про сенсорні активи (графіка, звук тощо?). Я говорю про крафт-досвід. Це важка частина.

Функціональна частина походить з навчальних посібників, бібліотек та небагато часу. Будь-хто може це зробити.

Частина форми походить від вас. Саме пристрасть спонукає вас робити ігри в першу чергу. Це як розповісти історію, складену історію (або справжню історію, яку ви прикрашаєте, багато). Чим більше ви розповідаєте історію, тим краще вона стає. У розробці програмного забезпечення ми називаємо це ітерацією. Ваша історія - ваш код. Перший раз, коли ви це скажете, це буде не дуже добре. Речі будуть не на своєму місці, ви зрозумієте, що цей шматочок повинен піти туди і той тут. Ви побачите, що, ймовірно, все буде краще, якщо ви впорядкували речі таким чином або розширили цей біт. Отже, як добру історію, ви розкажете її, оцініть, наскільки вона хороша, а потім змініть її. Це вимагає самовіддачі, і це вимагає часу. Не бідайте, якщо перше, що ви робите, - це не золото. Я працював довго і наполегливо над багатьма частинами своєї гри, лише щоб вирвати їх пізніше, тому що багато чого думавкращий спосіб зробити це. Не хвилюйтеся з цього приводу, це все є частиною навчального процесу. Ти завжди вчишся на своїх помилках, і часто робиш ці помилки - це те, що веде тебе до кращого способу ведення справ.

Тож, від чого вам слід узяти це:

  • Грайте в тест часто.
  • Не захоплюйтесь функцією прямо зараз. Не хвилюйтесь багато про оптимізацію, або яка бібліотека буде найкращою в перспективі. Просто отримайте мінімальний функціонал, а потім повторіть.
  • Після того, як функція виконана, привітайте себе, ви невелика частка зробленого шляху.
  • Носіть екран сонця
  • Це вміння, яке потребує часу, щоб розвиватися, ви знаєте, що, вивчивши музичний інструмент, це нічим не відрізняється, вам стане краще.
  • Пам’ятайте, для чого вам це, радість творити! Якщо вам стає нудно, перейдіть на щось інше (спробуйте кілька ігрових заторів, щоб розподілити час свого розвитку). Але не киньте тільки тому, що це важко.
  • Спільнота розвитку ігор тут, на SE, чудова. Тут ви знайдете все необхідне. Ви можете залишити запитання або перейти в чат і обговорити свої ідеї.

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


6
+1 для дивовижності, все, чого не вистачає на моєму дописі, можна знайти тут: D
Gustavo Maciel

1
"Носіть сонячний екран" Що ви маєте на увазі під цим? ідіома "Носити сонцезахисний крем"?
Лукаш Мадон

4
Це жарт на основі статті «Носіть сонцезахисний крем» Мері Шміх . В основному, "довгострокові переваги сонцезахисного крему були доведені вченими, тоді як решта моїх порад не має основи, більш надійної, ніж мій власний досвід". Можливо, більш відома у формі цієї пісні .
MichaelHouse

4
Ну, сонцезахисний крем насправді не так добре 2 . Просто залишайтеся в приміщенні і продовжуйте програмувати.
bobobobo

28

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

Хорошими прикладами є:

  • http://blog.wolfire.com - Блог творців lugaru та творців нового заростання. Крім того, вони також діляться методиками і дають кілька навчальних посібників з важливих речей з ігрового розробника, як серія Linear Algebra для розробників ігор. Дуже корисні люди.
  • http://cowboyprogramming.com/ - Блог Міка Веста, співавтора Neversoft , він зробив серію Pro Skater Tony Hawk Pro!
  • http://positech.co.uk/cliffsblog/ - Творець Кудосу та Демократії. Він збирається випустити нову гру, яку варто подивитися.
  • http://2dboy.com/ - Творці World Of Goo, прототип якого став гарячкою колись тому.

І багато іншого!

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


3
Щоб додати до цього, навіть у професіоналів часто виникає ця проблема. Поки ви можете навчитися і Google, ви можете зрозуміти майже все.
ashes999

Дивно, що ви пов'язуєте 2Dboy. Наскільки мені відомо, вони зробили мало речей, окрім портів World of Goo на всіх платформах, які коли-небудь існували протягом останніх кількох років. Минуло давно, як я прочитав там щось, що стосується гамедев.
TravisG

@TravisG Процес releaseгри пов'язаний не лише з розвитком. Все одно добре читати. Я розмістив посилання більше як посилання, щоб не слідкувати за блогом. Якщо ви повернетесь до архіву, є кілька прикладів прототипів, і все, що допомогло їм зі світом goo та іншими «менш маленькими» прототипами: D
Густаво Масьєль

18

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

Ви бачите таке ставлення серед початківців розробників усіх типів, хоча - не лише ігор. Веб-сайти. Привіт, веб-сайт - це база даних із переднім кінцем html з деяким javascript. Ви вивчаєте технології будь-яким способом, ви склали свій перший сайт. Це не буде фантастичним, але робити речі на неоптимальному рівні - це не велика вигадка !! Якщо ви зробите це "довгим шляхом" перший раз, ви завжди можете це зробити краще вдруге. Моя думка, небезпеки немає. Окрім цього ставлення, можливо. Таке ставлення - це те, що заважає вам коли-небудь робити щось, тому що ви завжди будете брати на себе завдання і говорити "Я ще не знаю, як це зробити".

Ставлення до того, що існує "правильний спосіб" робити речі. Немає. Речі точно такі, як здаються. Ви повинні розміщувати пікселі на екрані та видавати звуки, коли щось відбувається.


3
Такий справжній. Це все ще мене дуже стримує. Хоча я якось не погоджуюсь, з точки зору, є ще кілька "правильних способів", і набагато більше "неправильних способів", але перфекціонізм та параліч аналізу певним чином можуть бути проблемою. Чудова відповідь!
Петро Абдулін

6

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

  1. Почніть з малого

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

  1. Вчіться ВСЕ

Це може здатися трохи екстремальним, але, що я маю на увазі, це дізнатися скільки завгодно про КОЖЕН аспект розвитку гри - незалежно від того, чи ви чи кодер, художник чи дизайнер чи ні. Знання трубопроводу є ключовим для побудови речей найефективнішим способом. Якщо ви реалізуєте зброю -> спроектуйте її, задумайте її, моделюйте, впроваджуйте, кодуйте! Вам, очевидно, не потрібно бути дизайнером, дизайнером та ботаніком Pipeline - але ви повинні бути знайомі з усіма інструментами процесу та розуміти кожен крок створення. Крім того, ознайомтеся з ігровими веб-сайтами, щоб дізнатись про новини та оновлення в бізнесі - gamasutra.com, kotaku та ін. Не обмежуйтеся лише однією сферою розвитку - занурюйте ВСІ знання, які ви можете отримати :)

  1. Невдача часто, невдача.

Ви будете смоктати те, що робите. На початку. Це завжди так (повірте, я знаю.: D), але це стане краще лише, якщо ви продовжуватимете роботу і НІКОЛИ не перестанете шукати шляхи вдосконалення своєї роботи. Інтернет - чудове джерело для навчальних посібників, довідок та допомоги. Ви ніколи не будете по-справжньому зациклюватися, тому вплутайтеся в наймудріші ідеї, не вдавайтеся, вчитеся на своїх помилках і станьте більш поганими при цьому процесі.

  1. Поговоріть з людьми!

Хоча Інтернет є чудовим джерелом, отримання зворотного зв’язку - це те, з чим вам доведеться мати справу ВСІМО. Тому важливо також вдосконалити свої м'які навички. Якщо ви ще не маєте наставника, або взагалі не знаєте занадто багато людей, які працюють в галузі, тоді вам слід оглянути місцевості, щоб побачити інді-дев, зустрітися з новинками, сходити на конвенти та перевірити інші події, з яких ви можете почати будувати особиста мережа знань та контактів. Це також допомагає побудувати щось із іншими людьми - самоучка - це чудово, але розробка ігор - це командна гра, тому перегляньте форуми на хобі-проект - наприклад, Epic Forum для UDK-проектів, форуми Unity або навіть форуми CryEngine -всь три з цих двигунів широко розповсюджені, там є вантажівка талановитих людей, які працюють над побічними проектами, і вони '

Я думаю, що це майже всі поради, які я можу дати. Я сподіваюся, що це вам в чомусь допомогло :)


Усі ваші бали настільки важливі, вони №1 у цьому списку! :)
bobobobo

3

У мене взагалі немає досвіду C # та XNA, але я думаю, що це не зробить мене помилкою у наступному твердженні:

Цілком чудово вчитися програмуванню без вчителя. Якщо ваш код працює *, він насправді не має значення, як він був закодований. Добре, це для спільного програмування, але тоді ви більше не будете кодувати самотужки, чи не так? Це також може зробити ваш код менш читабельним для вас у майбутньому, що ускладнить використання старих компонентів або налагодження нових помилок, але з часом всі ваші помилки стануть вашими сильними сторонами. Найскладніше в навчанні дизайну OOP та MVC - це розуміння того, чому я повинен робити "це" таким чином ". Якщо у вас вже є досвід створення поганих програм, ви знатимете сильні сторони моделей і використовуватимете їх на вашу користь. Якщо ви завжди робили хороші програми, дотримуючись зразків, які хтось навчав вас, тоді ви будете продовжувати робити хороші (в розумінні дійсного коду) програми, але замість того, щоб скористатися шаблонами, ви будете обмежені ними, оскільки ви їх не зрозумієте достатньо, щоб зробити корисні зміни. Зрештою, найважливіше, що ви практикуєте, а не як, тому в обох випадках рано чи пізно ви отримаєте досить схожий досвід.

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


3

Якось це чудове питання! :-)

Я не так давно почав займатися гамедевом, і це буде другий раз, тому я можу поділитися своїми думками. Ви насправді маєте рацію щодо того, що добре мати наставника. Цей наставник буде Інтернетом. Отже, чим більше інформації поділятиметься в Інтернеті, тим простіше вам буде дізнатися. Ось чому XNA / C # - відмінний вибір для початку. Є багато як любителів, так і професійних інди-гамедев, які діляться статтями та в Інтернеті. Інші речі, які слід зазначити:

  1. Ідіть з відкритим кодом! Codeplex, GitHub, Google.Code, Bitbucket. Там є багато цінних речей.
  2. Ідіть до громади! Ви тут, і це добре. Але також є велике співтовариство Microsoft XNA з хорошими офіційними речами . Codeproject - це також хороший ресурс (проте активність гамедев там досить низька).
  3. Напевно, вам доведеться багато читати / дивитися . Вже згадувалося раніше. Розробка ігор - це не тільки кодування. Дизайн гри також важливий. Ентузіазм важливий.
  4. Як завжди, не намагайтеся відразу перекусити, написання власної копії тетрису або прориву - це насправді хороша ідея.
  5. На початку це може бути важко, розробка ігор не тільки насправді важка, вона також сильно відрізняється від прикладних «корпоративних» додатків. Є багато нових аспектів, графіка, звук і т. Д. Чим більше ви їдете, тим легше (як зазвичай).
  6. Напишіть блог. Висловіть свій процес розробки (в цьому процесі ви знайдете відповіді на власні запитання), зберігайте посилання з коментарями до цінних статей.
  7. Не думайте, що ваш код - це найгірше, що ви коли-небудь бачили. Ігровий код важче контролювати, він завжди якось брудніший, ніж чийсь гарний "корпоративний" код. Але запевняю, там я бачив жахливі творіння (з точки зору якості вихідного коду та організації ігор), які були успішними інді-іграми. Отже, не будьте суворими над собою, особливо. на початку.

1

Це стосується будь-якої дисципліни, пов'язаної з творчою індустрією:

Найбільшою небезпекою є спроба побудувати щось надто велике або «епічне» поза воротами.

Наприклад, якщо ви починаєте займатися музикою, ви не почали б намагатися скласти симфонію 50-годинної 2-х годинної музики.

У дизайні рівнів це виявляється як намагання зробити "найбільшу карту коли-небудь", або використовуючи ігрову систему для побудови найбільшої і найскладнішої речі, з якою ігровий движок здатний працювати. У програмуванні це може перетворитись на «виготовлення всієї гри самостійно», починаючи з нульового вихідного коду. Вам потрібно дуже багато досвіду та дисципліни, щоб почати з нульового джерела, і навіть тоді це неймовірно важко, і приймати дизайнерські рішення над усім важко весь час, коли ви розробляєте дизайн всього. Навіть спрощена гра вимагає досить великої кількості програмування в сучасній ОС та мові в наші дні. Крім того, якщо ви почнете з коду elses код, ви можете дізнатися, що працює, а що не так добре, тому робота з якомога більшою кількістю двигунів є також величезним плюсом.

Тож для початку я б рекомендував щось на зразок наступних планів:

  • Дизайн рівня: побудуйте маленьку кімнату, побудуйте половину будівлі, побудуйте повноцінну будівлю тощо
  • Мистецтво: зробіть капелюх для TF2 або щось подібне просте, або якусь заміну текстури для Skyrim або якусь іншу задачу щодо розміру укусу, щоб розпочати роботу, перш ніж потрапляти в скелетні або морфійні сітки та з'ясувати, як їх анімувати чи фарбувати в zbrush.
  • Програмування: візьміть існуючий ігровий движок, що змінюється, або з відкритим кодом, і змініть його частину (наприклад, зброю), а потім зробіть нову зброю. Якщо вам не сподобається геймплейний код, ви можете почати злом на графічному двигуні.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.