Программирование трехмерной игры - PullRequest
6 голосов
/ 27 ноября 2009

Какой язык программирования / языки они используют для производства игр, таких как Bioware's Dragon Age Origins и некоторых других трехмерных игр, например Call of Duty?

Если бы я хотел заняться программированием в 3d-играх, с чего мне начать? Есть ли даже простые уроки для этого? Я хотел бы заняться трехмерным программированием игр для ПК:)

Ответы [ 13 ]

6 голосов
/ 27 ноября 2009

Большинство основных игр написаны на C ++. Это не значит, что вы должны использовать C ++. Для инди-игр вы также можете рассмотреть C # с XNA , если вы более знакомы с этим (или хотите относительно легко воспроизвести ваши возможные творения на xbox 360). XNA также имеет преимущество в том, что он бесплатный.

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

Однако совет MPelletier хорош. Разработка игр очень сложна, и даже простая игра - огромное дело. Сначала хорошо разберитесь с основами, и я настоятельно рекомендую начать с двухмерных игр.

6 голосов
/ 27 ноября 2009

Я не хочу обескураживать, но я не хочу лгать. Создание даже самой простой 2D-игры - главный подвиг. Вот некоторые вещи, которые вам, вероятно, придется выучить, если вы собираетесь писать код самостоятельно:

  • Общие понятия и приемы, используемые в компьютерной графике.
  • Сетевое программирование (если применимо)
  • Теория звукового программирования и цифровой обработки сигналов.
  • Линейная алгебра, тригонометрия и геометрия в математике
  • Понятия ИИ, такие как нечеткая логика, конечные автоматы или нейронные сети.

Не говоря уже о том, что вам нужен серьезный опыт в программировании. Большинство крупных разработчиков игр используют C ++, что является достойным выбором, когда производительность важна. Но один размер подходит не всем. Я рекомендую вам взглянуть на C ++, Python и Java и выяснить, какой из них вам нравится использовать.

Теперь, это может стать разочарованием, но это нужно сказать. Если вы только начинаете программировать, вы не собираетесь делать 3D-игры долгое время. Я изучил C ++ еще в 2002 году и до сих пор изучаю новые способы использования языка программирования. Есть много книг под названием Научите себя языку программирования X за Y недель . Не верь лжи. Невозможно научиться чему-либо сложному за этот промежуток времени. То, что я пытаюсь сказать, это: не спешите! Терпение - это все, и нет такого понятия, как бесплатный обед.

И когда у вас наконец появятся знания для создания игры, начните с простого. Даже кодирование клона Nethack, использующего графику ascii art, дает вам новый опыт, который вы можете расширить. И ваши первые игры должны быть 2D. Работать в двух измерениях намного проще, и большая часть математики прекрасно подходит для трех измерений, когда вы готовы двигаться дальше.

6 голосов
/ 27 ноября 2009

C ++ - хорошее начало.

Игровой институт имеет достойные курсы (платно). Это ни в коем случае не тривиально. Начните с основ (объектно-ориентированное программирование, 3d-анимация, потоки и т. Д.), И вы получите что-нибудь.

Не забудь повеселиться. Это облегчает обучение.

3 голосов
/ 27 ноября 2009

Могу ли я предложить другой подход? Я собираюсь предположить, что трехмерная графика не важна. Я считаю, что если вы только начинаете, переход к 3D-рендерингу может быть немного сложным. 2D намного проще.

Поэтому следуйте этим простым шагам, ожидайте, что это продлится около двух часов или около того:

  1. Скачать (и установить) Python
  2. Скачать (и установить) PyGame
  3. Скачать (и установить) Блокнот ++ , вы будете использовать его для написания кода, сохраните его с расширением .py (не .txt)
  4. Перейдите к Пошаговному уроку по шимпанзе (отличный урок!)

После того, как вы прочтете и поэкспериментируете с этим, вы сможете создать что-то свое с уровнем сложности, скажем, Tetris. Я создал клон астероидов .

Не стесняйтесь возвращаться сюда в Stackoverflow, чтобы попросить о помощи, если у вас возникнут проблемы. Я помог нескольким друзьям в этом уроке, который хотел «опробовать программирование игр» и должен быть в состоянии помочь вам со всем, что вам удастся застрять.

Теперь сходите с ума от клавиатуры! Прежде чем вы это узнаете, вы создали Dragon Age 2!

2 голосов
/ 27 ноября 2009

Взгляните на Unreal Development Kit . Тот же движок, который использовался для запуска Unreal Tournament и Gears of War, доступен бесплатно для независимых разработчиков и заботится о действительно изнурительной работе по созданию игры.

Это отличный способ изучить терминологию и понятия, постепенно адаптируя вас к сфере разработки программного обеспечения с помощью сценариев. Как только вы освоитесь с использованием геометрии, текстур, эффектов частиц и освещения, отправляйтесь на территорию XNA. Как в случае с UDK, так и в XNA вы найдете и отличные сообщества, и десятки доступных учебных пособий.

2 голосов
/ 27 ноября 2009

Взгляните на irrlicht . Это очень хороший игровой движок, простой в использовании и, самое главное, бесплатный. Движок находится в с ++, однако я помню, что видел также .net-оболочку.

Возможно, это не такой мощный движок, как тот, что используется в Call of Duty и т. Д. Но, если вы только начинаете разработку игры, вам никогда не понадобятся такие расширенные функции. Вы можете создавать очень приличные игры, используя irrlicht. На сайте также есть несколько учебных пособий и активное сообщество.

2 голосов
/ 27 ноября 2009

Если вы хотите пройти управляемый маршрут, попробуйте XNA Game Studio от Microsoft. Я думаю, что это хорошее место для начала, и вы можете не отчаиваться (как я) от некоторых из более мощных и сложных технологий, таких как чистое программирование DirectX или OpenGL с C ++ / WIN32. Многое из этого абстрагировано, поэтому вы можете сосредоточиться на создании чего-то. Черт возьми, вы даже можете сделать что-то, что может оказаться в Xbox Live. Начать разработку можно бесплатно, и там наверняка найдется много ресурсов для начала работы.

2 голосов
/ 27 ноября 2009

C ++ является стандартным языком, но ни один крупный проект не использует только один язык. Старший персонал будет использовать сборку в некоторых местах, графические программисты часто будут использовать любой язык шейдеров, подходящий для системы. Тот, кто работает над инструментами или системой сборки, обычно использует языки сценариев, такие как Python, Perl, Bash / Batch и другие. Программисты игр обычно также используют язык сценариев игры, который может варьироваться от стандартов, таких как Lua, Python или UnrealScript, до собственных языков сценариев, созданных только для этого движка.

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

Gamedev.net - сайт программирования игр amature. Большое сообщество, тонны статей. У них есть отличные посты на форумах о том, как начать. Даже будучи профессионалом, я все еще посещаю этот сайт.

1 голос
/ 27 ноября 2009

Как правило, профессиональные игры в основном разрабатываются на C ++. Однако, если вы не опытный разработчик C ++, я бы рекомендовал выбирать язык, с которым вы более знакомы, изучая нюансы разработки игр, иначе вы можете столкнуться с синтаксисом и общим характером C ++ больше, чем с концептуальными особенностями, связанными с игрой. программирование. C # и XNA, или даже ныне несуществующий Managed Direct X, - отличный способ начать, как уже упоминали некоторые. Обширная информация, касающаяся разработки игр на C #, легко доступна в Интернете и в печати, и существует большое количество сообществ, которые могут оказать вам поддержку во время обучения, поэтому воспользуйтесь ими.

Также обратите внимание, что, хотя XNA является более полной средой разработки игр, есть много других доступных библиотек, таких как Ogre, OpenGL и Irrlicht, которые охватывают все от аудио до физики.

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

Я бы рекомендовал проверить http://www.GameDev.net, ресурсы там бесценны. Riemers.net также содержит несколько великолепных руководств по XNA и Direct X.

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

Удачи.

1 голос
/ 27 ноября 2009

Существуют отличные среды программирования игр на C ++, с которых можно начать. DarkGDK отличный вариант, я им воспользовался, и от создания игры на C ++ до некоторой степени не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...