Autore Topic: Ma come si crea un videogioco?  (Letto 3926 volte)

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Ma come si crea un videogioco?
« il: 06 Maggio 2009, 10:20:43 »
Guardate questo :http://www.yofrankie.org/
So che è stato usato blender e una cosa tipo crystal space....
Ma la domanda è: come si crea un videogioco? con che linguaggio?

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Ma come si crea un videogioco?
« Risposta #1 il: 06 Maggio 2009, 13:24:53 »
Il inguaggio lo scegli tu...il problema non è quello...finchè gestisci giochi stupidi (tipo snake) anche il C da solo può andare bene...ma il problema è quando vuoi qualcosa di graficamente allettante!!!In quel caso devi gestire il comparto grafico col tuo linguaggio!!!

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Ma come si crea un videogioco?
« Risposta #2 il: 06 Maggio 2009, 16:57:52 »
Esatto. Un gioco lo puoi creare con qualunque linguaggio: Python, C, Gambas, Basic, ecc...
Il problema sorge proprio se il gioco deve essere "fico".

Un linguaggio interpretato come Gambas non è certo adatto ad un gioco d'azione, dove la potenza elaborativa è la costituente principale. Per fare un clone del Pacman o del Tetris va bene, ma se vuoi fare un clone di Quake allora....
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ma come si crea un videogioco?
« Risposta #3 il: 06 Maggio 2009, 18:06:34 »
Tieni conto che, per le librerie di base, il linguaggio principe è proprio il C, e neanche il C++, perchè occupa più risorse ed è più lento a causa della gestione degli oggetti. In casi particolari, viene usato addirittura l'assembler (ovvero linguaggio macchina), ma solo in casi veramente particolari.

Poi, tieni anche conto che dipende su quale piattaforma viene creato; nella fattispecie, su Linux non ci sono particolari problemi, perchè il kernel è molto snello e veloce, e permette di accedere in maniera più pesante sull'hardware (vedi scheda video...), mentre sotto windoz, il problema è che il kernel la fà da padrone, e non permette alcun accesso diretto all'hardware, ed è infatti questo il motivo della presenza delle DirectX e via dicendo...

Infine, come detto da leo e "comecavolosichiama" :-) , i linguaggi interpretati, dato proprio dal fatto che per girare passano per diversi strati di software, sono poco indicati per applicazioni grafiche avanzate come i giochi.
E' ovvio che parliamo di giochi ad un certo livello, non di PacMan o Poker, ma di programmi che sfruttano (e a volte richiedono) hardware al massimo della tecnologia; non a caso, ora come ora, i giochi sono proprio quella branca di software che forza lo sviluppo di hardware sempre più evoluto.

Offline leo72

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 2.163
    • Mostra profilo
    • http://www.leonardomiliani.com
Re: Ma come si crea un videogioco?
« Risposta #4 il: 06 Maggio 2009, 23:43:42 »
Per capire cose si intende quando si afferma che un linguaggio interpretato non è il massimo per la creazione di un videogioco senza l'uso di librerie 3D specifiche fai questo test: carica da Gambas gli esempi GLgears e BeastScrolling (vado a memoria, non mi ricordo se i nomi son giusti). Il primo gira senza particolari problemi perché si interfaccia all'hardware della macchina usando le librerie OpenGL, il secondo simula lo scrolling parallattico del vecchio gioco di 20 anni fa Shadow of the Beast (che giocavo sull'Amiga 500), e vedrai come qui, usando solo strumenti di Gambas, le risorse sono spremute al max.
Visita il mio sito personale: http://www.leonardomiliani.com

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ma come si crea un videogioco?
« Risposta #5 il: 07 Maggio 2009, 00:47:19 »
Ma è anche vero, e come ho già menzionato, che il fatto di avere una serie di passaggi su vari livelli di software, prima di arrivare all'hardware, è piuttosto lungo.

Da tenere conto:

1) il tuo codice
2) l'interprete Gambas
3) la libreria di collegamento di Gambas
4) la libreria grafica esterna
5) le primitive
6) il sistema operativo
... e via dicendo, ognuna che mette del suo, con conseguente consumo di risorse, alla fine il discorso si fà un tantinello pesante...

Ad ogni passaggio, ognuno occupa un certo numero di risorse (memoria, cpu, ecc.), inglobando il software sottostante, alla fine per un piccolo giochino hai un programma che occupa svariati mega, tra disco, memoria e consumo di cpu.

Il bello del C, o dell'asm, è che compilato si traduce in puro linguaggio macchina, con calcolo del consumo di risorse ristretto al solo necessario; da notare che a parità di applicazione, già le dimensioni dell'eseguibile sono di gran lunga inferiori ad una qualsiasi altra applicazione, anche escludendo linguaggi intepretati.

A dir la verità, per alcuni di questi linguaggi (interpretati), si è fatto molto per migliorarle, in quanto a velocità, ma è anche vero che l'apparenza inganna, in quanto ora come ora il supporto hardware è di molto cambiato.
Se, però, andiamo a verificare cosa un programma fà, e quanto consumo fà dell'hardware, vediamo che il rapporto in differenze è rimasto uguale a 20 anni fà.

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Ma come si crea un videogioco?
« Risposta #6 il: 07 Maggio 2009, 00:52:27 »
E' vero asnche che ora esistono i linguaggio semi-interpretati.....che creano software a metà tra programmi interpretati e codice macchina....un pò come gambas....quindi già qualcosa la si sta facendo...ovvio che non sono comunque adatti a creare videogiochi ma se ti accontenti di cose non allettanti allora java e flash insegnano che è possibile...

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ma come si crea un videogioco?
« Risposta #7 il: 07 Maggio 2009, 01:34:33 »
Infatti, coem ho scritto, ma la cosa è fattibile perchè l'hardware odierno è di molto avanzato.

Comunque, il "semi-intepretato" è un arzigogolo per far sì che:

1) il codice viene precompilato in modo da renderlo il meno leggibile
2) parte del codice viene resa parte binaria, per renderla più gestibile a livello di prestazioni, e alleggerire il peso all'interprete, ma è piuttosto un pagliativo...

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Ma come si crea un videogioco?
« Risposta #8 il: 07 Maggio 2009, 13:29:20 »
Gambas purtroppo non si presta moto a questa attività...già una volta si era provato questo esperimento in questo stesso forum e lo stesso è purtropppo fermo da molto tempo....si fa prima ad imparare il C che non a creare giochi con gambas!

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Ma come si crea un videogioco?
« Risposta #9 il: 07 Maggio 2009, 22:20:34 »
Ok, raga, siete stati chiarissimi....il punto è che gambas per me è molto più semplice da imparare (un po' perchè smanettavo col vecchio visual basic e un po' perchè costruire una interfaccia con gambas è molto semplice, oggettivamente)
Sinceramente sto leggendo il c, (sto provando ad impararlo) ma ad essere sinceri la cosa complicata è proprio la costruzione delle interfacce....con glade la riesco a disegnare ma poi non ho mai capito come unire il mio codice all'interfaccia.... poi le gtk sono un po' strane per i miei gusti, in pratica, quando con glade creo una interfaccia, sono costretto ad inserire prima di tutto una tabella (altrimenti mi ritroverei un pulsante grande quanto la form stessa) e poi all'interno della tabella metto quello che mi serve (con gambas, ma anche con le qt, inserisco il pulsante senza metterlo in un contenitore che poi gli dia forma e dimensione)
comunque il medesimo discorso vale anche per la creazione di un software di editing video? Sto studiando gstreamer e un giorno mi piacerebbe creare qualcosa...mi consigliate di passare direttamente al c o posso continuare con gambas?
ciao e grazie mille!
Insomma per ora studio, solo che non vorrei studiare qualcosa che alla fine potrebbe non servirmi e quindi avermi fatto perdere solo del tempo....

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Ma come si crea un videogioco?
« Risposta #10 il: 07 Maggio 2009, 23:39:02 »
Gambas dal lato sua ha la semplicità....è semplice in tutto perchè questa è kla filosofia del basic (ecco perchè visual basic ha così successo).

Dal canto mio posso dirti che da quando all'università studio il C mi si è aperto un mondo completamente nuovo. Ci sono nozioni ed argomenti dei quali non senti parlare in ambiti come questo...

Se posso ti vorrei consigliare di vedere il C...oltre ad essere multipiattaforma (che al giorno d'oggi non guasta) è compilato (quindi molto veloce)....per la programmazione agli oggetti allora guarda il c++...

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ma come si crea un videogioco?
« Risposta #11 il: 08 Maggio 2009, 00:29:55 »
Citazione

non vorrei studiare qualcosa che alla fine potrebbe non servirmi e quindi avermi fatto perdere solo del tempo....


Bè, scusa se te lo dico, ma questa frase non mi sembra molto, nè filosofica e neanche realistica...
Se prima non vedi cosa può fare un linguaggio senza averlo prima provato sulla tua pelle, e soprattutto cosa tu vuoi veramente fare e obiettivi raggiungere, non puoi scrivere una frase simile, a mio avviso. Anche prendendo come validi tutti i discorsi che un qualsiasi esperto, o meno, fà su un determinato argomento, sei poi tu che devi decidere cosa fare e cosa prendere per buono; quello che noi abbiamo scritto è sempre dipendente dalla nostra personale esperienza, e dal nostro sempre personalissimo gusto, ma non è la bibbia...
Anche perchè il discorso potrebbe cambiare strada, se i tuoi obiettivi sono altri...

Hai imparato qualcosa di Gambas, ma non per questo puoi considerarlo l'ultimo baluardo, o il top dei top della programmazione. E' facile, ma ha anche i suoi bei limiti, un linguaggio più evoluto potrebbe anche darti più soddisfazioni, in particolare se la vedi con obiettivi a lungo termine
Citazione
alla fine potrebbe non servirmi
.
Alla fine quando? Chi ti dice che magari il prossimo anno Gambas non venga più sviluppato?

Hai provato glade, ma glade è solo uno dei tantissimi tool per la costruzioni di interfacce grafiche, e il fatto che tu non lo abbia compreso ancora, potrebbe anche essere dovuto dal fatto che ti sei abituato alla relativa semplicità fornita dall'ambiente ide di Gambas.

...

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Ma come si crea un videogioco?
« Risposta #12 il: 08 Maggio 2009, 20:31:41 »
Citazione
Bè, scusa se te lo dico, ma questa frase non mi sembra molto, nè filosofica e neanche realistica... Se prima non vedi cosa può fare un linguaggio senza averlo prima provato sulla tua pelle, e soprattutto cosa tu vuoi veramente fare e obiettivi raggiungere, non puoi scrivere una frase simile, a mio avviso. Anche prendendo come validi tutti i discorsi che un qualsiasi esperto, o meno, fà su un determinato argomento, sei poi tu che devi decidere cosa fare e cosa prendere per buono; quello che noi abbiamo scritto è sempre dipendente dalla nostra personale esperienza, e dal nostro sempre personalissimo gusto, ma non è la bibbia... Anche perchè il discorso potrebbe cambiare strada, se i tuoi obiettivi sono altri...  Hai imparato qualcosa di Gambas, ma non per questo puoi considerarlo l'ultimo baluardo, o il top dei top della programmazione. E' facile, ma ha anche i suoi bei limiti, un linguaggio più evoluto potrebbe anche darti più soddisfazioni, in particolare se la vedi con obiettivi a lungo termine

Certo, trovo giusto tutto ciò che dici. La mia frase è stata detta solo perchè avendo una scarsa esperienza, magari imparare qualcosa che poi limita forse non è sensato...certo se veramente ti limita....nel caso di gambas non credo. ho fatto un po' di ricerche e ho visto che sotto windows moltissimi programmi sono stati sviluppati in visual basic, che è interpretato come gambas, giusto?
I miei obbiettivi? non li conosco manco io. Sto imparando e sto affrontando una fase particolare nel senso che più imparo e più non ho idee. Non so cosa realizzare. Vorrei fare qualcosa, un videogioco, un programma di grafica o di editing video (tutte cose che mi piace fare) ma alla fine non so cosa realmente farò, se lo farò!
Citazione
Alla fine quando? Chi ti dice che magari il prossimo anno Gambas non venga più sviluppato?
Questo vale anche per glade o le gtk, giusto? Vale per tutti i progetti open che un giorno potrebbero essere abbandonati per un motivo qualsiasi.....

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ma come si crea un videogioco?
« Risposta #13 il: 11 Maggio 2009, 11:54:05 »
Sì, ma come aveva scritto leo in un'altra discussione, spesso e volentieri il progetto viene preso da altri che ne faranno un fork...

Da alcune mie semplici ricerche, e installazioni in ambiente virtuale, ho notato che quasi tutte le distro Linux hanno nei propri repository i pacchetti Gambas; l'unica che non lo ha fatto, almeno riguardo quelle più diffuse, è SuSe, forse per la giusta logica di pubblicare solo gli applicativi perfettamente stabili, o forse per altri motivi... non sò...

Riguardo a quello che puoi fare, il discorso è abbastanza ostico.
L'idea di metter su un qualche progetto, dipende se uno ha uno scopo ben preciso, oppure ha esperienza in qualche settore, e per il quale desidera sviluppare un qualcosa che, o non cè in giro (come ho fatto io con pgDesigner), oppure ne esistono solo di commerciali, oppure anche per il solo gusto di affrontare una cosa già fatta ma improntandola su basi diverse (un fork...).

Sicuramente, almeno riguardo l'informatica, è molto importante che lo studio sia parallelo alla pratica, altrimenti si arriva ad un punto in cui sembra che sai tutto, sei un esperto in tutto (ce ne sono moltissimi), ma i veri problemi non li hai mai affrontati e risolti (ce ne sono pochi così...).
Non conosco le tue esperienze e le tue conoscenze, ma sicuramente credo che qualcosa, se vuoi creare qualcosa davvero, lo trovi... basta che ti guardi in giro... avrai avuto un qualche problema che non hai potuto risolvere, almeno in modo semplice, perchè non esistevano programmi ad-hoc...

Offline Lux

  • Maestro Gambero
  • ****
  • Post: 416
    • Mostra profilo
Re: Ma come si crea un videogioco?
« Risposta #14 il: 11 Maggio 2009, 15:39:29 »
Per quanto mi riguarda studio e faccio pratica contemporaneamente in modo da realizzare ciò che ho appena imparato, altrimenti finirei per non capirci nulla....
Per quanto riguarda le mie esperienze di programmazione, diciamo che ho imparato a giocare col visual basic, realizzando dei semplici tool per lavoro (nulla di particolarmente complesso)
Ora diciamo che voglio pormi degli obbiettivi, seguendo anche i vostri consigli.
vorrei imparare a creare un file xml per il salvataggio dei dati, poi vorrei utilizzare gstreamer per creare un tool che mi consenta di importare video....
Penso che se gambas abbia dei limiti allora li scoprirò programmando....solo allora capirò se gambas è utile o meno per ciò che vorrei fare....