2012-07-19 27 views
0

Ну, я много исследовал и пришел к основному выводу о API: поскольку выбор API для обучения не имеет значения, если вы действительно можете изучать 3D-программирование , или так кажется.Графический API для разработки игр

My background/current fields of study: У меня есть своего рода солидный фон для программирования, алгоритмов и объектно-ориентированных дизайнов.

Я сделал несколько 2D-игр: используя XNA (C#) и allegro 5 (C++), я даже написал своего рода небольшую основу для нескольких 2D-игр, которые я должен был сделать для курса (используя аллегро) для ускорения так что я хорошо знаком с основными понятиями логики игры и структуры игрового цикла.

Я сделал очень немного экспериментов с 3D, используя XNA, просто получил основную идею на самом деле.

У меня есть базовое, но прочное знание об линейной алгебре и исчислении.

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

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

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

Я только начал (сегодня), прочитав примеры и документацию Direct3D (9 и 11) из того, что я прочитал, если я буду изучать DirectX, я должен пойти на 11, если совместимость с низким уровнем совместимости и пользователи XP Мои цели.

Мне хотелось бы, чтобы я использовал DirectX или что-то вроде SDL/OpenGL/OpenAL. Я ничего не имею против. Я просто хочу знать, что было бы лучше для тех, кто хочет сосредоточиться на каком-то новом AI для игр и игровая логика. Я буду использовать C++/Python для игр, некоторые C#/XML для некоторых инструментов и т. Д. Ну, я в основном собираюсь развить материал в/для среды Windows (ничего против linux или что-то еще - я использую linux для некоторых из моих исследований AI для некоторых программ, которые я использую).

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

+0

OpenGL (и его отсталый кузен ES) поддерживается на большинстве платформ. Вы также найдете больше языковых привязок для OpenGL. – leppie

ответ

2

Как указано here и @leppie, OpenGL является кросс-платформенный, так что вам придется научиться использовать один структуру, которая будет работать на большинстве платформ сегодня.

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

С другой стороны, DirectX - это то, что работает в среде Windows. Он также кажется инструментом выбора для многих разработчиков игр, который, кажется, является тем, что вы после. Использование DirectX также позволит вам использовать Visual Studio (что, на мой взгляд, является самой, если не самой, мощной IDE, которую я когда-либо использовал), как показано here.

В общем, все, что вы просите, было дебатами, которые шли годами (и here, чтобы назвать несколько).

EDIT:

Как и большинство вещей в мире программирования, определенная платформа даст вам преимущество, если вы пытаетесь сделать список данных вещей. Различные списки требуют разных платформ/фреймворков и т. Д. Я никогда не сталкивался с этими технологиями, но, по-моему, Microsoft иногда пытается сделать жизнь разработчиков более простой, чем те, которые используют продукты с открытым исходным кодом.

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

+0

Да, я прочитал много дебатов по API, и именно поэтому я попытался задать что-то более конкретное для себя, я сейчас не ищу кросс-платформенного материала, а не то, что меня это не волнует, это просто прямо сейчас это не мой приоритет. Я просто пытаюсь увидеть, придерживается ли DirectX (и да, я согласен с вами в Visual Studio), хорошая идея для кого-то, чья основная цель не входит в графическую часть игры Ну, например, OpenGL дайте мне какое-то преимущество или нет? Вот что я не могу найти на дебатах, которые я читал –

+0

@RaphaelMitrious: Я обновил свой ответ. – npinti

1

Что-то вы можете иметь в виду: насколько я знаю, OpenGL (который, в конце концов, означает Open Graphics Library, если я не лаю совершенно неправильное дерево) предназначен только для графики. DirectX, с другой стороны, также предлагает материал для звука, музыки, ввода через различные контроллеры и т. Д., Поэтому, если кросс-платформа не является вашей основной проблемой, и вы хотите сосредоточиться на логике и AI, DirectX может помочь вам получить что-то довольно быстро работая над землей, тогда как с OpenGL (который я не собираюсь вообще стучать) вам может понадобиться искать звуковые и входные API.

Смежные вопросы