2009-04-11 15 views
6

Tengo la oportunidad de asistir a clases de capacitación con licencia de Sony para aprender sobre la programación con la arquitectura de la celda de PS3.¿La arquitectura Cell de la PS3 es la plataforma incorrecta para aprender programación de juegos?

Sin embargo, solo tengo un conocimiento rudimentario de C++ y me preguntaba si la PS3 es un poco exagerada para un desarrollador principiante como yo.

¿Y también cuáles son los mejores recursos para llevarme a un nivel decente en la programación de gráficos C++ en aproximadamente 2 meses?

Respuesta

9

El problema no es tanto que una PS3 es exagerada, es que el procesador Cell es notoriamente difícil de programar según su potencial. La arquitectura altamente paralelizada es potencialmente bastante poderosa, pero no es fácil obtener ese rendimiento.

+0

Por lo que sé, tal vez solo esté buscando la programación de una de las SPU o el procesador central. Gracias por su respuesta, se votará después de iniciar sesión :) –

+1

Los rumores de que la célula es notoriamente difícil son exagerados. Necesita infraestructura para admitir un sistema de trabajo, pero una vez hecho esto, debe preocuparse por las DMA. Sony maneja la primera parte hasta cierto punto, si usted es un desarrollador con licencia. –

+1

El problema real con la Celda es que las SPU tienen muy poca memoria disponible y no tienen una memoria compartida real. – Klaim

2

Creo que es una gran arquitectura para prepararse para el futuro (programación multi-core). Sin embargo, para la mayoría de los propósitos prácticos, en realidad es mejor aprender el desarrollo de juegos basados ​​en Windows, ya que los costos de inicio con consolas son mucho más altos. Por ejemplo, sería mucho más fácil comenzar a codificar DirectX.

Así que sí, de alguna manera estás buscando problemas. Si decides ir con la PS3, asegúrate de ver el curso MIT PS3.

+0

No me preocupan los costos iniciales, estoy buscando aprender el desarrollo de juegos principalmente por razones académicas. Voto tu respuesta una vez que me registre. Gracias :) –

+0

Todavía creo que hay más en el desarrollo del juego que en los gráficos. Hay algunos libros de texto realmente buenos que cubren todo, desde la inteligencia artificial hasta otros temas. Creo que un gran diseño de juego puede ser algo así como EGA Trek. Leería un recurso más completo que preocuparse por plataformas específicas. – Uri

+1

Tenga en cuenta que el curso PS3 de MIT cubre una versión anterior del SDK de Cell y existen algunas diferencias bastante grandes entre la versión anterior y la más reciente. –

1

No, en absoluto, va a ser más difícil si usa .NET como idioma principal. Si desea utilizar .NET Recomendaría C#/XNA para Xbox 360.

Editar: Aquí es un gran enlace para empezar: http://www.cag.csail.mit.edu/ps3/

+0

ese enlace se ve bien, ¡te votaré una vez que pueda iniciar sesión con mi OpenID! gracias –

+0

. Agradezco que haya revisado este enlace hace un tiempo cuando estaba interesado en programar la célula. Sin embargo, perdí mi motivación cuando supe que tendría que gastar dinero (aún en la escuela secundaria). – Kredns

+0

Si te tomas en serio esto, te hacen gastar un poco, pero sabes que estudiaste las clases de capacitación con licencia de Sony. – Kredns

10

Apuesto a que será divertido y todo lo que aprenda en el curso lo ayudará a convertirse en un mejor programador.

+0

+1, ¡adelante, puedes hacerlo! – fengshaun

0

Aunque no tengo experiencia en el desarrollo de aplicaciones en la 360 o la PS3, investigué mucho sobre los diversos méritos de las dos plataformas. He usado C++ durante mucho tiempo, y aunque he desarrollado varias aplicaciones MFC y BeOS con él, he desarrollado una cantidad de aplicaciones de servidor UNIX con él, y aún así el entorno del juego de consola es significativamente diferente.

El chip Cell de la PS3 es realmente una bestia para domesticar, como otros han dicho aquí, y tiene un nivel de talento de Carmack para utilizar correctamente. Dicho esto, no hay nada de malo en asistir a un curso si es gratis, especialmente si conoces a personas que ya han desarrollado juegos y pueden darte algunos consejos.

Si desea desarrollar juegos para una consola, la mejor opción para alguien con un conocimiento rudimentario de C++ es utilizar el kit XNA basado en C# para la Xbox 360. Si está familiarizado con la forma en que C++ funciona , C# no es tan difícil de recoger. De hecho, yo diría que es una curva de aprendizaje mucho más pequeña que dar el salto a la programación basada en celdas multinúcleo y de múltiples hilos. Si nunca antes has desarrollado aplicaciones a nivel kernel, debes mantenerte alejado de ese tipo de cosas hasta que estés listo. Dos meses no es suficiente tiempo.

Hay una cantidad de puntos que hacen que la plataforma XNA sea muy atractiva para los aspirantes a desarrolladores de consolas, la seguridad relativa de C# vs. C++, y el hecho de que los juegos XNA pueden venderse a través del mercado de Microsoft. .

No conozco muchos juegos de PS3 que hayan sido desarrollados por sí solos, pero hay algunos ejemplos en el 360 tales como Braid que son solo esfuerzos individuales. Los ejemplos de XNA también son bastante interesantes y educativos.

1

Creo que si tienes la oportunidad de asistir sin hacer nada definitivamente deberías ir por ello. La recompensa de aprender algo de alguien que sabe más que usted es un regalo que muchos no tienen. El hecho de que es de un entrenador con licencia hace que valga la pena.

10

Por último una pregunta sobre mi trabajo del día .... :)

Mucho de lo que se aprende acerca de PS3 será aplicable a otras arquitecturas, como la programación en paralelo está empezando a parecerse al futuro. Muchas de las técnicas paralelas utilizadas en PS3 son directamente aplicables en Xbox 360. Sospecho que muchas de las consolas de juegos futuras irán en la misma dirección, y todos debemos comenzar a pensar en la paralelización mucho más de lo que podemos imaginar. actualmente.

Dicho esto, si solo tiene un conocimiento rudimentario de C++, gran parte del material puede estar sobre su cabeza. Depende de lo que quieras salir de la sesión, supongo. ¿Está buscando una introducción a PS3 o esperaba comenzar a hacer juegos en PS3 Linux el día después de la conferencia?

Suponiendo que se lo puede permitir, la información será interesante y probablemente útil. No dejaría pasar una oportunidad como esta a menos que sienta que el costo supera los beneficios. (Supongo que hay un costo, realmente no lo sé.)

Los recursos de programación de juegos están en toda la red. Si quiere hacer un curso acelerado en C++, tomaría C++ Primer por Lippman et al. Si desea un curso intensivo de gráficos, Real Time Rendering es el mejor lugar para comenzar, junto con un buen libro sobre matemática como Matemáticas para la programación de juegos 3D de Eric Lengyel. Explore algunos tutoriales de OpenGL o D3D también; incluso si ninguno de los dos se usa comúnmente en PS3, los principios son los mismos que cualquier API.

1

Habla específicamente de LEARNING C++ mientras aprende la arquitectura de PS3, bibliotecas, trucos especiales, etc. No recomendaría hacer eso. Debes ser fuerte en tu kung fu en C++ para codificar bien en la PS3 y harás una gran tontería si te presentas y ni siquiera conoces el idioma.

Lo peor es que perderás el tiempo del desarrollador profesional. En realidad podrían usar la información, pero estarás comiendo tiempo con preguntas para principiantes que ya debes saber.

No estoy tratando de ser malo; Yo tampoco iría porque no conozco muy bien C++. Solo trata de ser considerado con las otras personas que pagaron para ir allí.

1

He estado enseñándome la programación del procesador de celda (en C) durante los últimos meses. Definitivamente no es el mejor lugar para comenzar, ya que programar con éxito la Celda requiere dominar muchas habilidades: C/C++, pthreads, libspe, los diversos tipos de comunicación en la célula (DMA, buzones, señales, interrupciones, I atómica). O). Para hacerlo más difícil, la documentación de la Celda puede ser críptica, difícil de encontrar e incorrecta. Si usa una plataforma más común (XNA, pyGame, SDL), habrá una comunidad de usuarios mucho mayor. Eso no quiere decir que no haya ninguna comunidad de usuarios para la Celda, solo que es más pequeña. Y a pesar de que hay otros entornos donde uno puede encontrar programación con múltiples procesadores, puede ser difícil traducir las técnicas para estos entornos a la celda, debido a su arquitectura única. Además, el uso de una PS3 estándar con Linux no le permitirá acceder al hardware de gráficos.

Pero no todo es malo. Aprender PS3/Cell le enseñará mucho acerca de la programación cerca de la máquina. Realmente no tiene otra opción, ya que no hay muchas abstracciones disponibles para el programador.Cada SPU en la Celda tiene 256KB de memoria local y si necesita más que eso, necesitará encontrar algún tipo de esquema para emitir las solicitudes de DMA correctas para traer los valores correctos a la memoria en el momento correcto y (con suerte) mantenga la SPU ocupada haciendo algo mientras la solicitud de DMA está en vuelo. Aprendiendo la Celda

Entonces, tal vez no sea la mejor plataforma para aprender, pero dado que tienes la oportunidad de tomar clases de Sony, esto parece una buena oportunidad.

En cualquier caso, si está interesado, el book from Scarpino es una gran referencia, y tiene un par de capítulos sobre la programación de juegos en la célula con el motor OGRE, que también podría serle interesante.

Cuestiones relacionadas