6 Stimmen

Ist die Cell-Architektur der PS3 die falsche Plattform, um das Programmieren von Spielen zu lernen?

Ich habe die Möglichkeit, an von Sony lizenzierten Schulungen teilzunehmen, um etwas über die Programmierung mit der Zellarchitektur der PS3 zu lernen.

Allerdings verfüge ich nur über rudimentäre C++-Kenntnisse und frage mich, ob die PS3 für einen angehenden Spieleentwickler wie mich nicht ein bisschen zu viel des Guten ist.

Und auch, was ist die beste Ressourcen, um mich zu einem anständigen Niveau in C ++ Grafik-Programmierung in etwa 2 Monaten Zeit?

1voto

rball Punkte 6845

Ich denke, wenn Sie die Möglichkeit haben, teilzunehmen, anstatt gar nichts zu tun, sollten Sie es auf jeden Fall tun. Der Gewinn, etwas von jemandem zu lernen, der mehr weiß als man selbst, ist ein Geschenk, das viele nicht haben. Die Tatsache, dass es von einem lizenzierten Trainer kommt, macht es umso lohnender.

1voto

Kludge Punkte 161

Er spricht ausdrücklich davon, C++ zu LERNEN und dabei die PS3-Architektur, Bibliotheken, spezielle Tricks usw. zu lernen. Das würde ich nicht vorschlagen. Man muss C++ Kung Fu beherrschen, um auf der PS3 gut programmieren zu können, und man wird sich zum Narren machen, wenn man auftaucht und die Sprache nicht einmal kennt.

Im schlimmsten Fall verschwenden Sie die Zeit eines professionellen Entwicklers. Sie könnten die Informationen tatsächlich gebrauchen, aber Sie vergeuden Zeit mit Fragen von Neulingen, die Sie bereits kennen sollten.

Ich will nicht gemein sein; ich würde auch nicht hingehen, weil ich C++ nicht sehr gut kenne. Versuchen Sie einfach, Rücksicht auf die anderen Leute zu nehmen, die für den Besuch bezahlt haben.

1voto

Paul Wicks Punkte 58991

Ich habe mir in den letzten Monaten das Programmieren von Cell-Prozessoren (in C) beigebracht. Es ist definitiv nicht der beste Ort, um damit anzufangen, da die erfolgreiche Programmierung des Cells die Beherrschung einer Menge von Fähigkeiten erfordert: C/C++, pthreads, libspe, die verschiedenen Arten der Kommunikation auf dem Cell (DMA, Mailboxen, Signale, Interrupts, Atomic I/O). Erschwerend kommt hinzu, dass die Dokumentation für die Cell kryptisch, schwer zu finden und falsch sein kann. Wenn Sie eine gängigere Plattform (XNA, pyGame, SDL) verwenden, gibt es eine viel größere Gemeinschaft von Benutzern. Das soll nicht heißen, dass es keine Nutzergemeinschaft für Cell gibt, sie ist nur kleiner. Und auch wenn es andere Umgebungen gibt, in denen man Multiprozessor-Programmierung finden kann, kann es aufgrund der einzigartigen Architektur schwierig sein, Techniken für diese Umgebungen auf das Cell zu übertragen. Außerdem kann man mit einer Standard-PS3 unter Linux nicht auf die Grafikhardware zugreifen.

Aber es ist nicht alles schlecht. Wenn Sie die PS3/Cell erlernen, werden Sie viel über die maschinennahe Programmierung lernen. Sie haben wirklich keine andere Wahl, da dem Programmierer nicht sehr viele Abstraktionen zur Verfügung stehen. Jede SPU auf der Cell hat 256 KB lokalen Speicher, und wenn man mehr als das braucht, muss man sich ein Schema ausdenken, um die richtigen DMA-Anfragen zu stellen, um die richtigen Werte zur richtigen Zeit in den Speicher zu bringen und (hoffentlich) die SPU mit irgendetwas zu beschäftigen, während die DMA-Anfrage im Gange ist. Die Zelle lernen

Vielleicht ist das nicht die beste Plattform zum Lernen, aber wenn man bedenkt, dass man die Möglichkeit hat, Kurse bei Sony zu belegen, klingt das nach einer guten Gelegenheit.

In jedem Fall können Sie bei Interesse die Buch von Scarpino ist ein hervorragendes Nachschlagewerk und enthält einige Kapitel über Spieleprogrammierung auf dem Handy mit der OGRE-Engine, die auch für Sie interessant sein könnten.

0voto

tadman Punkte 200181

Obwohl ich keine Erfahrung mit der Entwicklung von Anwendungen für die 360 oder die PS3 habe, habe ich mich eingehend mit den verschiedenen Vorzügen der beiden Plattformen befasst. Ich verwende C++ schon seit langem, und obwohl ich mehrere MFC- und BeOS-Anwendungen damit entwickelt habe, habe ich auch eine Reihe von UNIX-Serveranwendungen damit erstellt, und dennoch ist die Spielumgebung für Konsolen deutlich anders.

Der Cell-Chip der PS3 ist ein ziemliches Biest, das es zu zähmen gilt, wie andere hier schon sagten, und man braucht ein gewisses Carmack-Talent, um es richtig zu nutzen. Davon abgesehen ist es nicht verkehrt, einen Kurs zu besuchen, wenn er kostenlos ist, vor allem, wenn man dort Leute trifft, die schon Spiele entwickelt haben und einem Tipps geben können.

Wenn Sie Spiele für eine Konsole entwickeln möchten, ist das C#-basierte XNA-Kit für die Xbox 360 die beste Wahl für jemanden, der nur über rudimentäre C++-Kenntnisse verfügt. Wenn Sie mit der Funktionsweise von C++ vertraut sind, ist der Einstieg in C# gar nicht so schwer. Ich würde sogar behaupten, dass die Lernkurve wesentlich kürzer ist, als wenn Sie den Sprung zur Cell-basierten Programmierung mit mehreren Kernen und mehreren Threads machen. Wenn Sie noch nie Anwendungen auf Kernel-Ebene entwickelt haben, sollten Sie sich von solchen Dingen fernhalten, bis Sie dazu bereit sind. Zwei Monate sind nicht genug Zeit.

Es gibt eine Reihe von Punkten, die die XNA-Plattform für angehende Konsolenentwickler sehr attraktiv machen, nicht zuletzt die relative Sicherheit von C# gegenüber C++ und die Tatsache, dass XNA-Spiele über den Microsoft-Marktplatz verkauft werden können.

Ich kenne nicht viele PS3-Spiele, die im Alleingang entwickelt wurden, aber es gibt einige Beispiele für die 360, wie z. B. Braid, die ziemlich allein entwickelt wurden. Auch die XNA-Beispiele sind recht interessant und lehrreich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X