[lnkForumImage]
Download FREE Software.

Confronta i prezzi di migliaia di prodotti.
News Forum Italiano
 Home | Login | Registrati | Ricerca 


 

Forums >

it.comp.giochi.sviluppo

Curiosità sulla difficoltà di sviluppo

Noixe

13/02/2011 09:37:27

Salve,

la domanda che sto per porre probabilmente non ha molto senso, dato che la
complessità di un meccanismo potrebbe non coincidere con la complessità a
livello di codice, ma secondo voi ci sono categorie di videogiochi la cui
realizzazione (a livello di codice, soprattutto IA, quindi senza tenere
conto degli aspetti grafici) è tipicamente più complessa di altri?

Ad esempio, implementare l'intelligenza artificiale di:

1. Personaggi di un picchiaduro tipo Tekken
2. Squadra di calcio tipo FIFA o PES
3. Automobili tipo gran turismo o Need For Speed
4. Meccanismi di interazione tra i personaggi dei giochi di ruolo tipo Final
Fantasy

Saluti

7 Risposte

Enrico Colombini

13/02/2011 10:19:43

0

On 13/02/2011 10.37, Midnightmare wrote:
> ma secondo voi ci sono categorie di videogiochi la cui realizzazione
> (a livello di codice, soprattutto IA, quindi senza tenere conto degli
> aspetti grafici) è tipicamente più complessa di altri?

Tutti, se la vuoi fare bene :-)
Costruire giocatori pseudo-umani dal comportamento realistico implica
definire questo comportamento in termini di modellazione logica: la
difficolta' sta qui e non nella scrittura di qualche riga in piu' o in meno.

In generale la tattica e' piu' facile da definire rispetto alla
strategia. Anche perche' il giocatore umano puo' facilmente adattare il
suo comportamento, mentre per quello programmato e' molto piu' difficile
(non impossibile, ma piuttosto impegnativo).

--
.Erix.

Gianpaolo Ingegneri

14/02/2011 18:53:12

0


> la domanda che sto per porre probabilmente non ha molto senso, dato che la
> complessità di un meccanismo potrebbe non coincidere con la complessità a
> livello di codice, ma secondo voi ci sono categorie di videogiochi la cui
> realizzazione (a livello di codice, soprattutto IA, quindi senza tenere
> conto degli aspetti grafici) è tipicamente più complessa di altri?

Stai scherzando vero? :-) E' come se avessi chiesto: un gioco alla pacman ed
un gioco di scacchi con 2500 di rank hanno lo stesso livello di complessità?
E' ovvio che più sono complessi i comportamenti dei giocatori virtuali (e le
regole del gioco) più è complesso da programmare. Senza bisogno di fare
l'elenco dei giochi più moderni, a livello logico potrebbe essere complesso
anche un gioco con una grafica da commodore 64 e non uno sparattutto con
l'impatto grafico di Crysis. Dipende dal tipo di gioco e le categorie sono
così tante che non ha senso neppure elencarle per farne una classifica. Un
clone di pang è molto più semplice di un clone di atomix, ma quest'ultimo è
molto più semplice di un gioco di formula1 che richiede un'accurata gestione
della fisica (che non c'entra quasi nulla con l'aspetto grafico). La
complessità dipende SEMPRE da quello che devi fare.


Enrico Colombini

14/02/2011 19:52:28

0

On 14/02/2011 19.53, Gianpaolo Ingegneri wrote:
> La complessità dipende SEMPRE da quello che devi fare.

La domanda pero' era sull'AI, non sulla programmazione del meccanismo, e
mi pare non considerasse giochi di pura logica. Un gioco che sappia
davvero comportarsi come un giocatore umano e' comunque notevolmente
impegnativo.

Se invece per "AI" si intendono cose come il pathfinding, per me non e'
nemmeno AI ma un semplice algoritmo di implementazione.

Quindi per prima cosa, qual e' il senso di "AI" nella domanda?

--
.Erix.

Noixe

14/02/2011 20:05:33

0

"Enrico Colombini" <erix@erix.it> ha scritto:

> Se invece per "AI" si intendono cose come il pathfinding, per me non e'
> nemmeno AI ma un semplice algoritmo di implementazione.
>
> Quindi per prima cosa, qual e' il senso di "AI" nella domanda?

La capacità di adattarsi al gioco dell'avversario umano.

Enrico Colombini

15/02/2011 08:55:57

0

On 14/02/2011 21.05, Midnightmare wrote:
> La capacità di adattarsi al gioco dell'avversario umano.

In questo caso non e' mai banale. Non dividerei tanto per categorie
quanto per profondita' di ragionamento/induzione/apprendimento, che
dipende sostanzialmente da quanto tempo e lavoro ci vuoi investire.

Certo, dipende dal livello di 'competenza' che vuoi ottenere; molti
giochi girano attorno al problema dando all'avversario sintetico dei
vantaggi o delle informazioni che in non potrebbe conoscere se fosse un
umano, oppure semplicemente approfittano della possibilita' di
controllare numerosi fattori in un tempo molto piu' breve di quanto
potrebbe fare un umano.
Ad esempio possono coordinare decine di personaggi in un RTS, mentre il
giocatore e' costretto a selezionarli e dare ordini e non puo' quindi
farlo alla stessa velocita'. In questo modo il gioco viene reso
impegnativo, ma non 'intelligente'.

Non saprei se classificarla come AI, ma talvolta si adatta la
difficolta' al livello del giocatore in modo da mantenere la
giocabilita' nel ristretto range che sta tra la noia e la frustrazione.
Questo e' gia' piu' facile e, se ben fatto e non intrusivo, puo' rendere
un gioco interessante senza bisogno di 'intelligenza' da parte del
programma. Perche' alla fine un buon gioco e' quello che fa divertire il
giocatore :-)

--
.Erix.

Gianpaolo Ingegneri

15/02/2011 13:08:56

0


> La domanda pero' era sull'AI, non sulla programmazione del meccanismo, e
> mi pare non considerasse giochi di pura logica.

Assolutamente no. Se rileggi la sua domanda:

> livello di codice, ma secondo voi ci sono categorie di videogiochi la cui
> realizzazione (a livello di codice, soprattutto IA, quindi senza tenere
> conto degli aspetti grafici) è tipicamente più complessa di altri?

Ha parlato di realizzazione e "soprattutto" IA (non soltanto IA) per cui la
mia risposta è perfettamente pertinente. Se poi dovessi fare il pignolo
potrei dire che questa domanda non ha senso perchè "a livello di codice
(...) quindi senza tenere conto degli aspetti grafici" non significa nulla,
dato che si deve programmare del codice pure per l'aspetto grafico. Ho
pensato alle regole del gioco (incluse IA, path finding, etc...) escludendo
ciò che riguarda l'aspetto grafico perchè credo che in fondo credo fosse
questa la sua domanda, almeno in partenza.

Per quanto riguarda l'IA non esiste un'unica IA per tutto ma una serie di
comportamenti della mente umana che si desiderano simulare attraverso
algoritmi, per cui anche questo aspetto varia in base ai requisiti di gioco,
così come la complessità di programmazione a livello di codice.


Noixe

16/02/2011 13:06:03

0

"Gianpaolo Ingegneri" <gingegneri82_NOSPAM_@hotmail.it> ha scritto:

> Ha parlato di realizzazione e "soprattutto" IA (non soltanto IA) per cui
> la mia risposta è perfettamente pertinente.

Si, però avevo elencato dei giochi non a caso, ma proprio per prendere in
esame giochi di pari livello, e non pacman con chess master.

> Se poi dovessi fare il pignolo potrei dire che questa domanda non ha senso
> perchè "a livello di codice (...) quindi senza tenere conto degli aspetti
> grafici" non significa nulla, dato che si deve programmare del codice pure
> per l'aspetto grafico.

Appunto avevo escluso tale aspetto che chiaramente va programmato ma non è
tra le parti di codice che mi interessano.

> Ho pensato alle regole del gioco (incluse IA, path finding, etc...)
> escludendo ciò che riguarda l'aspetto grafico perchè credo che in fondo
> credo fosse questa la sua domanda, almeno in partenza.

In effetti per IA potremmo considerare anche il path finding ad esempio, ma
come dice Enrico in fondo si tratta solo un problema di implementazione,
dato che concettualmente è semplice.

> Per quanto riguarda l'IA non esiste un'unica IA per tutto ma una serie di
> comportamenti della mente umana che si desiderano simulare attraverso
> algoritmi, per cui anche questo aspetto varia in base ai requisiti di
> gioco, così come la complessità di programmazione a livello di codice.

Ed infatti nei giochi che elencai si trattano 4 settori piuttosto differenti
tra di loro proprio per tale motivo.

Inoltre avevo detto fin da subito che la domanda probabilmente poteva non
avere molto senso :-D