3-d программирование игр
какой язык программирования / языки они используют для производства игр lik Bioware Dragon Age Origins и некоторых других 3-d игр, таких как Call of Duty?
Если я хотел бы заняться 3D-игровым программированием, с чего начать? Там даже простые учебники для этого? Хотелось бы заняться 3-d игровым программированием для PC игр:)
13 ответов
Я не хочу обескураживать, но и лгать тоже не хочу. Создание даже простейшей 2D игры-это большой подвиг. Вот некоторые вещи, которые вам, вероятно, придется узнать, если вы собираетесь кодировать игру самостоятельно:
- Общие понятия и методы, используемые в компьютерной графике.
- Сетевое программирование (если применимо)
- аудио программирование и теория цифровой обработки сигналов.
- линейная алгебра, тригонометрия и геометрия отрасли математики
- концепции AI, такие как нечеткая логика, конечные государственные машины или нейронные сети.
не говоря уже о том, что вам нужен твердый фон в программировании. Большинство крупных разработчиков игр используют C++, что является достойным выбором, когда производительность имеет значение. Но один размер не подходит всем. Я рекомендую вам посмотреть на C++, Python и Java и выяснить, какой из них вам нравится использовать.
теперь это может стать разочарованием, но это должно быть сказал. Если вы только начинаете с программирования, вы не собираетесь делать 3D-игру в течение длительного времени. Я изучил C++ еще в 2002 году, и я все еще изучаю новые способы использования языка программирования. Есть много книг под названием научите себя языку программирования X в y недель. Не верьте лжи. Невозможно узнать что-либо настолько сложное за этот промежуток времени. То, что я пытаюсь сказать,не торопитесь! терпение-это все, и нет такого вещь как бесплатный обед.
и когда у вас, наконец, есть знания, чтобы сделать игру, начните просто. Даже кодирование клона Nethack, который использует графику ascii, дает вам новый опыт, который вы можете расширить. И ваши первые игры должны быть 2D. Работа в двух измерениях намного проще, и большая часть математики прекрасно распространяется на три измерения, когда вы готовы продвигаться дальше.
C++ - это солидный старт.
Института имеет приличные курсы (за отдельную плату). Это отнюдь не тривиально. Начнем с основы (объектно-ориентированное программирование, 3D анимация, резьбы и т. д.) И вы получите где-то.
Не забудьте повеселиться. Это облегчает обучение.
большинство основных игр написаны на C++. Это не значит, что вы должны использовать C++. Для инди-игр вы также можете рассмотреть C# с XNA Если вы более знакомы с этим (или хотите относительно легко воспроизводить свои возможные творения на xbox 360). XNA также имеет преимущество быть свободным.
GarageGames также делает относительно уважаемую серию игровых движков (которые не бесплатны ,но очень доступны по сравнению с большинством), включая один что добавляет стандартные возможности в XNA, поэтому вам не нужно писать все это с нуля.
совет MPelletier хорош, хотя. Разработка игры очень сложна, и даже простая игра-это огромное предприятие. Сначала хорошенько изучите основы, и я настоятельно рекомендую начать с 2-D игр.
могу я предложить другой подход? Я собираюсь предположить, что 3D-графика не важна. Я считаю, что если вы действительно только начинаете, идти прямо на 3D-рендеринг может быть немного сложным. 2D-это гораздо проще.
поэтому следуйте этим простым шагам, ожидайте, что он продлится около двух часов или около того:
- скачать (и установить) Python
- скачать (и установить) , С которым Pygame
- скачать (и установить) Notepad++, вы будете использовать это, чтобы написать свой код, сохраните его с помощью .расширение py (нет .txt)
- отправляйтесь в Строка За Строкой Шимпанзе Учебник (отличный учебник!)
после того, как вы читали и экспериментировали с этим вы должны быть в состоянии создать что-то свое с уровнем сложности, скажем, Тетрис. Я создал астероиды клон.
Не стесняйтесь возвращаться сюда на Stackoverflow, чтобы попросить о помощи, если у тебя проблемы. Я помог нескольким друзьям через этот учебник, который хотел "попробовать игровое программирование" и должен быть в состоянии помочь вам со всем, что вам удастся застрять.
теперь иди орехи на клавиатуре! Прежде чем вы это узнаете, вы создадите Dragon Age 2!
C++ является стандартным языком, но ни один большой проект не использует только один язык. Старшие сотрудники будут использовать сборку в некоторых местах, графические программисты часто будут использовать любой язык шейдеров, подходящий для системы. Тот, кто работает над инструментами или системой сборки, обычно использует языки сценариев, такие как Python, Perl, bash/Batch scripting или другие. Игровые программисты обычно также используют язык сценариев в игре, который может варьироваться от стандартов, таких как Lua, Python или UnrealScript, чтобы в домашних скриптовых языках, созданных только для этого движка.
Института -- у меня смешанные чувства к этому месту... Они предлагают специализированную учебную программу, которую вам трудно найти где-то еще; однако друг показал мне некоторые тесты из этого места, которые имели ответы, которые в лучшем случае устарели или, в худшем случае, были неправильными. Я бы не стал возражать против них, но будьте непредвзяты впоследствии.
Gamedev.net -- amature игровой сайт программирования. Отличное сообщество, тонны статей. У них есть отличные сообщения на форумах о том, как начать работу. Даже будучи профессионалом, я посещаю этот сайт.
Если вы хотите пройти управляемый маршрут, попробуйте XNA Game Studio из Microsoft. Я думаю, что это хорошее место для начала, и вы не можете разочароваться (как я) с некоторыми из более мощных и сложных технологий, таких как pure DirectX или OpenGL-Программирование с C++/WIN32. Многое из этого абстрагируется, поэтому вы можете сосредоточиться на создании чего-то. Черт, вы даже можете сделать что-то, что может оказаться на Xbox Live. Он свободен начать превращаться и там конечно, будет много ресурсов, чтобы вы начали.
посмотреть Irrlicht выступает. Очень хороший игровой движок, простой в использовании и лучше всего ее бесплатно. Движок находится в C++, однако я помню, что видел его оболочку .net.
вероятно, его не такой мощный двигатель, как те, которые используются Call of Duty и т. д. Но если вы только начинаете освоение игры вам не понадобятся такие дополнительные функции. Вы можете построить очень приличные игры, используя irrlicht. Сайт также имеет несколько учебных пособий и активное сообщество.
посмотри Unreal Development Kit. Тот же движок, который использовался для питания Unreal Tournament и Gears of War, доступен бесплатно для независимых разработчиков и заботится о действительно изнурительной работе в создании игры.
Это отличный способ, чтобы получить в изучении терминологии и концепций, постепенно приспосабливая вас к области разработки программного обеспечения с помощью сценариев. Как только вы почувствуете себя комфортно с геометрией, текстурами, эффектами частиц и освещение используется, затем предприятие на территорию XNA. В случае UDK и XNA вы найдете как отличные сообщества, так и десятки доступных учебных пособий.
есть некоторые большие рамки программирования игр на C++, чтобы вы начали. DarkGDK отличный, я использовал его, и он берет часть боли из создания игры на C++.
http://www.garagegames.com имеет хорошие ресурсы для начала развития в игре.
обычно профессиональные игры в основном разрабатываются на C++. Однако, если вы не ветеран-разработчик C++, я бы рекомендовал выбрать язык, с которым вы более знакомы, изучая нюансы разработки игр, иначе вы можете столкнуться с синтаксисом и общей природой C++ больше, чем концептуальные детали, связанные с игровым программированием. C# и XNA, или даже ныне несуществующий управляемый Direct X,-отличный способ начать, как уже упоминалось. Богатство информация о разработке игр на C# легко доступна в интернете и в печати, и существует большое количество сообществ, чтобы предоставить вам поддержку во время обучения, поэтому воспользуйтесь ими.
Также обратите внимание, что, хотя XNA является более полной платформой для разработки игр, есть много других доступных библиотек, таких как Ogre, OpenGL и Irrlicht, которые охватывают все от аудио до физики.
попробуйте получить представление об основах игры и создать свой опыт реализации все более сложных проектов. Это не означает, что невозможно взять на себя большой проект в качестве первого, но по моему опыту меньшие проекты, как правило, завершаются с большей регулярностью. Каждая игра, которую вы закончите, укрепит вашу уверенность, опыт и набор навыков.
Я бы рекомендовал проверить http://www.GameDev.net, ресурсы там неоценимы. Riemers.net также содержит несколько отличных учебников по XNA и Direct X.
наконец, постарайтесь не впасть в уныние от необъятности понимания, которое требует разработка игры. Когда вы начинаете работать в этой области, ситуация может казаться ошеломляющей, но не забывайте, что даже гуру индустрии в какой-то момент начинали без знаний. С настойчивостью, страстью и терпением вы овладеете необходимыми навыками для создания действительно приятных игр.
удачи.
объектно-ориентированные языки с сильными графическими библиотеками необходимы для разработки таких игр.
эти игры можно сделать с:
- C++: DirectX (с VC++), OpenGL, SDL
- C#: DirectX, OpenGL c# привязки (не рекомендовал бы это)
- Java: Java3d (который имеет привязки к OpenGL), JOGL (Java OpenGL)
Если вы заинтересованы в изучении 3D-графики и C++ take посмотреть это.
попробуйте посмотреть на игры с открытым исходным кодом. Это игра недавно вышел с открытым исходным кодом, и он довольно продвинутый. Он уже использует большую физику, визуальные эффекты и вырезать сцены, так что это может быть отличная возможность обучения.