Newsgroup: it.comp.lang.c++
Titolo: curiosità game

Non che no nci dormissi di notte, ma non immaginavo che le case di 
produzione di video games avessero la _loro_ libreria standard del C++
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html
-- 
Articolo 33 della Costituzione italiana: L'arte e la scienza sono 
libere e libero ne è l'insegnamento.
Se siete tosti: 
http://www.rexresearch.com/kervran/kervran.htm

 
A quanto pare i giochi hanno VERAMENTE grossi problemi
con le prestazioni.
Col senno di poi non è affatto strano: molti grossi giochi
sono in C++, e se qualcuno doveva sviluppare una versione
custom della STL era ovvio che sarebbe stato chi più di
tutti ne sentiva i limiti.
L'articolo fa anche riferimento al futuro C++09, speriamo
che alcune delle novità vengano recepite anche nella STL
"normale" :-)

 con le prestazioni.
Certo, ma mi pare che in quell'articolo si parli per esempio delle 
scarse prestazioni della printf sulla playstation; al che io mi chiedo: 
perché pensi si usare la printf se hai bisogno di prestazioni?
Tra l'altro se hai bisogno di prestazioni la prima cosa da fare 
"potrebbe" essere abbandonare il multipiattaforma. Cosa commercialmente 
suicida.
Comunque ho visto i trailer di MGS4 su PS3 e sono rimasto basito.


 suicida.
Infatti in quell'articolo citano che la loro libreria ha ottimizzazioni 
specifiche per le varie piattaforme (in particolare per gli allineamenti 
ed essere cache friendly) ed occasionalmente metodi scritti in assembly 
inline (nei vari dialetti di assembly).
Di certo alcune tecniche dell'STL (tipo l'allocatore che raddoppia 
l'allocazione sull'overflow della capacity del vector) sono decisamente 
pericolose su sistemi tipo una ps2 o console portatili che hanno 32mb o 
meno :)
Se guardi la sezione benchmark comunque le prestazioni su win e linux 
sono solo marginalmente migliori rispetto l'STL classica, hanno pero` 
dei notevoli miglioramenti su Mac, cosa che non capisco visto che l'STL 
di OSX e` la stessa di linux, forse i test sono relativi ai vecchi mac 
PPC e quindi a qualche ottimizzazione fatta per essere piu` friendly con 
i processori di motorola/ibm...
Peccato che non si trovino da nessuna parte i sorgenti di questa STL :)
Bye,
  Gabry

 Peccato che non si trovino da nessuna parte i sorgenti di questa STL
Devo dire che le ho cercate anche io, ma capisco che non ci tengano a 
tenerle *segrete*.
Più che altro mi sono molto meravigliato che Microsoft, Sony e IBM non 
forniscano materiale di primissima qualità, e che le case di video game 
debbano preoccuparsi di questi dettagli, a reinventarsi la ruota 
riscrivendosi la libreria standard.


 
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2271.html
Letta oggi, magari c'entra poco, però...
http://www.hwupgrade.it/news/videogiochi/ea-anche-nel-campo-dei-motori-grafici_26458.html
oppure magari le due cose sono correlate?

 oppure magari le due cose sono correlate?
Vendono il motore, ma mi sa che la libreria standard se la tengono in 
casa :-) Oggi per rilassarmi mi sono guardato le offerte di lavoro 
della "ID Software" e per un programmatore ci sono enne posizioni per 
disigner o animatori.
Al che le mie domande sono due. E' una mia impressione ma nelle console 
i produttori non forniscono un compilatore+libreria allo standard 
dell'arte? Cosa che invece fa Intel, giusto per fare un nome a caso.
Il mito della ps3 difficile per i programmatori non è solo un mito? In 
un gioco con un budget da svariate decini di milioni di euro, mi pare 
che ormai la programmazione pura si prenda una fetta molto piccola. Non 
ho mai sentito quelli della Disney o della Dreamwork lamentarsi della 
difficoltà programmatoria dei loro motori di rendering che girano in 
cluster.
Quasi quasi nella pausa del caffè del pomeriggio guardo le offerte di 
lavoro della Pixar :-)


 lavoro della Pixar :-)
Non so se e' ancora cosi', ma fino a qualche tempo fa tutti gli studi
di animazione che contano cercavano Pythonisti. Cioe', tutti meno
Aardman; d'altronde che io sappia nessuno ha ancora trovato il modo di
modellare la plastilina via software ;-)
(pero' dalla Disney/Pixar c'e' passato anche Stan Lippmann...)
Ciao,
Nicola

 di animazione che contano cercavano Pythonisti.
Potrei farci un pensierino allora.
Ma il C++ lo usa ancora qualcuno?
Ho letto di giochi in dotnet su xbox360, anche se ho letto anche di 
licenziamenti di sviluppatori di giochi in casa microsoft. Non so se le 
due cose sono collegate : )


Ma il C++ lo usa ancora qualcuno?
Anch'io sapevo che Python è usato spesso e volentieri dall'industria
degli effetti speciali, oltre che dal cinema d'animazione. Non come
linguaggio "primario", comunque. Per elaborazioni "toste" credo che il
C++ sia ancora imbattibile.

 due cose sono collegate : )
Se ti riferisci allo smantellamento di E{qualcosa} Studio (scusate, la
mia memoria...), la stessa Microsoft ha chiarito che si tratta solo di
una mossa a fini fiscali e lo staff continuerà a dedicarsi a tempo pieno
al supporto dei giochi già creati e allo sviluppo di quelli futuri...
se invece non ti riferivi a quello, allora non so :-)

 C++ sia ancora imbattibile.
Eh, lo spero bene. Anche con psyco attivo Python non può rivaleggiare
*in genere* con C++. Viceversa per chiamare grosse librerie C++ e
gestire la logica va davvero bene.
-- 
-riko

 una mossa a fini fiscali e lo staff continuerà a dedicarsi a tempo pieno
Aggiungendo però che spera che tutti gli sviluppatori trovino presto un 
lavoro. Non credere all'oste che magnifica il suo vino. Le fonti 
indipendenti, se mai esistono, parlano di crisi del mercato game per 
PC.
Poi Lipmann non è passato da Disney a Microsoft. Magari game e cinema 
non richiedono più tanti programmatori come un tempo.


 gestire la logica va davvero bene.
Guarda che il confronto non devi farlo con psyco ma con cpython. Se 
farlo anche con pypy non l'ho ancora capito. Confronto che io non ho 
fatto tra l'altro, però se vuoi pedalare almeno cpython.
Il punto però è un altro. Uno si ritrova ad usare Python, o simili, per 
gestire progetti in C++. Per esempio io mi sto spingendo sempre "più in 
là" nell'integrazione tra C++ e Python. Il che fa pensare. O il C++ non 
è un gran che comodo/produttivo, oppure i linguaggi dinamici hanno un 
loro perché.
Poi ci sono moltissimi progetti in cui il C++ non è così determinante. 
Moduli per un server web, gestire la posta, connessioni in rete in cui 
gran parte del tempo è passato ad aspettare dei dati dal socket, 
interfaccie grafiche.
Ora io non svilupperei un gioco per xbox360 in python, ma c'è un motivo 
teorico per cui un gioco sviluppato in un linguaggio net *senza* GC non 
possa essere anche più veloce dello stesso gioco sviluppato in C++?
