Каковы опасности разработки игр для самообучения? [закрыто]


58

Я собираюсь отправиться в путешествие по разработке игр. Следуя ответам на мой последний вопрос, я буду использовать C # и XNA.

Тем не менее, я лично не знаю других разработчиков игр, и я не работаю в индустрии, поэтому, как таковой, буду самоучкой. Исключением из этого является, очевидно, задание вопросов и чтение онлайн / печатной информации, но я все равно отнесу это к самообучению.

При этом я хочу быть готовым к проблемам, с которыми я могу столкнуться из-за отсутствия кого-то, кто «держит меня под своим крылом».

В качестве аналогии, когда я учила себя играть на гитаре, я играла мажорный аккорд так, что это усложняло переход к аккорду, который я позже выучила.

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

Я хорошо знаю, что ошибки - это самая большая часть обучения, но если есть ошибки, к которым я могу быть готов, я был бы счастлив с этим.


Взгляните, возможность делиться уроками может превратить вопрос в открытый и лишить законной силы, поэтому он может быть закрыт.
Густаво Масиэль

Неплохо подмечено. Для любого посетителя я планирую принять исчерпывающий ответ.
Ste

Ste, имейте в виду, что вы можете переместить галочку в другой ответ, если вы считаете, что новый лучше. Приношу свои извинения Густаво, не пытаясь обойтись им, репутация :) Но смысл этих сайтов, а также голосования и пометок в галочках, состоит в том, чтобы выделить лучший ответ на вопрос. Кроме того , хотя это здорово , что вы сделали принять ответ, это не нужно принимать тот , который быстро - через час после того, как Опубликованный вопрос, немного в ближайшее время . Я обычно жду хотя бы день, а может и больше, прежде чем принять ответ. Посмотрите, что появляется.
Циклоп

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

Спасибо за все отличные ответы. Я переместил принятый ответ на вопрос с наибольшим количеством голосов. Я сделал это, чтобы отразить мнение сообщества. Надеюсь, вы понимаете @Gustavo
Ste

Ответы:


54

Разработка игр похожа на конструкцию

Есть минимальные требования к функциональности. Минимальные требования не являются исключительно сложными, и многие люди могут научиться их выполнять. Это функциональная часть. Это маленькая часть. Вот где приходят решения о том, какой язык использовать, какую платформу разрабатывать или какие библиотеки использовать.

Следующая часть - большая часть. Форма часть. Форма - это то, что действительно отличает хорошие игры от отличных игр. Это та часть, которая является искусством разработки игр. Я не говорю только о сенсорных активах (графика, звук и т. Д.?). Я говорю о создании опыта. Это сложная часть.

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

Часть формы исходит от вас. Это страсть, которая заставила вас хотеть делать игры в первую очередь. Это все равно что рассказывать историю, выдуманную историю (или реальную историю, которую вы приукрашиваете). Чем больше вы рассказываете историю, тем лучше она становится, В разработке программного обеспечения мы называем это итерацией. Ваша история - это ваш код. В первый раз, когда вы скажете это, это будет не очень хорошо. Вещи будут неуместны, вы поймете, что этот бит должен идти туда, а этот здесь. Вы обнаружите, что, вероятно, дела пойдут лучше, если вы упорядочите вещи таким образом или расширите их. Итак, как хорошая история, вы расскажете ее, оцените, насколько она хороша, а затем измените ее. Это требует самоотверженности и времени. Не волнуйтесь, если первое, что вы производите, это не золото. Я долго и упорно работал на многих частях моей игры только , чтобы разорвать их позже , потому что я думал о многолучший способ сделать это. Не беспокойтесь об этом, это все часть процесса обучения. Вы всегда учитесь на своих ошибках, и часто эти ошибки приводят вас к лучшему способу ведения дел.

Итак, что вы должны отнять это:

  • Играть тест часто.
  • Не увлекайтесь этой функцией прямо сейчас. Не беспокойтесь об оптимизации или о том, какая библиотека будет лучшей в долгосрочной перспективе. Просто получите минимальную функциональность, затем итерируйте.
  • Как только функция закончена, поздравьте себя, вы сделали небольшую часть проделанной работы.
  • Носить солнцезащитный крем
  • Это навык, который требует времени для развития, вы знаете, что от изучения музыкального инструмента, это ничем не отличается, вы поправитесь.
  • Вспомни, для чего ты в этом, радость творчества! Если все становится скучно, переключитесь на что-то другое (попробуйте несколько игровых джемов, чтобы сократить время разработки). Но не увольняйся только потому, что это сложно.
  • Сообщество разработчиков игр здесь, на SE, великолепно. Здесь вы найдете все, что вам нужно. Вы можете оставить вопрос или перейти в чат и обсудить свои идеи.

Интернет полон перьев информации в блогах, учебниках и сообществах, подобных этому. В целом, я бы сказал, что это довольно хорошее крыло. В основном опасности не являются серьезными. Вы можете делать что-то «неправильно» или какое-то сложное время, но со временем вы научитесь. Кажется, у вас достаточно опыта программирования, поэтому я думаю, что вы быстро освоите функциональную часть. Ошибки, допущенные при разработке игр и «регулярном» развитии, во многом совпадают. Ваш опыт поможет вам избежать многих распространенных проблем, с которыми сталкиваются новые разработчики игр. Я думаю, у тебя все будет хорошо. Удачи.


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

1
"Носи солнцезащитный крем" Что ты имеешь в виду под этим? идиома "носить солнцезащитный крем"?
Лукаш Мадон

4
Это шутка, основанная на статье Мэри Шмих "Wear Sunscreen" . По сути, «долгосрочные преимущества солнцезащитного крема были доказаны учеными, тогда как остальная часть моего совета не имеет оснований, более надежных, чем мой собственный извилистый опыт». Возможно, более популярно известно в форме этой песни .
MichaelHouse

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

28

Да, не иметь кого-то, кто был там раньше, чтобы сказать вам, что делать, как исправить, и т.д. Но никаких страхов! Вы все еще можете прочитать МНОГО блогов людей, которые были там, они делятся своим опытом в отрасли, как они добились успеха, как провалилась предыдущая игра и почему, и т. Д. И т. Д.

Хорошие примеры:

  • http://blog.wolfire.com - блог создателей лугару и создателей новых зарослей. Кроме того, они также делятся техниками и дают некоторые учебные пособия по важным аспектам разработки игр, такие как серия « Линейная алгебра для разработчиков игр ». Очень полезные люди.
  • http://cowboyprogramming.com/ - Блог Мика Уэста, одного из создателей Neversoft , он сделал серию про Скейтеров для Tony Hawk!
  • http://positech.co.uk/cliffsblog/ - Создатель славы и демократии. Он собирается выпустить новую игру, которую стоит посмотреть.
  • http://2dboy.com/ - Создатели World Of Goo, прототипа, который стал лихорадить некоторое время назад.

И многое другое!

Мои последние высказывания: не бойся. Я тоже самоучка, 4 года я познакомился с разработчиком игр, много препятствий, но ничего, что вы не можете решить, поискать в Google и читать некоторые тексты. Удачи в вашем путешествии :)


3
Чтобы добавить к этому, даже профессионалы часто имеют эту проблему. Пока вы можете учиться, и Google, вы можете выяснить почти все, что угодно.
ashes999

Странно, что вы связываете 2Dboy. Насколько я знаю, они сделали несколько вещей, кроме портов World of Goo для всех платформ, которые когда-либо существовали в течение последних нескольких лет. Прошло много времени с тех пор, как я читал что-то, связанное с gamedev.
TravisG

@TravisG Процесс releaseигры связан не только с его разработкой. В любом случае, это хорошее чтение. Я разместил ссылки больше как ссылки, чтобы не следить за блогом. Если вы вернетесь к архиву, есть несколько примеров прототипов и всего, что помогло им с миром слизи и других «менее маленьких» прототипов: D
Густаво Масиэль

18

Это отношение. Это отношение «не трогай его, пока ты не умеешь делать это идеально». Это действительно тебя сдержит.

Вы видите такое отношение среди начинающих разработчиков всех видов - не только игр. Сайты также. Эй, веб-сайт - это база данных с html-интерфейсом и некоторым javascript. Вы изучаете технологии любым способом, вы создаете свой первый сайт вместе. Это не будет фантастическим, но после того, как вы сделаете что-то неоптимальным способом, это не большая проблема ! Если вы делаете это «далеко» в первый раз, вы всегда можете сделать это лучше во второй раз. Суть в том, что опасности нет. За исключением этого отношения, возможно. Именно это отношение остановит вас от каких- либо действий, потому что вы всегда будете препятствовать выполнению задания и говорить: «Я пока не знаю, как это сделать».

Отношение, что есть «правильный путь» делать вещи. Нет Все именно так, как они кажутся. Вы должны поместить пиксели на экран и издавать звуки, когда что-то происходит.


3
Это точно. Это все еще сильно меня сдерживает. Хотя я как-то не согласен, с точки зрения, есть еще несколько «правильных» способов и гораздо больше «неправильных», но перфекционизм и паралич анализа, безусловно, могут быть проблемой. Отличный ответ!
Петр Абдулин

6

В зависимости от того, хотите ли вы позже сделать эту профессию своей профессией (я просто собираюсь предположить, что вы думаете об этом, и это не просто хобби), вот что я нашел чрезвычайно эффективным:

  1. Начните с малого

Это было сказано ранее, но я скажу это снова - начните с маленьких кусочков, ознакомьтесь с движком, фреймворком, инструментом или программой. Как только вы поняли основы -> иди больше.

  1. Узнайте все

Это может показаться немного экстремальным, но я имею в виду как можно больше узнать о КАЖДОМ аспекте разработки игры - независимо от того, являетесь ли вы программистом, художником или дизайнером. Знание конвейера является ключом к созданию вещей наиболее эффективным способом. Если вы реализуете оружие -> проектируйте его, разрабатывайте, моделируйте, реализуйте, кодируйте! Очевидно, вам не нужно быть концептуальным художником, дизайнером и ботаником-разработчиком, но вы должны быть знакомы со всеми инструментами этого процесса и понимать каждый шаг создания. Кроме того, посетите игровые веб-сайты для получения новостей и обновлений в бизнесе - gamasutra.com, kotaku и т. Д., У всех есть отличные статьи на темы бизнеса и техники. Не ограничивайте себя только одной областью развития - впитайте ВСЕ знания, которые вы можете получить :)

  1. Часто терпят неудачу, терпят неудачу сильно.

Ты будешь сосать то, что делаешь. В начале. Это всегда так (поверьте мне, я знаю.: D), но будет только лучше, если вы продолжите идти и НИКОГДА не перестанете искать способы улучшить свою работу. Интернет является отличным источником учебников, ссылок и помощи. Вы никогда не будете по-настоящему застревать, так что принимайтесь за сумасшедшие идеи, терпите неудачу, учитесь на своих ошибках и становитесь более задиристыми в этом процессе.

  1. Поговори с людьми!

Хотя Интернет является отличным источником информации, вам нужно иметь дело с ЛИЧНОЙ обратной связью на работе ALOT. Так что улучшение ваших мягких навыков также важно. Если у вас еще нет наставника или вы вообще не знаете слишком много людей, работающих в отрасли, вам следует осмотреть свой район, чтобы встретиться с независимыми разработчиками, пойти на конгрессы и проверить другие мероприятия, на которых вы можете начать строить личная сеть знаний и контактов. Это также помогает создавать что-то с другими людьми - самоучка - это здорово, но разработка игр - это командная игра, поэтому проверьте форумы на предмет хобби-проекта - например, Epic Forum для проектов UDK, форумы Unity или даже CryEngine Forums - все три из этих двигателей широко распространены, там есть куча талантливых людей, работающих над сайд-проектами, и они

Я думаю, что это в значительной степени все советы, которые я могу дать. Я надеюсь, что это помогло вам в некотором роде :)


Все ваши очки так важны, они # 1 в этом списке! :)
bobobobo

3

У меня нет опыта работы с C # и XNA, но я думаю, что это не сделает меня неправым в следующем утверждении:

Это прекрасно, чтобы учиться программированию без учителя. Если ваш код работает *, не имеет значения, как он был закодирован. Ну, это подходит для совместного программирования, но тогда ты больше не будешь писать код, не так ли? Это также может сделать ваш код менее читаемым для вас в будущем, затрудняя использование старых компонентов или отладку новых ошибок, но в конечном итоге все ваши ошибки будут вашими сильными сторонами. Самое сложное в изучении ООП и MVC-дизайна - понять, почему я должен делать «это» «таким образом». Если у вас уже есть опыт создания плохих программ, вы будете знать сильные стороны шаблонов и использовать их в своих интересах. Если вы всегда создавали хорошие программы, следуя шаблонам, которым вас учили, то вы будете продолжать создавать хорошие (в смысле правильного кода) программы, но вместо того, чтобы использовать преимущества шаблонов, вы будете ими ограничены, поскольку не будете понимать их достаточно, чтобы вносить полезные изменения. В конце концов, очень важно, чтобы вы практиковали, а не как, поэтому в обоих случаях рано или поздно вы получите довольно похожий опыт.

* важно одно! В случае безопасности Вы должны спросить кого-то опытного, хорошо ли работает Ваш код, поскольку дыры в безопасности не выдают сообщения об ошибках.


3

Почему-то это отличный вопрос! :-)

Я начал свою игровую деятельность не так давно, и это будет во второй раз, поэтому я могу поделиться своими мыслями. Вы действительно правы в том, что хорошо иметь наставника. У этого наставника будет интернет. Таким образом, чем больше информации будет распространяться в интернете, тем легче вам будет учиться. Вот почему XNA / C # - отличный выбор для начала. Есть много как любителей, так и профессионалов, которые делятся статьями и в Интернете. Другие вещи, чтобы упомянуть:

  1. Перейти с открытым исходным кодом! Codeplex, GitHub, Google.Code, Bitbucket. Там очень много ценных вещей.
  2. Перейти в сообщество! Вы здесь, и это хорошо. Но также есть большое сообщество Microsoft XNA с некоторыми хорошими официальными материалами . Codeproject также является хорошим ресурсом (однако активность gamedev там довольно низкая).
  3. Возможно, вам придется много читать / смотреть . Уже упоминалось ранее. Разработка игр - это не только кодирование. Дизайн игры тоже важен. Энтузиазм важен.
  4. Как обычно, не пытайтесь кусать много сразу, написание собственной копии тетриса или прорыва на самом деле хорошая идея.
  5. Это может быть сложно в начале, разработка игр не только сложна, но и сильно отличается от, скажем, корпоративных приложений. Есть много новых аспектов, графики, звука и т. Д. Чем больше вы идете, тем легче становится (как обычно).
  6. Написать блог Выразите свой процесс разработки (в этом процессе вы найдете ответы на свои вопросы), храните ссылки с комментариями к ценным статьям.
  7. Не думайте, что ваш код - худшее, что вы когда-либо видели. Код игры сложнее контролировать, он всегда немного грязнее, чем его "корпоративный" код. Но, уверяю вас, там я видел несколько ужасных творений (с точки зрения качества исходного кода и организации игры), которые были успешными инди-играми. Так что не обижайся на себя, особенно в начале.

1

Это относится к любой дисциплине, связанной с творческой индустрией:

Самая большая опасность - пытаться построить что-то «слишком большое» или «эпическое» из ворот.

Например, если вы начинаете писать музыку, вы не начинаете пытаться создать 50-часовую 2-часовую симфонию.

В дизайне уровней это проявляется в попытках сделать «самую большую карту из когда-либо существовавших» или в использовании игровой системы для создания самой большой и сложной вещи, которую способен обработать игровой движок. В программировании это может привести к «созданию всей игры самостоятельно», начиная с нуля исходного кода. Вам действительно нужно много опыта и дисциплины, чтобы начать с нуля, и даже тогда это невероятно сложно, и принимать решения по дизайну во всем сложно, когда вы разрабатываете дизайн всего. В наши дни даже упрощенная игра требует довольно большого количества программирования на современной ОС и языке. Также, если вы начнете с чьего-либо другого кода, вы сможете узнать, что работает, а что не работает так хорошо, поэтому работа с как можно большим количеством движков также является огромным плюсом.

Поэтому я бы порекомендовал что-то вроде следующих планов:

  • Дизайн уровней: построить маленькую комнату, построить половину здания, построить полное здание и т. Д.
  • Искусство: сделайте шляпу для TF2 или что-то похожее простое, или замените текстуру для Skyrim или какую-то другую задачу по размеру укуса, чтобы начать работу, прежде чем попадать в скелетные или морфосетки и выяснить, как их анимировать или раскрасить, хорошо их зачесав.
  • Программирование: возьмите существующий изменяемый игровой движок или движок с открытым исходным кодом, измените его часть (например, оружие), затем сделайте новое оружие. Если вам не понравится код геймплея, вы можете начать взламывать графический движок.

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.