Tecnologia

Els costos en la informàtica: videojocs com a cas d’estudi

Gustavo Patow
Departament d'Informàtica i Matemàtica Aplicada

Des de sempre als qui estem en el món de la informàtica ens han fascinat els videojocs, ja que conjuguen bones històries, ambients absorbents i l’últim de la tecnologia en cada moment. Per tant, no és estrany sentir preguntes del tipus: “Què puc fer jo per aconseguir això que veiem a la imatge de sota?”:

videojocs1

I això?

videojocs2

Abans que res, cal aclarir que aquests jocs (Assassin’s Creed II i Grand Theft Auto IV) són dels anomenats AAA, jocs de la gamma més alta destinats a ser (o, com a mínim, intentar-ho) autèntics supervendes. Per tant, ens podem preguntar què cal per fer un joc AAA. La meva resposta s’obté després d’analitzar la taula següent:

Joc

Persones

Temps (anys)

Cost (*1.000.000 USD)

Grand Theft Auto IV

1.000+

3,4

100

Metal Gear Solid 4

200+

4

50~70

Halo 3

?

3~4

30+30 (publicitat)

Killzone II

?

4

40

Final Fantasy XII

?

5

40

Final Fantasy IX

?

?

40

Assassin’s Creed

?

~3

?

Assassin’s Creed II

450+

~3

?

Nota: Hi ha forats sense completar perquè les companyies es resisteixen a revelar detalls de producció a part de les informacions que cal passar als accionistes.

Podem veure que, com es podia esperar, aquests jocs requereixen un gran esforç i, per tant, una inversió gran. Hi ha altres jocs de molts tipus que, sense ser AAA, requereixen pressupostos força menors i poden ser tractats amb menys diners. Però centrem-nos en els AAA per tenir una referència de les tendències en el món del desenvolupament de videojocs. Mirant una miqueta, veurem que l’última columna ens presenta xifres esgarrifoses, astronòmiques. Queda clar que avui dia el cost del desenvolupament d’un joc AAA és massa alt per a un equip petit. Però, en general, mirant nombroses fonts observem que tots els equips de desenvolupament tenen una distribució similar:
  • 40% Artistes
  • 30% Dissenyadors
  • 20% Programadors
  • 10% Audio
Les imatges de sota ens mostren una escena d’un videojoc (Assassin’s Creed) i el mateix model visualitzat en filferros per mostrar la complexitat que té.

videojocs3

Els números són força clars: la major part dels equips està formada per artistes i level designers (els responsables de dissenyar i muntar els nivells dels jocs). Potser sorprèn una mica, però només el 20% dels membres d’un equip de desenvolupament modern està format per programadors. Aquest patró es repeteix des d’equips immensos com aquests fins a equips realment petits, i es repeteix no importa el llenguatge de programació, l’entorn o el sistema de desenvolupament triat. El missatge és clar: avui dia, en el desenvolupament d’un joc modern, els programadors hem agafat un rol secundari respecte dels artistes, que sumats ens sobrepassen en una proporció de 3 a 1. Això no és necessàriament dolent, ja que vol dir que l’impacte per capita d’un programador en el resultat final és força més alt que el d’un artista (el triple), però també ens mostra on s’han de centrar els esforços si volem optimitzar recursos.

Si ens posem en el rol del gerent d’una d’aquestes empreses, i hem d’organitzar els recursos, amb aquestes dades tan genèriques ja podem començar a organitzar els recursos humans. És fàcil, només s’ha de seguir aquests percentatges, sense oblidar-se d’una jerarquia vertical de responsables de secció, caps d’això i allò, RH, etc.

Però també, a partir d’aquesta informació, podem veure força clar en quin sector hem d’optimitzar els nostres processos: en el nostre pipeline (seqüència de processos), on hem d’optimitzar el treball dels artistes perquè ELLS siguin tan eficients com sigui possible en la seva feina, per així reduir el temps que es perd i augmentar el rendiment (mesurat com es vulgui, estem parlant de manera genèrica).

La pregunta, ara, és com podem fer això, què podem fer per maximitzar els nostres recursos (humans i de diners) a fi de tenir el joc enllestit tan aviat com es pugui i amb unes despeses mínimes. La resposta, una altra vegada, surt de l’equilibri entre les diferents classes de professionals que hem de contractar. Si volem maximitzar el rendiment, hem de començar per optimitzar la feina de la gent que forma el col•lectiu més nombrós: el format pels artistes i els level designers. Com hem dit, aquesta gent forma el 70% del nostre personal i, per tant, haurien de representar el 70% dels nostres esforços. I és clar, també consumeixen el 70% dels nostres recursos (en sous, equipaments, espais, mobiliari, llum, etc.).

Llavors, arribem a la conclusió que hem d’aconseguir/generar eines que els facilitin la feina, que els permetin fer-la amb la màxima eficiència possible. Això en l’argot s’anomena tools (eines) i és el que es valora més avui dia en qualsevol entorn de programació seriós de videojocs. A sota veiem una pantalla del Unreal Development Kit (UDK), un motor d’altíssimes característiques tècniques que ara s’ha alliberat i que podem fer servir per desenvolupar els nostres jocs (però per als quals haurem de demanar una llicència si els volem vendre). Un altre exemple, en aquest cas per a un videojoc del tipus Grand Theft Auto, és la generació d’eines que permetin automatitzar la creació de les parts repetitives d’una ciutat, deixant la feina dels artistes per a edificis puntuals que requereixin un tractament específic per ajustar-se a les exigències del guió. Per a això, les tècniques basades en algorismes automàtics són ideals.

videojocs4

A la imatge veiem, llavors, un element crucial d’aquest tipus d’eines: és completament visual, no força l’artista a programar ni una línia de codi. Fa molt de temps, els programadors afegien un llenguatge de script per als artistes, però uns quants anys de pràctica han demostrat que això no funciona, i ara els llenguatges d’aquest tipus han quedat restringits a l’ús intern dels programadors (que SÍ que els fan servir, i molt!).

Això ens porta a la segona observació d’aquestes eines: han d’estar dissenyades pensant en l’artista com a eix del procés, han de ser senzilles però alhora potents, ja que han d’exposar a l’artista tota la funcionalitat del nostre motor de joc, però sense complicar-li la vida amb coses innecessàries que no ha de saber, ni tampoc cal que sàpiga. Per exemple, a la imatge de sota veiem l’editor del personatge, tot muntat al voltant d’una visualització del nostre personatge més una finestra on es defineixen les característiques amb un sistema de nodes interconnectats, que a més a més s’actualitzen dinàmicament quan introduïm qualsevol canvi. Això últim és extremament important per reduir cicles de desenvolupament: ja no calen tediosos processos de prova i error, els artistes poden editar i veure immediatament el resultat dels canvis, la qual cosa redueix el temps a segons en lloc d’hores!

videojocs5

Per reforçar aquesta idea, podem comentar que la conegudíssima empresa Blizzard, a la seva plana web de contractació, posa explícitament: “Els desenvolupadors d’eines passen al davant de la fila.”!!! Donen més prioritat als desenvolupadors d’eines que a qualsevol altre perfil! Personalment, crec que el missatge no pot ser més clar!

Podem concloure que l’època en què dos amics s’ajuntaven en un garatge per desenvolupar un joc AAA (o un sistema operatiu) espectacular que fos un èxit comercial ha passat. Ara els grans jocs, i fins i tot els mitjans, requereixen equips de gent altament especialitzada que treballi coordinadament alhora en el projecte. Però aquesta gent necessita eines especialitzades que estiguin a l’altura de la feina que han de fer. I qui construirà aquestes eines? Doncs, els informàtics, una altra vegada, però ara entesos com a desenvolupadors d’eines en lloc d’altres parts que abans tenien un rol primari però que ara ja estan més o menys estandarditzades. Com diuen en l’argot: “Power to the tools!”


Gustavo Patow
Agraïments: Vull agrair a Frederico Lois les excel•lents classes que va fer sobre desenvolupament de videojocs a les jornades ECImag, a Bahía Blanca, Argentina.


< TORNAR