Prometheo - Corsi Informatica - Home Page Risorse Sviluppo Videogiochi: FAQ Ufficiale di it.comp.giochi.sviluppo
Le risposte alle domande più frequenti
 
Home Page | Chi Siamo | Le Sedi | Come Contattarci | Franchising | Patente Europea


Precedente
Su
Successiva
Corsi: Informatica; Nuove Professioni; Professionali; Crescita; Calendario | Sommario
 
Risorse Sviluppo Videogiochi
FAQ Ufficiale di it.comp.giochi.sviluppo (parte 2)
Versione 2.2 13.17 05/12/2000 By Engraver

FAQ Ufficiale di it.comp.giochi.sviluppo

Questa FAQ è stata redatta da: Fabio "Engraver" D'Aprano (engraver@free.panservice.it)

Grazie a
pao78 revenant (scippo@tiscalinet.it)
Michele "^Voltron^" Cerreto
FrOYd
... e un piccolo ringraziamento a tutti i frequentatori del NG.
5. FAQ

5.1 Indice delle domande

1) Qual'è il linguaggio di programmazione più adatto allo sviluppo dei videogiochi?
2) Io voglio lavorare per una software house. Come posso fare?
3) Stavo pensando di formare un gruppo di programmazione con i miei amici, avrò mai possibilità di successo?
4) Come è organizzato un team di sviluppo per videogiochi?
5) Cerco dei tutorials...
6) Sono un Niubbo e non conosco nessun linguaggio di programmazione, ma voglio sviluppare un videogioco
7) Sono un Niubbo e sono completamente ignorante sulla programmazione dei videogiochi, ma conosco alcuni linguaggi di programmazione e vorrei essere illuminato sull'argomento. Da dove posso cominciare?
8) Dove posso scaricare i DirectX?
9) Qual'è l'ambiente di sviluppo/compilatore ideale per creare videogiochi?
10) Come posso creare un programma DOS da VC++?
11) Sviluppo videogiochi con software dedicato, come Klik & Play e The Games Factory. Sono IT (In Topic)?
12) Esiste un archivio in cui sono presenti tutti i post di tutti i NG?
13) Voglio realizzare un videogioco per Linux, oppure un porting di un videogioco che ho già scritto. Che devo fare?
14) Quali sono le fasi di creazione di un videogioco?
15) Perché ho un errore di "Undefined External Symbol" o "Unresolved External" quando compilo gli esempi dell'SDK di DirectX?
16) Scusate la domanda che è molto banale però non riesco a venirne fuori: posso interfacciarmi in qualche modo con le Directx lavorando con WinNT?
17) Premettendo che utilizzo 3DStudio Max, Come faccio a creare file con estensione .x visto che non si può esportare questo formato?
18) Cos'è il DIV?
19) Abbiamo una FAQ?

5.2 Domande e Risposte

1) D: Qual'è il linguaggio di programmazione più adatto allo sviluppo dei videogiochi?

R: Senza dubbio è il C++. Naturalmente, alcune sezioni di codice, necessiteranno una maggiore velocità di esecuzione e quindi dovranno essere scritte in un linguaggio più veloce, quale è l'Assembler proprio della macchina su cui è sviluppato il videogioco.

2) D: Io voglio lavorare per una software house. Come posso fare ?

R: Prima di tutto bisogna essere ben consci di saperci fare (è inutile presentarsi se non si sa fare nulla, per questo ci sono i corsi, le scuole e lo studio come autodidatta); poi di solito è necessario avere un titolo di studio in informatica anche solo il diploma (non la laurea); inoltre avere qualche anno di esperienza alle spalle aumenta le possibilità di essere presi; se avete già programmato qualche demo o qualche veloce e strabiliante routine di cui siete fieri basta mandarla insieme ai dati personali alle software house, una volta analizzati se vengono ritenuti buoni sarete fatti chiamare e invitati negli uffici per un colloquio; non disperate insomma, e mandate materiale alle software house, non è vero che cestinano tutto se il materiale è buono viene visto sempre considerato, inoltre quando negli annunci vedete le richieste di laureati a volte bisogna non farci caso e presentarsi comunque se vi sentite all'altezza, a volte le aziende usano questo trucco per essere sicure che si presentino solo poche e valide persone, in Italia si cercano soprattutto buoni coder (anche non laureati) a volte anche incapaci in materia di videogiochi, ma capaci."

3) D: Stavo pensando di formare un gruppo di programmazione con i miei amici, avrò mai possibilità di successo?

R: Non bisogna disperare mai ! Ci sono due possibilità in questo tipo di attività: la prima è scrivere giochi per ditte più grandi e rientrare nel gioco come collaboratori esterni, e di solito è così che si inizia; oppure se si fa un bel gioco di qualità dopo averlo distribuito un po' in giro, magari lo si può anche mandare a qualche rivista tecnica dove qualcuno farà sicuramente una piccola recensione e
se il risultato sarà positivo potrete presentarla da qualche publisher (le ditte che si occupano della masterizzazione e distribuzione dei CD) e fargli vedere il materiale, a volte si possono fare grandi cose in questo modo, in Italia ditte come Microforum o DynaByte non cercano giochi ma anche piccoli titoli da dischetto che magari verranno distribuiti in edicola, ma l'importante è farsi conoscere. Se poi tutto questo non funziona bisogna avere pazienza e mandare il proprio lavoro come freeware sul mercato e chiedere alla gente di mandare dei ringraziamenti per il gioco senza pagare,se dopo qualche mese i ringraziamenti sono parecchi si può rendere il programma shareware e farsi pagare piccole somme per la registrazione, cosi si inizia a fare qualche soldo che potrà essere investito in apparecchiature e per migliorare il proprio lavoro.

4) D: Come è organizzato un team di sviluppo per videogiochi ?

R: Fare videogiochi è cambiato molto rispetto a 5-6 anni fa. A quel tempo uno poteva permettersi di lavorare da solo. Ora le cose sono cambiate, perché sviluppare un progetto serio su PC non è uno scherzo e richiede il lavoro ben organizzato di più persone. Insomma è necessario:
- Il progetto creativo o ideazione : è bene all'inizio del lavoro, sedersi tutti a un tavolo e spremersi le meningi su come dovrà essere il videogioco, cioè proporre tutte le idee possibili, senza preoccuparsi della realizzazione.
- Il progetto tecnico o elaborazione: è assolutamente necessario un progetto il più completo possibile, di tutto quello che si deve fare. C'è un tempo per l'ideazione (e fin qui il lavoro può essere svolto in piena anarchia organizzativa) e uno per l'elaborazione (dove bisogna pensare a tutto). Non lasciate mai nulla al caso perché è sempre peggio.
- L'organizzazione: quando il lavoro coinvolge più persone, quindi collegate fra loro, è importante essere ordinati (per perdere meno tempo possibile), avere i servizi in comune (es. antivirus, backup, aggiornamento software etc) e che ognuno sappia esattamente cosa deve fare.
-La direzione: ci vuole qualcuno che funzioni da perno centrale, che segua la regia del progetto, che prenda le decisioni quando nascono diversi punti di vista.
- Il budget: bisogna domandarsi quanto tempo c'è a disposizione, quali sono i mezzi disponibili e quelli necessari, quante persone si possono o si devono coinvolgere, quali strumenti sono necessari e quali no, che utilizzo fare del software a disposizione. Non lavorare mai su un progetto software 'disordinato' con un team 'empirico'. Bisogna essere convinti che bisogna fare una cosa alla volta, iniziandola, finendola, testandola, dopodiché metterla da parte e iniziare a costruirci qualcos'altro sopra. Non si può cambiare idea ogni due giorni, altrimenti il progetto sarà disorganizzato e i tempi di produzione si allungheranno di parecchio. Quando si fa un videogioco si ha una fretta indiavolata di vedere tutto su schermo. Ma si deve imparare a pazientare un po' di più e costruire delle solide fondamenta, in maniera da non dover sottostare alla "regola del 70% e del 30%" : si dice che un team 'empirico' ci metta il 30% del tempo per sviluppare il 70% del gioco, e il 70% del tempo per sviluppare l'ultimo 30%. Lavorare senza ordine e senza progetto è come fare le pentole senza i coperchi."

5) D: Cerco dei tutorials...

R: corri subito a dare un'occhiata su  http://www.multiplayer.it/itaprogaming

6) D: Sono un Niubbo e non conosco nessun linguaggio di programmazione, ma voglio sviluppare un videogioco

R: Bene, inizia a studiare qualche linguaggio di programmazione (preferibilmente il C/C++) e poi
guarda la risposta alla domanda di sotto...

7) D: Sono un Niubbo e sono completamente ignorante sulla programmazione dei videogiochi, ma conosco alcuni linguaggi di programmazione e vorrei essere illuminato sull'argomento. Da dove posso cominciare?

R: Potresti iniziare a studiare alcuni SDK, come OpenGL o DirectX. Scaricali dai loro siti ufficiali (www.microsoft.com e www.opengl.org )

8) D: Dove posso scaricare i DirectX?

R: www.microsoft.com/directx

9) D: Qual'è l'ambiente di sviluppo/compilatore ideale per creare videogiochi?

R: Per evitare i problemi di compatibilità di tutte le librerie in generale, è consigliabile utilizzare Visual C++, dato che la maggior parte delle librerie, sono state scritte appositamente per questo compilatore. Naturalmente è possibile utilizzare altri compilatori, come il DJGPP (www.delorie.com) che è interamente free e il Borland C++ 5.x/Borland C++ Builder. Ultimamente la Borland ha anche rilasciato una versione free del suo compilatore... sarebbe un peccato non scaricarla!

10) D: Come posso creare un programma DOS da VC++?

R: Non puoi :)

11) D: Sviluppo videogiochi con software dedicato, come Klik & Play e The Games Factory. Sono IT (In Topic)?

R: In teoria dovresti essere IT, ma raramente troverai persone che dedicano anima e corpo a questi software :)

12) D: Esiste un archivio in cui sono presenti tutti i post di tutti i NG?

R: Sì, lo trovi su http://www.dejanews.com

13) D: Voglio realizzare un videogioco per Linux, oppure un porting di un videogioco che ho già scritto. Che devo fare?

R: Per non complicarti troppo la vita, prova a dare un'occhiata su http://www.devolution.com sulla voce "SDL". Si tratta di alcune librerie dedicate allo sviluppo dei videogiochi sotto questo sistema operativo (Somigliano moltissimo alle DirectX)

14) D: Quali sono le fasi di creazione di un videogioco?

R: Dal momento in cui viene concepita l'idea del gioco fino a quanto diventa definitivo, il videogioco attraversa 5 fasi: 
- Ideazione: in questa fase si mette a fuoco COSA si vuole fare, cercando di chiarirsi le idee circa il software che sarà necessario, i sistemi di gioco che lo sfrutteranno, la quantità di materiale da produrre, la trama e i personaggi del gioco. In questa prima fase è importante definire l'idea del soggetto: cercare di essere originali. Basta con i soliti soggetti fantascentifici, postatomici, fantasy, sportivi o pseudomilitari. Il mondo della fantasia è molto vasto, quindi perché usare sempre le stesse idee?
+ Utente: pensare chi userà il videogioco (es. fascia di età del videogiocatore) Fare in modo che una certa complessità di contenuti sia inversamente proporzionale l'utilizzo del gioco. In genere, più l'utente è maturo meno voglia ha di impazzire sui comandi (maniaci a parte).
+ Sistemi di gioco: provocare divertimento e non frustazione. Per evitare la Gameoverfobia, per esempio nelle avventure Lucas non si muore mai, e qualsiasi situazione può essere recuperata. La gente ormai non ha più voglia di impazzire cercando di risolvere complicatissimi adventure. Vuole storie da giocare rilassandosi.
+ Stile: chiarire bene quale sarà l'utilizzo e quindi il tipo di grafica e di audio. Per un gioco arcade visto dall'alto non valgono le stesse regole adoperate per un adventure con punto di vista laterale, o magari realizzata con grafica cartoon.
- Progetto: a questo punto comincia l'elaborazione delle cose ideate nella fase precedente
+ Progetto software basso livello: graphic device, audio device, input device i/o device. I motori grafico sonori veri e propri.
+ Progetto software alto livello: (engine software vero e proprio, intelligenze, utilizzo dei vari device di basso livello), editor necessari all'inserimento dei dati (in maniera che la definizione della logica
possa diventare semplice ed intuitiva.
+ Specifiche funzionali: che 'dimensioni' deve avere il materiale grafico sonoro-logico per far funzionare il gioco. Quali sono i valori minimi e massimi associabili a ogni parametro. Come sfruttare il software.
+ Storyboard: quale grafica, quale sonoro, quali testi devono essere realizzati.
+ Organizzazione: chi fa cosa, in che tempi, usando quali specifiche.
- Scrittura software: come già visto si compone di
+ Basso livello: il software direttamente a contatto con l'hardware, ovvero quello che controlla le schede grafiche - sonore - I/O. Non scartate mai l'idea di cercare quello che vi serve sulle riviste di informatica e di acquistarlo. Cosi facendo vi assicurerete l'utilizzo di software sicuramente ben fatto, testato, documentato opportunamente e risparmierete tantissimo tempo.
+ Alto livello: il software costruito sul basso livello. Cercate di mantenere alto e basso livello sempre adeguatamente separati, in maniera chiara e pulita. Spesso capita di realizzare un videogioco in diverse versioni, per computer diversi che usano elettronica (e quindi un 'basso livello') diversa rispetto al PC. Lavorando in maniera 'pulita' vi troverete a riscrivere solo il basso livello ritoccando solamente quello alto. Ogni macchina poi ha le sue particolarità. In PC bisogna scrivere tutto, nel MAC troviamo la gestione delle finestre a livello hardware (leggi : uso delle finestre anche attraverso codice asm), e nell'Amiga troviamo coprocessori grafico sonori e un codice assembler unico.
+ Editor: tutti i programmi che vengono usati unicamente per lo sviluppo e che poi non vengono inclusi nel master. Normalmente scritti in linguaggi come Visual Basic o Delphi, semplici e facilmente modificabili.
- Produzione materiale: composto di:
+ Modelli 3D, fotografie, illustrazioni su carta: quello che viene definito materiale 'sorgente', che viene creato per realizzare il materiale vero e proprio. I modelli 3D per esempio, devono essere renderizzati secondo specifiche per poter apparire nel gioco.
+ Grafica statica: tutta grafica di sfondo, dei menu, delle icone. è qui compresa anche la grafica cosidetta 'modulare', quella cioè realizzata a pezzi per essere utilizzata in maniera complessa dal software (a differenza di uno sfondo che invece va solamente visualizzato).
+ Animazioni: le parti animate della grafica, che quindi comprendono un lavoro di creazione dei vari fotogrammi (quindi anche utilizzo di metodi come filmaggi etc), di montaggio dell'animazione, di definizione del ritardo di ogni singolo fotogramma.
+ Musiche: realizzate in maniera 'modulare' (cosicché possano essere suonate dal software 'diversamente' a seconda di come vanno le cose nel gioco) oppure semplice. Possono contenere strumenti campionati oppure no (dipende dal software utilizzato).
+ Effetti sonori: creazione dei vari samples e studio del loro utilizzo all'interno dell'ambiente di gioco.
- Master, Logica, Montaggio e Testing: una volta che il software funziona e il materiale è stato realizzato, si 'mette tutto insieme'
+ Logica: inserimento delle tabelle, descrizione delle intelligenze, parametratura e :
+ Montaggio: mettere tutto insieme e incrociare le dita. Qui cominciano i guai se il lavoro di progetto è stato fatto male. Avete idea di cosa significhi un videogioco funzionante con engine multitasking senza nessuna documentazione disponibile che dà dei problemi appena cominciate ad inserire la grafica? Da spararsi !!!
+ Master: tutti gli errori di software e materiale saltano fuori in questa fase (tutti assieme appassionatamente :) ) e prima di vedere qualcosa muoversi bisogna portare pazienza e ammazzare uno dopo l'altro i bug che saltano fuori.
+ Testing: provare e riprovare il gioco, in tutte le sue possibilità. Il lavoro dei testers è quello di dare le brutte notizie ai programmatori. Ma quando tutti i testers danno l'OK possiamo dire che il gioco è veramente pronto!"

15) D: Perché ho un errore di "Undefined External Symbol" o "Unresolved External" quando compilo gli esempi dell'SDK di DirectX?

R: Quando si definisce un prototipo di una funzione, il compilatore, mette un "segnaposto" nella posizione della funzione. La descrizione (Il codice, in pratica) della funzione, probabilmente si
troverà in un altro file di codice .C, .CPP o LIB. Se il codice di questa funzione, non è presente, il Linker, invierà un errore di "Unresolved External".
Per risolvere questo problema, occorre inserire le librerie (File con estensione .LIB) fornite con L'SDK stesso all'interno del progetto; solitamente "ddraw.lib" "dsound.lib" "dinput.lib", "dxguid.lib", ecc.

16) D: Scusate la domanda che è molto banale però non riesco a venirne fuori; posso interfacciarmi in qualche modo con le Directx lavorando con WinNT?

R: Puoi utilizzare solo DirectX3, niente D3D. Il DirectSound e il DirectInput sono lentissimi perché sono disponibili soltanto in modalità software (HEL) 

17) D: Premettendo che utilizzo 3DStudio Max, Come faccio a creare file con estensione .x visto che non può esportare questo formato?

R: La risposta è semplice: All'interno di ogni pacchetto SDK di DirectX, c'è un'utilità che si chiama conv3ds.exe. Questa applicazione, converte il file .3ds esportabile da MAX in file .x utilizzabili dalle vostre applicazioni Direct3DIM/Direct3DRM.

18) D: Cos'è il DIV?

R: E' un ambiente di sviluppo per videogiochi che ha un linguaggio molto simile al C. Il costo è bassissimo e può essere acquistato in edicola, peccato però che lavora sotto dos.

19) D: Abbiamo una FAQ?

R: >:-|

6. Le lamerate e gli OT più spettacolari

*01/03/2000 - Tarallo, Subject: Amo i giochi
Mi piacerebbe avere tutti i giochi della playstation

----------

*01/12/2000 - Beppe, Subject: Aiutino, piccolo, per engine 3d rivoluzionario
Salve, sono un ingeniere IBM, sto scrivendo a tempo perso un favoloso engine 3d, mi sono perso però su un punto che reputo perlomeno fondamentale...
La mia domanda è questa:
Conoscendo il lato, il perimetro, la diagonale, l' angolo di un quadrato, come si calcola l'area ?

Grazie a tutti quelli che vorranno rispondermi.

- Beppe, IBM labs.

Con questo è tutto

--
Fabio "Engraver"
UIN: 47413913
Primary E-Mail: engraver@free.panservice.it
Secondary E-Mail: engraver@libero.it
Digital Artist - Snail Trail
"Technology for Art"

Le FAQ di it.comp.giochi.sviluppo sono disponibili su:
http://www.multiplayer.it/itaprogaming/icgs/
http://gpi.infomedia.it/servizi/ng.htm

> Parte 1 - FAQ Ufficiale di it.comp.giochi.sviluppo

Videogiochi

Indice
Sviluppatori
Sorgenti
Faq di ICGS 1
Faq di ICGS 2
Altre Liste Risorse
 

Pagine Utili

Riviste di VideoGame
Riviste di Informatica
Corso Linguaggio C
Corso 3D Studio Max
Listino Corsi

 

 

Per segnalarci un sito interessante clicca qui

Vuoi ricevere gratuitamente utili informazioni e curiosità direttamente via email?

Copyright © 1999 - 2017 Prometheo Srl - Per informazioni: info@prometheo.it (Informativa Privacy) - Numero Verde: 800.41.68.98

I prodotti citati sono marchi e marchi registrati dei relativi produttori. Ultimo Aggiornamento: 23/06/14.

Precedente ] Home ] Su ] Successiva ]