Autore Topic: Creazione di un videogame di Biliardo multipiattaforma  (Letto 6799 volte)

Offline Amig4be

  • Human Debugger
  • *****
  • Post: 6000
  • Karma: +45/-27
    • Mostra profilo
    • Commodore Computer Blog
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #15 il: 18 Marzo 2015, 15:20:06 »
beh si le decine di migliaia di pallette rigide che collidono non sono un problema... ma andiamo a vedere un po' di vero biliardo in slow motion
https://youtu.be/pZqkaJDaz2A

Questo, appena improvvisato col bge... lo userò come laboratorio per capire alcune cose
https://youtu.be/wDH-Qd4iPho

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5293
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #16 il: 18 Marzo 2015, 18:05:40 »
L'approssimazione rigid body è più che accettabile nei giochi. Fai una simulazione soft body solo quando ha veramente senso e se ti cambia drasticamente il gameplay, altrimenti sono solo calcoli sprecati.

Offline schiumacal

  • Tech Guru
  • *****
  • Post: 130
  • Karma: +1/-0
    • Mostra profilo
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #17 il: 18 Marzo 2015, 18:07:32 »
@ amig4be

Il primo video in slow-motion che hai postato si riferisce ad una specialita' di biliardo che e' la "carambola artistica".
Purtroppo non e' cosi semplice creare un gioco di biliardo sul PC che riesca a simulare tutte le specialita' del gioco esistenti al mondo. Ti faccio un esempio:

- Il biliardo piu' giocato in Italia comprende diverse specialita', ma quelle che vanno per la maggiore sono due: l'italiana (che pone 5 birilli al centro del tavolo), e la Goriziana (che pone 9 birilli al centro del tavolo).

Ebbene, queste due specialita' si giocano su un biliardo detto "internazionale" che altro non e' che lo stesso biliardo usato per le varie specialita' di "Carambola" tra cui anche l'artistica (come quella che hai postato nel video).

Il tavolo da biliardo internazionale e' un biliardo riscaldato mantenuto costante su tutto il piano alla temperatura di 36 C° gradi. Questo perche' si elimina l'eventuale umidita' che potrebbe stare sul panno verde.
Naturalmente questo comporta differenze di sviluppo delle biglie diverse da altre specialita', come ad esempio il Pool (che e' il classico gioco di biliardo con le buche all'americana), questi ultimi tavoli infatti non sono riscaldati.

altro esempio:
- Le biglie con cui si gioca nelle specialita' della "Carambola artistica" non sono in leghe plastiche, ma sono d'avorio proprio perche' hanno una resa completamente differente sul tavolo.
- Il diametro della parte terminale dei puntali delle stecche da biliardo puo' avere diverse misure secondo il tipo di specialita'... nella Carambola in genere e' un diametro di 10mm. mentre nell'italiana e nella goriziana il diametro e' di 12mm.

Ti assicuro che sembrano cavolate, ma per chi e' del settore egioca da diversi anni, tutte queste cose fanno una differenza impressionante nel modo di giocare.

La velocita' della biglia battente e la sua temperatura hanno dei valori di cui credo in una simulazione di gioco bisognerebbe tenerne conto. Io sinceramente non so' quanti programmatori di giochi simili hanno mai considerato cose di questo tipo.
Io vorrei farlo nel mio gioco, appunto perche' mi piacerebbe rendere la simulazione il piu' possibile uguale alla realta'. Insomma mi piacerebbe molto di piu' implementare l'aspetto matematico-scientifico oltre che quello ludico.

Tanto alla fine, se tutti realizzano giochi di biliardo con algoritmi di fisica-meccanica, perche' non aumentarne la simulazione implementando anche nuovi algoritmi di termodinamica ?

Ecco perche' a me non interessa molto creare un gioco che implementi scenografie ultrafantascientifiche, ma interessa molto di piu' un gioco che abbia, al suo interno, una resa il piu' possibile uguale alla realta'.

Ritengo infine che la vista dall'alto di tutto l'ambiente di gioco, (in questo caso il tavolo di biliardo), e' la migliore che si possa fare per casi simili... trovo abominevole quei giochi di biliardo 3d dove la telecamera segue sempre la biglia battente con inquadrature a tutto campo oppure zoom veloci, sono solo da mal di testa.
Un giorno risolverò equazioni di grado superiore a cinque.

Offline Amig4be

  • Human Debugger
  • *****
  • Post: 6000
  • Karma: +45/-27
    • Mostra profilo
    • Commodore Computer Blog
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #18 il: 18 Marzo 2015, 18:30:10 »
L'approssimazione rigid body è più che accettabile nei giochi. Fai una simulazione soft body solo quando ha veramente senso e se ti cambia drasticamente il gameplay, altrimenti sono solo calcoli sprecati.

sicuramente, solo che il gioco che ho postato Pool Nation (prendetevelo ormai costerà pochissimo) permette di calibrare i replay a uno slow motion lentissimo nel quale si colgono i dettagli della simulazione come ad esempio le sfonde non rigide del tavolo... penso che vista la potenza di calcolo ormai disponibile preferiscono sfruttarla per simulare il tutto con maggiore precisione e tirarci fuori dei replay accattivanti.

Offline schiumacal

  • Tech Guru
  • *****
  • Post: 130
  • Karma: +1/-0
    • Mostra profilo
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #19 il: 18 Marzo 2015, 18:33:32 »
Ragazzi scusate, mi date delle delucidazioni piu' dettagliate sul significato di rigid-body e soft-body. ?

Non ho mai usato software di grafica 3d e siccome ne sento parlare spesso, vorrei capire cosa sono e quali differenze ci sono tra loro.  :)
Un giorno risolverò equazioni di grado superiore a cinque.

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5293
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #20 il: 18 Marzo 2015, 18:36:20 »
Non conosco quel gioco, però sì, magari usano il softbody per le sponde e rigid per le biglie. Considerando i pochi elementi in movimento, ci stai dentro tranquillamente anche su una console di vecchia generazione :)

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5293
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #21 il: 18 Marzo 2015, 18:39:26 »
@schiumacal:
La simulazione Rigid Body approssima gli oggetti a modelli indeformabili (urti totalmente elastici e oggetti non deformabili), mentre softbody tiene conto delle proprietà di plasticità (urti anaelastici e deformazioni elastiche o plastiche).

Le equazioni per il Rigid Body sono più semplici e quindi richiedono meno potenza di calcolo, quindi si usano il più possibile per i giochi, per avere migliori prestazioni. I softbody sono molto più realistici ma pesano parecchio, quindi si usano solo se la cosa fa veramente la differenza a livello di gameplay (come sembra essere il caso del gioco citato da Amig4be).

Offline schiumacal

  • Tech Guru
  • *****
  • Post: 130
  • Karma: +1/-0
    • Mostra profilo
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #22 il: 18 Marzo 2015, 18:52:37 »
@schiumacal:
La simulazione Rigid Body approssima gli oggetti a modelli indeformabili (urti totalmente elastici e oggetti non deformabili), mentre softbody tiene conto delle proprietà di plasticità (urti anaelastici e deformazioni elastiche o plastiche).

Le equazioni per il Rigid Body sono più semplici e quindi richiedono meno potenza di calcolo, quindi si usano il più possibile per i giochi, per avere migliori prestazioni. I softbody sono molto più realistici ma pesano parecchio, quindi si usano solo se la cosa fa veramente la differenza a livello di gameplay (come sembra essere il caso del gioco citato da Amig4be).

Capito  :)
Ma tutto questo si puo' implementare con le OpenGL ?
Mi spiego meglio... le OpenGL hanno gia' al loro interno comandi che facilitano l'utilizzo dei rigid-body oppure dei soft-body, oppure ci sono degli algoritmi o meglio ancora librerie gia' sviluppate da terzi che permettono di sfruttare queste potenzialita' all'interno di codice C++ ?
Sempre per quello che vorrei fare io  ;)
Un giorno risolverò equazioni di grado superiore a cinque.

Offline Amig4be

  • Human Debugger
  • *****
  • Post: 6000
  • Karma: +45/-27
    • Mostra profilo
    • Commodore Computer Blog
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #23 il: 18 Marzo 2015, 20:14:55 »
Non conosco quel gioco, però sì, magari usano il softbody per le sponde e rigid per le biglie. Considerando i pochi elementi in movimento, ci stai dentro tranquillamente anche su una console di vecchia generazione :)

Infatti su ps3 va alla grande, forse su pc c'è qualche livello di simulazione superiore
https://www.youtube.com/watch?v=su0n_kA0F_Y


@schiumacal
Hai bisogno di un motore fisico per il moto e le collisioni di corpi rigidi sferici: in un qualsiasi game engine come BGE, Unity o UE4 è tutto pronto all'uso, basta fare un bel po' di test per stabilire i parametri corretti e realistici di attrito, frizione. La scena del video che ho postato l'ho fatta in mezzora.
Se ti vuoi caricare tutto sulle spalle... ok, ma non penso che i sistemi pseudo amiga valgano tanta pena. Discorso diverso se si vuole fare un lavoro molto semplificato me bello che stia dentro un vero amiga in grafica 2D

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5293
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #24 il: 19 Marzo 2015, 00:25:37 »
@schiumacal:
Z80Fan ti ha già spiegato prima che OpenGL serve solo per il rendering, il calcolo della fisica non è contemplato. Se vuoi fare una cosa saggia, usa un engine, non scriverti tutto tu in OpenGL, altrimenti non ne esci fuori :)

Offline Amig4be

  • Human Debugger
  • *****
  • Post: 6000
  • Karma: +45/-27
    • Mostra profilo
    • Commodore Computer Blog
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #25 il: 19 Marzo 2015, 19:48:51 »
@schiumacal:
Z80Fan ti ha già spiegato prima che OpenGL serve solo per il rendering, il calcolo della fisica non è contemplato. Se vuoi fare una cosa saggia, usa un engine, non scriverti tutto tu in OpenGL, altrimenti non ne esci fuori :)

@schiumacal
Stai per entrare in una valle di lacrime :D

Cmq non ti fare condizionare dalla pubblicazione per gli OS amiga, uno è fallito o non si sa bene, due sono fermi a delle implementazioni ridotte delle opengl, le persone che hanno un hardware compatibile con aros al 100% (accelerazione 3D inclusa) si contano sulle dita della mano...

Offline schiumacal

  • Tech Guru
  • *****
  • Post: 130
  • Karma: +1/-0
    • Mostra profilo
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #26 il: 20 Marzo 2015, 11:57:25 »
Stamattina ho avuto una lunga e proficua discussione con il mio prof. di Metodi Numerici. Gli ho accennato del mio progetto ed esistono degli algoritmi in Geometria e Algebra Lineare che permettono di ruotare una sfera intorno ad un asse. Beh! In effetti non solo una sfera, pero' in questo caso particolare si.

Calcolo di matrici e loro sviluppo...

Detto questo, per fortuna che all'Uni lavoriamo in C++, ora sto' studiando alcuni testi in pdf che riportano calcoli ed equazione basandosi sulla matematica di Coriolis, credo indicatissima per tutto cio' che concerne lo sviluppo del mio gioco.

Ora non mi tocca che mettermi sotto e provare a sperimentare e sviluppare tutto sul campo...

... intanto ho iniziato con la struttura di base del gioco e tutto lo sviluppo della grafica... saranno lunghe nottate  8)

Quello che devo capire bene e' se sia possibile, come penso che sia, realizzare gli sprite delle biglie in 2d e texturizzarle facendole sembrare in 3d, soprattutto quando rotolano sul tavolo da biliardo, insomma sviluppare tutto il gioco in 2d, semplificando cosi diversi passaggi per il suo sviluppo, ma deve comunque dare l'impressione che sia totalmente in 3d anche se con la sola vista dall'alto.

Quindi:
- perfetta gestione delle ombre.
- perfetta aminazione delle biglie quando rotolano, compreso il cambio di direzione di rotolamento nel momento in cui si urtano tra di loro oppure urtano una o piu' sponde del biliardo.
- poi tutta la geometria del gioco e suo sviluppo.
- tutta la meccanica: riferita a urti, frizione, ecc.

Insomma e' bello tosto  :'(
Un giorno risolverò equazioni di grado superiore a cinque.

Offline Amig4be

  • Human Debugger
  • *****
  • Post: 6000
  • Karma: +45/-27
    • Mostra profilo
    • Commodore Computer Blog
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #27 il: 20 Marzo 2015, 12:10:19 »
se insieme alla traslazione calcoli lo spin delle bilie, queste rotazioni sarebbero infinite. Anche discretizzando le rotazioni intorno ai tre angoli di tot gradi, le combinazioni da precalcolare in sprite sarebbero tantissime. Ti serve comunque una rappresentazione vettoriale delle palle a cui applicare una texture che automaticamente restituirà l'esatta rappresentazione della rotazione in base ai calcoli del motore fisico utilizzato.

Offline schiumacal

  • Tech Guru
  • *****
  • Post: 130
  • Karma: +1/-0
    • Mostra profilo
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #28 il: 28 Marzo 2015, 11:22:57 »
Compari buongiorno a tutti.

Da diversi giorni sto' lavorando sulla grafica del game, ne avro' ancora per un po'... considerando i miei tempi, immagino almeno per un altro mese buono.

Comunque, attualmente le varianti di biliardo che verranno implementate sul gioco saranno:

- 5 birilli (Italiana)
- 9 birilli (Goriziana)
- Pool (palla 8)
- Pool (palla 9)
- Pool (Continua a 15)
- Snooker
- Piramide russa

Questi sono i principali che si giocano in maniera regolamentata in tutto il mondo.

La grafica la sto' realizzando anche per Amiga, (anche se continuo a ripetere che su Amiga pensero' eventualmente alla fine), pero' procedendo in questa maniera, mi trovero' tutto gia' sviluppato fin da ora.
A tal proposito, devo decidere su quale sistema Amiga di base deve poter funzionare il gioco. Nello specifico, siccome tutta la parte grafica su Amiga e' limitata nel numero di colori e nella risoluzione video, se decido di farla, ad esempio su sistemi OCS oppure ECS oppure AGA...

Suggerimenti da parte vostra ?

Grazie.  :)
« Ultima modifica: 28 Marzo 2015, 11:25:33 da schiumacal »
Un giorno risolverò equazioni di grado superiore a cinque.

Offline TheKaneB

  • Human Debugger
  • *****
  • Post: 5293
  • Karma: +20/-23
    • Mostra profilo
    • http://www.antoniobarba.org
Re:Creazione di un videogame di Biliardo multipiattaforma
« Risposta #29 il: 28 Marzo 2015, 12:34:58 »
Secondo me dovresti concentrarti sul codice prima e mettere la grafica dopo. Anche perchè finchè non saprai come gestire le entità non puoi sapere quali saranno i requisiti per la produzione degli asset.

Tags: