La dura tarea de programar para PS3 y Xbox 360

Art¨ªculo t¨¦cnico sobre las dificultades de programar para procesadores multin¨²cleo y sacarles el m¨¢ximo rendimiento.

Jos¨¦ Manuel L¨®pez (Almer¨ªa, 1977) es ingeniero de software especializado en programaci¨®n para telecomunicaciones y profundo conocedor de las interioridades del desarrollo de los videojuegos. En este art¨ªculo t¨¦cnico repasa las cualidades y problem¨¢ticas que presentan las dos consolas de nueva generaci¨®n que equipan varios n¨²cleos de proceso desde un punto de vista profesional.

Con la llegada de PS3 tendremos tambi¨¦n el estreno de un nuevo chip llamado CELL del que se ha hablado mucho y sobre el que los desarrolladores de juegos tendr¨¢n que poner su arte y conocimientos para sacarle el m¨¢ximo partido a la consola de Sony.

Algunos ya han comentado que el CELL ser¨¢ un gran procesador siempre que se le pueda sacar todo el rendimiento que de ¨¦l se espera, pero la pregunta est¨¢ en si eso ser¨¢ f¨¢cil para los desarrolladores.

El chip Cell de PlayStation 3

El CELL cuenta con 1 procesador principal (Power Processing Element o PPE) que es b¨¢sicamente una variaci¨®n de un Power PC 970 con una cache L1 de 32KB de Datos y 32KB de Instr., adem¨¢s una L2 de 512KB, todo ello a 4GHz. Junto a este PPE hay ocho m¨®dulos de procesamiento llamados Synergistic Processor Element o SPE, con toda esta artiller¨ªa no es de extra?ar que tenga una marca te¨®rica de nada menos que 256 GFLOPS. Aunque en el caso de la PS3 contar¨¢ con "tan solo" siete m¨®dulos SPE, las cuentas no var¨ªan demasiado.

Cada uno de los SPE tendr¨¢ una memoria ¨²nica de 256KB, 128 registros con una anchura de 128 bits y elementos de ejecuci¨®n de 128bits, se puede decir que cada SPE es una m¨¢quina de 128bits. Con esta capacidad de procesamiento tenemos que cada SPE puede ejecutar 2 Double-Float, 4 Floats o Long integers, ocho integers... etc, cada uno en un solo ciclo de reloj. Adem¨¢s cada SPE contiene siete elementos de ejecuci¨®n de los que solamente dos podr¨¢n estar activos a la vez.

Esta arquitectura, bastante impresionante, tiene un 'pero' y es que cada SPE solamente puede acceder a sus 256 KB de memoria y no ver¨¢ nada m¨¢s 'all¨¢', para pedir una palabra fuera de esos 256 KB se debe acceder a un DMA conectado a un BUS llamado Element Interconnect Bus (EIB). Esto presenta un problema a la hora de procesar grandes cantidades de informaci¨®n, pues hay que optimizar el "troceado" para que no haya p¨¦rdida de rendimiento.

En la PS3 no veremos t¨ªtulos con m¨¢s de 256 MB de texturas, debido a la pol¨ªtica de memoria, mientras que si que los habr¨¢ en X360, aunque es verdad que este link enlaza con lo que comenta un ingeniero de Microsoft, no es menos cierto que la limitaci¨®n est¨¢ ah¨ª.

Sony ha elegido bien, sin embargo, y su consola podr¨¢ ser programada en Cg, C++ y la API de gr¨¢ficos ser¨¢ OpenGL|ES, esta librer¨ªa es un est¨¢ndar con la que muchos desarrolladores est¨¢n acostumbrados a trabajar, no solo en el mundo de los videojuegos sino tambi¨¦n en CAD/CAM y otros. Adem¨¢s, es conocido que la curva de aprendizaje de OpenGL es muy buena y aumenta las posibilidades de encontrar buenos desarrolladores y los estudios podr¨¢n contratar a gente nueva para los desarrollos en PS3. En cuanto a Cg es una excelente elecci¨®n por la facilidad de uso que tiene para los desarrolladores en cuanto a gesti¨®n de objetos gr¨¢ficos, con una gran potencia, yo personalmente no he programado con Cg, pero despu¨¦s de haber visto algunos ejemplos y haber le¨ªdo un poco, desde luego que tengo ganas de probar un poco.

El aspecto m¨¢s duro al que sin duda se enfrentar¨¢n los desarrolladores en la PS3 no ser¨¢ hacer juegos, sino hacer juegos buenos y r¨¢pidos. Y no es que esto sea f¨¢cil para las dem¨¢s, el problema es que esto ser¨¢ m¨¢s dif¨ªcil en la PS3.

Con el esquema del procesador que ya hemos comentado tenemos b¨¢sicamente ocho (o siete m¨¢s el PPE para PS3) elementos de ejecuci¨®n m¨¢s o menos independientes, que se deben usar organizadamente para poder sacarle el m¨¢ximo rendimiento.

Uno de los aspectos m¨¢s complejos en cualquier sistema software que se desarrolle es el hecho de la concurrencia, hacer que varios hilos de ejecuci¨®n se coordinen para un objetivo com¨²n es un problema bastante complejo de afrontar.

Un juego, varios hilos

Procesador de Xbox 360

El desarrollo de un juego con varios hilos de ejecuci¨®n es el nuevo reto de los estudios de desarrollo, los procesadores de las nuevas consolas tienen varios CORES de ejecuci¨®n (XBOX360 cuenta con 3 procesadores en uno, PS3 cuenta con 8 elementos de ejecuci¨®n, un PC puede tener entre 1 y cuatro CORES en un mismo procesador). Este nuevo elemento en el panorama de los juegos no hace mas que enriquecer cada uno de los aspectos de los mismo, podemos tener un hilo de procesamiento para el reenderezado, otro para la f¨ªsica, otro para el sonido y otro para la IA... obviamente las posibilidades aumentan much¨ªsimo cuando cada uno de los aspectos principales del juego cuenta con una unidad de ejecuci¨®n que no tendr¨¢ que compartir. Este enfoque no carece de problemas, pues hay que organizar muy bien la ejecuci¨®n para que la f¨ªsica tenga el resultado junto a la IA y el resto antes de renderizar la escena. En el siguiente art¨ªculo podemos ver este enfoque m¨¢s en detalle .

Sony, consciente de que este va a ser su caballo de batalla, ya desde el principio dio algunas directrices a los desarrolladores para enfrentarse a este esquema de programaci¨®n paralela.

Un o de ellos es, por ejemplo, la cola de trabajo. Si cada una de las operaciones que tiene que realizar la aplicaci¨®n se ponen en una cola de trabajo en orden y seg¨²n se van quedando elementos de ejecuci¨®n libres se les va asignando la tarea tendremos un resultado que organizado a su salida nos ofrecer¨¢ el resultado esperado... obviamente el overhead que supone la organizaci¨®n a la entrada y a la salida de la cola, tanto como la potencia que requiere la soluci¨®n de las distintas dependencias entre las distintas tareas no son gratis. Este esquema ser¨¢ muy valido cuando hay una alta independencia entre las tareas a realizar, caso en el que no est¨¢n los juegos.

Otra de las aproximaciones, por nombrar dos, es que sea el programador quien a base de artificios t¨ªpicos de la programaci¨®n concurrente sea quien realice la coordinaci¨®n entre las distintas tareas y cada una de ellas se va asignando a cada uno de los m¨®dulos de ejecuci¨®n. El problema que presenta esta aproximaci¨®n es que se necesita mucha destreza.

/es/node/
John Carmack durante la presentaci¨®n de DOOM III

Un ejemplo del dolor de cabeza que esto puede suponer es el QUAKE III Arena, que en su versi¨®n multithreaded era capaz de incrementar el rendimiento nada menos que en un 40%, sin embargo, fue notoria la cantidad de problemas y la fragilidad y poca estabilidad de este tipo de ejecuci¨®n en el juego, que era tremendamente inestable con muchos drivers gr¨¢ficos excepto con unos cuantos. Desde el punto de vista de John Carmack, en la mejora del rendimiento se ve hacia donde van los juegos actualmente, pero en la fragilidad se ve la dificultad a la que se enfrentan los desarrolladores .

Como ¨²ltima nota dejar¨¦ este interesante art¨ªculo en donde se explican los modelos de programaci¨®n y si se puede considerar f¨¢cil o no la programaci¨®n en PS3.

Multiplataforma en entredicho

En definitiva, lo que vemos es un proceso de involuci¨®n en la abstracci¨®n en el desarrollo software, ya que ahora se debe tener muy en cuenta sobre qu¨¦ hardware va a correr cada juego para adaptar el c¨®digo de forma que se saque el mayor rendimiento. Esto es un problema para lo estudios que lo que desean es tener que hacer las cosas una sola vez y poder disfrutar de ese trabajo en el mayor n¨²mero de plataformas posibles.

?F¨¢cil o dif¨ªcil?

Hasta aqu¨ª lo objetivo... ahora lo subjetivo. ?Es dif¨ªcil la programaci¨®n en la PS3?, yo creo que la respuesta es si. Lo cierto que la programaci¨®n de cualquier sistema concurrente conlleva una serie de problemas que en la PS3 se aumentan debido a su arquitectura, sobre si va a ser un problema capital para la PS3, creo que no.

BLACK es un ejemplo muy claro, cualquiera que haya probado este juego se da cuenta del impresionante n¨²mero de objetos que se mueven en la pantalla, lo cierto es que es incre¨ªble lo que han llegado a hacer con la PS2. No creo que con la PS3 vaya a ser necesariamente m¨¢s dif¨ªcil, al contrario, creo que Sony ha trabajado en facilitar las labores de desarrollo usando OpenGL y Cg.

Sin embargo, si lo que nos preguntamos es si es mas f¨¢cil desarrollar en la XBOX360, por lo que cuentan los desarrolladores, Microsoft ha creado herramientas de desarrollo muy superiores de las que tiene Sony, no obstante se debe pensar que Microsoft es una empresa de Software, cosa que no lo es Sony, o al menos si la comparamos con la maquina de hacer Software que es Microsoft.

Comenta John Carmack que es deseable que el desarrollo de un juego sea un 20% m¨¢s f¨¢cil a tener un 20% m¨¢s de potencia para poder hacer cosas. Esto es totalmente l¨®gico desde el punto de vista de cualquier desarrollador, pero si adem¨¢s pensamos que la XBOX360 es una excelente m¨¢quina con un Hardware que no la deja demasiado detr¨¢s de la PS3 aun tiene m¨¢s sentido. Lo que ha conseguido Microsoft, es una plataforma de desarrollo f¨¢cil, c¨®moda y cuyo c¨®digo se puede pasar f¨¢cilmente al PC, mientras que pasar c¨®digo de la XBOX360 a la PS3 y viceversa, va a ser una tarea compleja, por la diferencia en las arquitecturas de la consola.

Gr¨¢ficos parecidos, comportamiento distinto

Creo que en todas las plataformas vamos a ver gr¨¢ficos muy parecidos, pero que el motor interno y el comportamiento del juego va a ser muy distinto dependiendo de la consola. Un ejemplo lo tenemos en Assasins Creed, el impresionante juego que est¨¢n haciendo en el estudio de Ubisoft en Montreal, parece que va a tener un aspecto igual en ambas consolas, sin embargo, ya se ha adelantado que la IA en la XBOX360 ser¨¢ un poco mejor que en la PS3, y la verdad es que esto no deja precisamente bien a la consola de Sony.

Aunque es cierto que Ubisoft ya ha dicho que la IA ser¨¢ la misma para ambas consolas (el c¨®digo ser¨¢ el mismo) y que la diferencia no ser¨¢ apreciable. Lo cierto es que cuando dicen que el c¨®digo de la IA sea el mismo no significa, per-se, las mismas soluciones de la IA, pues aunque el c¨®digo sea el mismo, el tiempo de CPU dedicado a ese hilo no es el mismo. Aunque ciertamente, no creo que veamos diferencias apreciables en el juego, no hay que dejarse enga?ar por algunos "juegos de palabras" interesados.

En mi opini¨®n este caso se va a repetir durante un tiempo hasta que PS3 alcance la calidad en el desarrollo de XBOX y a partir de ese momento Sony presentar¨¢ batalla a Microsoft con todas sus armas, veremos quien gana la "guerra".

universo-virtual.com
buytrendz.net
thisforall.net
benchpressgains.com
qthzb.com
mindhunter9.com
dwjqp1.com
secure-signup.net
ahaayy.com
soxtry.com
tressesindia.com
puresybian.com
krpano-chs.com
cre8workshop.com
hdkino.org
peixun021.com
qz786.com
utahperformingartscenter.org
maw-pr.com
zaaksen.com
ypxsptbfd7.com
worldqrmconference.com
shangyuwh.com
eejssdfsdfdfjsd.com
playminecraftfreeonline.com
trekvietnamtour.com
your-business-articles.com
essaywritingservice10.com
hindusamaaj.com
joggingvideo.com
wandercoups.com
onlinenewsofindia.com
worldgraphic-team.com
bnsrz.com
wormblaster.net
tongchengchuyange0004.com
internetknowing.com
breachurch.com
peachesnginburlesque.com
dataarchitectoo.com
clientfunnelformula.com
30pps.com
cherylroll.com
ks2252.com
webmanicura.com
osostore.com
softsmob.com
sofietsshotel.com
facetorch.com
nylawyerreview.com
apapromotions.com
shareparelli.com
goeaglepointe.com
thegreenmanpubphuket.com
karotorossian.com
publicsensor.com
taiwandefence.com
epcsur.com
odskc.com
inzziln.info
leaiiln.info
cq-oa.com
dqtianshun.com
southstills.com
tvtv98.com
thewellington-hotel.com
bccaipiao.com
colectoresindustrialesgs.com
shenanddcg.com
capriartfilmfestival.com
replicabreitlingsale.com
thaiamarinnewtoncorner.com
gkmcww.com
mbnkbj.com
andrewbrennandesign.com
cod54.com
luobinzhang.com
bartoysdirect.com
taquerialoscompadresdc.com
aaoodln.info
amcckln.info
drvrnln.info
dwabmln.info
fcsjoln.info
hlonxln.info
kcmeiln.info
kplrrln.info
fatcatoons.com
91guoys.com
signupforfreehosting.com
faithfirst.net
zjyc28.com
tongchengjinyeyouyue0004.com
nhuan6.com
oldgardensflowers.com
lightupthefloor.com
bahamamamas-stjohns.com
ly2818.com
905onthebay.com
fonemenu.com
notanothermovie.com
ukrainehighclassescort.com
meincmagazine.com
av-5858.com
yallerdawg.com
donkeythemovie.com
corporatehospitalitygroup.com
boboyy88.com
miteinander-lernen.com
dannayconsulting.com
officialtomsshoesoutletstore.com
forsale-amoxil-amoxicillin.net
generictadalafil-canada.net
guitarlessonseastlondon.com
lesliesrestaurants.com
mattyno9.com
nri-homeloans.com
rtgvisas-qatar.com
salbutamolventolinonline.net
sportsinjuries.info
topsedu.xyz
xmxm7.com
x332.xyz
sportstrainingblog.com
autopartspares.com
readguy.net
soniasegreto.com
bobbygdavis.com
wedsna.com
rgkntk.com
bkkmarketplace.com
zxqcwx.com
breakupprogram.com
boxcardc.com
unblockyoutubeindonesia.com
fabulousbookmark.com
beat-the.com
guatemala-sailfishing-vacations-charters.com
magie-marketing.com
kingstonliteracy.com
guitaraffinity.com
eurelookinggoodapparel.com
howtolosecheekfat.net
marioncma.org
oliviadavismusic.com
shantelcampbellrealestate.com
shopleborn13.com
topindiafree.com
v-visitors.net
qazwsxedcokmijn.com
parabis.net
terriesandelin.com
luxuryhomme.com
studyexpanse.com
ronoom.com
djjky.com
053hh.com
originbluei.com
baucishotel.com
33kkn.com
intrinsiqresearch.com
mariaescort-kiev.com
mymaguk.com
sponsored4u.com
crimsonclass.com
bataillenavale.com
searchtile.com
ze-stribrnych-struh.com
zenithalhype.com
modalpkv.com
bouisset-lafforgue.com
useupload.com
37r.net
autoankauf-muenster.com
bantinbongda.net
bilgius.com
brabustermagazine.com
indigrow.org
miicrosofts.net
mysmiletravel.com
selinasims.com
spellcubesapp.com
usa-faction.com
snn01.com
hope-kelley.com
bancodeprofissionais.com
zjccp99.com
liturgycreator.com
weedsmj.com
majorelenco.com
colcollect.com
androidnews-jp.com
hypoallergenicdogsnames.com
dailyupdatez.com
foodphotographyreviews.com
cricutcom-setup.com
chprowebdesign.com
katyrealty-kanepa.com
tasramar.com
bilgipinari.org
four-am.com
indiarepublicday.com
inquick-enbooks.com
iracmpi.com
kakaschoenen.com
lsm99flash.com
nana1255.com
ngen-niagara.com
technwzs.com
virtualonlinecasino1345.com
wallpapertop.net
nova-click.com
abeautifulcrazylife.com
diggmobile.com
denochemexicana.com
eventhalfkg.com
medcon-taiwan.com
life-himawari.com
myriamshomes.com
nightmarevue.com
allstarsru.com
bestofthebuckeyestate.com
bestofthefirststate.com
bestwireless7.com
declarationintermittent.com
findhereall.com
jingyou888.com
lsm99deal.com
lsm99galaxy.com
moozatech.com
nuagh.com
patliyo.com
philomenamagikz.net
rckouba.net
saturnunipessoallda.com
tallahasseefrolics.com
thematurehardcore.net
totalenvironment-inthatquietearth.com
velislavakaymakanova.com
vermontenergetic.com
sizam-design.com
kakakpintar.com
begorgeouslady.com
1800birks4u.com
2wheelstogo.com
6strip4you.com
bigdata-world.net
emailandco.net
gacapal.com
jharpost.com
krishnaastro.com
lsm99credit.com
mascalzonicampani.com
sitemapxml.org
thecityslums.net
topagh.com
flairnetwebdesign.com
bangkaeair.com
beneventocoupon.com
noternet.org
oqtive.com
smilebrightrx.com
decollage-etiquette.com
1millionbestdownloads.com
7658.info
bidbass.com
devlopworldtech.com
digitalmarketingrajkot.com
fluginfo.net
naqlafshk.com
passion-decouverte.com
playsirius.com
spacceleratorintl.com
stikyballs.com
top10way.com
yokidsyogurt.com
zszyhl.com
16firthcrescent.com
abogadolaboralistamd.com
apk2wap.com
aromacremeria.com
banparacard.com
bosmanraws.com
businessproviderblog.com
caltonosa.com
calvaryrevivalchurch.org
chastenedsoulwithabrokenheart.com
cheminotsgardcevennes.com
cooksspot.com
cqxzpt.com
deesywig.com
deltacartoonmaps.com
despixelsetdeshommes.com
duocoracaobrasileiro.com
fareshopbd.com
goodpainspills.com
kobisitecdn.com
makaigoods.com
mgs1454.com
piccadillyresidences.com
radiolaondafresca.com
rubendorf.com
searchengineimprov.com
sellmyhrvahome.com
shugahouseessentials.com
sonihullquad.com
subtractkilos.com
valeriekelmansky.com
vipasdigitalmarketing.com
voolivrerj.com
zeelonggroup.com
1015southrockhill.com
10x10b.com
111-online-casinos.com
191cb.com
3665arpentunitd.com
aitesonics.com
bag-shokunin.com
brightotech.com
communication-digitale-services.com
covoakland.org
dariaprimapack.com
freefortniteaccountss.com
gatebizglobal.com
global1entertainmentnews.com
greatytene.com
hiroshiwakita.com
iktodaypk.com
jahatsakong.com
meadowbrookgolfgroup.com
newsbharati.net
platinumstudiosdesign.com
slotxogamesplay.com
strikestaruk.com
trucosdefortnite.com
ufabetrune.com
weddedtowhitmore.com
12940brycecanyonunitb.com
1311dietrichoaks.com
2monarchtraceunit303.com
601legendhill.com
850elaine.com
adieusolasomade.com
andora-ke.com
bestslotxogames.com
cannagomcallen.com
endlesslyhot.com
iestpjva.com
ouqprint.com
pwmaplefest.com
qtylmr.com
rb88betting.com
buscadogues.com
1007macfm.com
born-wild.com
growthinvests.com
promocode-casino.com
proyectogalgoargentina.com
wbthompson-art.com
whitemountainwheels.com
7thavehvl.com
developmethis.com
funkydogbowties.com
travelodgegrandjunction.com
gao-town.com
globalmarketsuite.com
blogshippo.com
hdbka.com
proboards67.com
outletonline-michaelkors.com
kalkis-research.com
thuthuatit.net
buckcash.com
hollistercanada.com
docterror.com
asadart.com
vmayke.org
erwincomputers.com
dirimart.org
okkii.com
loteriasdecehegin.com
mountanalog.com
healingtaobritain.com
ttxmonitor.com
bamthemes.com
nwordpress.com
11bolabonanza.com
avgo.top