2009-04-11 1 views
6

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

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

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

ответ

9

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

+0

Из того, что я знаю, я могу просто взглянуть на программирование одного из SPU или основного процессора. Спасибо за ваш ответ, выйдут после подписания :) – 2009-04-11 03:23:06

+1

Слухи о ячейке, которая, как известно, сложна, завышены. Вам нужна инфраструктура для поддержки системы работы, но как только это закончится, вам просто нужно беспокоиться о DMA. Sony обрабатывает первую часть для вас в какой-то степени, если вы лицензированный разработчик. –

+1

Реальная проблема с Cell заключается в том, что SPU имеют слишком мало доступной памяти и не имеют реальной общей памяти. – Klaim

2

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

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

+0

Я не беспокоюсь о затратах на запуск, я хочу изучить развитие игры в основном по академическим причинам. Будет ли повышать ваш ответ после того, как я стану подписываться .thanks :) – 2009-04-11 03:20:54

+0

Я все еще думаю, что для развития игры больше, чем для графики. Есть несколько действительно хороших учебников, которые охватывают все, от ИИ до других тем. Я думаю, что отличный игровой дизайн может быть чем-то вроде EGA Trek. Я бы прочитал более полный ресурс, чем беспокоиться о конкретных платформах. – Uri

+1

Обратите внимание, что курс MIT PS3 охватывает старую версию Cell sdk, и между старой версией и самой новой версией существуют довольно большие различия. –

1

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

Edit: Вот отличная ссылка, чтобы вы начали: http://www.cag.csail.mit.edu/ps3/

+0

эта ссылка выглядит красиво, я буду поддерживать вас, как только я смогу войти в систему с моим OpenID! спасибо – 2009-04-11 03:18:49

+0

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

+0

Если вы серьезно относитесь к этому, они заставляют вас тратить немного, вы знаете, что, хотя, вы заглянули в классы обучения, лицензированные Sony. – Kredns

10

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

+0

+1, пойдите для этого, вы можете это сделать! – fengshaun

0

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

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

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

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

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

1

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

10

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

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

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

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

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

1

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

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

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

1

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

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

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

В любом случае, если вы заинтересованы, book from Scarpino - отличная справочная информация, и у вас есть пара глав о программировании игры в ячейке с движком OGRE, который также может быть вам интересен.

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