Является ли архитектура PS3 Cell неподходящей платформой для изучения игрового программирования?

У меня есть возможность посещать лицензированные Sony учебные курсы, чтобы узнать о программировании с архитектурой ячеек PS3.

Однако у меня есть только элементарные знания C ++, и мне было интересно, не является ли PS3 чем-то излишним для начинающего разработчика игр, такого как я.

А также какие ресурсы лучше всего помогут мне достичь достойного уровня графического программирования на C++ примерно за 2 месяца?


person Community    schedule 11.04.2009    source источник


Ответы (9)


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

person Chris Upchurch    schedule 11.04.2009
comment
Из того, что я знаю, я могу просто посмотреть на программирование одного из SPU или основного процессора. Спасибо за ответ, проголосую после авторизации :) - person ; 11.04.2009
comment
Слухи о том, что Cell заведомо сложна, преувеличены. Вам нужна инфраструктура для поддержки системы занятости, но как только это будет сделано, вам останется только беспокоиться о прямом доступе к памяти. Sony в некоторой степени обрабатывает первую часть для вас, если вы являетесь лицензированным разработчиком. - person Dan Olson; 11.04.2009
comment
Настоящая проблема с Cell заключается в том, что SPU имеют слишком мало доступной памяти и не имеют реальной общей памяти. - person Klaim; 11.04.2009

Бьюсь об заклад, это будет весело, и все, что вы узнаете на курсе, поможет вам стать лучшим программистом.

person lothar    schedule 11.04.2009

Наконец, вопрос о моей повседневной работе.... :)

Многое из того, что вы узнаете о PS3, будет применимо и к другим архитектурам, поскольку параллельное программирование начинает выглядеть как будущее. Многие параллельные методы, используемые на PS3, напрямую применимы к Xbox 360. Я подозреваю, что многие будущие игровые консоли будут двигаться в том же направлении, и нам всем нужно начать думать о распараллеливании гораздо больше, чем мы можем. В настоящее время.

Тем не менее, если у вас есть только элементарные знания C++, большая часть материала может оказаться для вас непосильной задачей. Я полагаю, это зависит от того, что вы хотите получить от сеанса. Вы ищете введение в PS3, или вы надеялись начать делать игры для PS3 Linux на следующий день после конференции?

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

Ресурсы по программированию игр есть во всей сети. Если вы хотите пройти ускоренный курс по C++, я бы взял C++ Primer от Lippman et al. Если вам нужен ускоренный курс по графике, лучше всего начать с рендеринга в реальном времени вместе с хорошей книгой по математике, такой как «Математика для программирования 3D-игр» Эрика Ленгьела. Также просмотрите некоторые учебные пособия по OpenGL или D3D; даже если ни один из них обычно не используется на PS3, принципы такие же, как и у любого API.

person Dan Olson    schedule 11.04.2009

Я думаю, что это отличная архитектура для подготовки к будущему (многоядерное программирование). Однако для большинства практических целей вам на самом деле лучше изучать разработку игр для Windows, поскольку начальные затраты на консолях намного выше. Например, было бы намного проще начать программировать для DirectX.

Так что да, в некотором смысле вы ищете проблемы. Если вы решите перейти на PS3, обязательно ознакомьтесь с курсом MIT PS3.

person Uri    schedule 11.04.2009
comment
Я не беспокоюсь о стартовых затратах, я хочу изучать разработку игр в основном по академическим причинам. Я поддержу ваш ответ, как только войду в систему. Спасибо :) - person ; 11.04.2009
comment
Я по-прежнему считаю, что разработка игр — это нечто большее, чем просто графика. Есть несколько действительно хороших учебников, которые охватывают все, от ИИ до других тем. Я думаю, что отличный игровой дизайн может быть чем-то вроде EGA Trek. Я бы прочитал более полный ресурс, чем беспокоиться о конкретных платформах. - person Uri; 11.04.2009
comment
Обратите внимание, что курс MIT PS3 охватывает старую версию Cell sdk, и между старой и новейшей версиями есть довольно большие различия. - person Paul Wicks; 17.04.2009

Нет, совсем нет, просто будет сложнее, если вы используете .NET в качестве основного языка. Если вы хотите использовать .NET, я бы порекомендовал C#/XNA для XBOX 360.

Изменить: Вот отличная ссылка для начала: http://www.cag.csail.mit.edu/ps3/

person Kredns    schedule 11.04.2009
comment
эта ссылка выглядит красиво, я проголосую за вас, как только смогу войти с моим OpenID! Благодарность - person ; 11.04.2009
comment
Я ценю это, я проверил эту ссылку некоторое время назад, когда меня интересовало программирование ячейки. Однако я потерял мотивацию, когда узнал, что мне придется тратить деньги (еще в старшей школе). - person Kredns; 11.04.2009
comment
Если вы серьезно относитесь к этому, они заставят вас немного потратиться, но вы знаете, что вы смотрели лицензированные учебные классы Sony. - person Kredns; 11.04.2009

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

person rball    schedule 11.04.2009

Он специально говорит об ИЗУЧЕНИИ C++ при изучении архитектуры PS3, библиотек, специальных приемов и т. д. Я бы не советовал этого делать. Вы должны быть сильными в своем кунг-фу C++, чтобы хорошо кодировать на PS3, и вы выставите себя большим дураком, если придете и даже не знаете языка.

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

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

person Kludge    schedule 11.04.2009

Последние пару месяцев я изучаю программирование процессора Cell (на C). Это определенно не лучшее место для начала, так как успешное программирование Cell требует овладения многими навыками: C/C++, pthreads, libspe, различными типами связи в Cell (DMA, почтовые ящики, сигналы, прерывания, атомарный I/ О). Чтобы сделать это сложнее, документация для Cell может быть загадочной, труднодоступной и неправильной. Если вы используете более распространенную платформу (XNA, pyGame, SDL), сообщество пользователей будет намного больше. Это не значит, что у Cell нет сообщества пользователей, просто оно меньше. И даже несмотря на то, что существуют другие среды, в которых можно найти многопроцессорное программирование, может быть сложно перенести методы этих сред на ячейку из-за ее уникальной архитектуры. Кроме того, использование стандартной PS3 с Linux не позволит вам получить доступ к графическому оборудованию.

Но не все так плохо. Изучение PS3/Cell научит вас многому в программировании, близком к машине. У вас действительно нет выбора, так как программисту доступно не так много абстракций. Каждый SPU в ячейке имеет 256 КБ локальной памяти, и если вам нужно больше, вам нужно будет придумать какую-то схему для выдачи правильных запросов DMA, чтобы вводить правильные значения в память в нужное время и (надеюсь) держите SPU занятым чем-то, пока этот запрос DMA находится в полете. Изучение клетки

Так что, возможно, это не лучшая платформа для обучения, но, учитывая, что у вас есть возможность брать уроки от Sony, это звучит как хорошая возможность.

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

person Paul Wicks    schedule 16.04.2009

Хотя у меня нет опыта разработки приложений для 360 или PS3, я провел много исследований различных достоинств этих двух платформ. Я уже давно использую C++, и хотя я создал на нем несколько приложений MFC и BeOS, я создал на нем несколько серверных приложений UNIX, и все же среда консольной игры существенно отличается.

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

Если вы хотите разрабатывать игры для консоли, лучше всего для тех, кто имеет лишь элементарные знания C++, использовать набор XNA на основе C# для Xbox 360. Если вы знакомы с тем, как работает C++, C# вам не подходит. т, что трудно подобрать. На самом деле, я бы сказал, что это гораздо меньшая кривая обучения, чем переход к многоядерному многопоточному программированию на основе Cell. Если вы никогда раньше не разрабатывали приложения уровня ядра, вам следует держаться подальше от подобных вещей, пока вы не будете готовы. Два месяца не срок.

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

Я не знаю многих игр для PS3, которые были разработаны в одиночку, но есть несколько примеров для 360, таких как Braid, которые в значительной степени являются индивидуальными усилиями. Примеры XNA также весьма интересны и поучительны.

person tadman    schedule 11.04.2009