Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: ealmuno - 30 Gennaio 2010, 16:17:20

Titolo: [risolto]Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 30 Gennaio 2010, 16:17:20
Ciao,
ho realizzato un gioco a turni, solo che adesso vorrei poterci giocare da 2 pc connessi in internet, che dovranno avere il gioco installato nel proprio pc.
La mia idea era quella di usare un database per salvare i dati, ma ho letto qui sul forum che devo modificare i parametri per renderlo accessibile dall'esterno, dato che gli host non offrono questa possibilità e preferirei non farlo in locale volevo sapere un'altra possibile soluzione. Ho pensato di inviare i dati al database tramite un form php (che si trova nell'host, quindi non dovrebbe darmi problemi) oppure salvarli su un file di testo (preferirei di no) mi chiedevo se fosse possibile e dove posso trovare la documentazione di gambas per sapere come fare (ho guardato la gb.web ma non ho capito molto). Ovviamente essendo un gioco a turni il primo giocatore una volta fatta la mossa la salva, ma come fa il secondo a leggerla? nel senso metto un wait e gli faccio leggere i dati ogni tot di secondi e vedo se sono cambiati o come posso fare? Poi come faccio a far collegare fra di loro i due giocatori? pensavo tramite ip ma anche qui non ho chiare le idee, oppure mi conviene farli collegare a un altro database dove salvo ip e lo stato (cioè giocano o no) e lo faccio visualizzare agli altri che poi giocano con loro, come faccio a stabilire la connessione?

Scusate le mille domande, ma non ho le idee chiare da dove partire, magari esiste qualche esempio già fatto così posso vederlo? Mi interessa soprattutto dove trovare la documentazione specifica di quello che ho bisogno.

Grazie  :D
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: fsurfing - 30 Gennaio 2010, 23:48:42
se riesci a capirci qualcosa quarda il codice di meteomachinelinux nella parte del online , il programma utilizza la chiamata a pagine php per interagire con un db online
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 31 Gennaio 2010, 09:40:24
Intanto grazie per la riposta, la sto scaricando poi vedo cosa riesco a fare  ;D
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: Will32 - 31 Gennaio 2010, 11:11:26
Non ho capito il tuo problema : è tutto appiccicato !  ;D
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: leo72 - 31 Gennaio 2010, 11:19:44
Sinceramente neanch'io.
Se il problema è giocare fra 2 PC connessi in rete basta scambiarsi le informazioni usando un metodo server/client basato sul modulo ServerSocket contenuto nel componente gb.net.

Io l'ho usato per creare tunnel cifrati tra 2 computer, e funziona.
In pratica avvii su entrambi i PC remoti 2 server e 2 client.
ComputerA invia i dati tramite il clientA al serverB, ComputerB invia i dati tramite il clientB al serverB.
Io uso le porte UDP.
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 31 Gennaio 2010, 11:31:59
Cerco di spiegarmi meglio:
I due computer devono giocare in internet, entrambi devono avere il programma installato, il gioco è a turni. In sostanza è questo il problema.
Il resto sono solo considerazioni. Il mio problema è che è la prima volta che provo a fare una cosa del genere e non so come affrontare questa situazione (anche nel caso della rete).
Grazie
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: fsurfing - 31 Gennaio 2010, 19:13:24
il problema di giocare in rete tra due pc in modo diretto eè che ogni pc deve conoscere l' ip del giocatore opposto altrimenti non si riesce a colloquiare, ciò provato anche io tempo fa ma mi son bloccato a casa di alcuni modem alice che proprio non ne volevano sapere di lasciar passare i pacchetti in ingrasso :)
il vantaggio di usare un bd online è appunto che non è necessario mettersi d'accordo prima con l' altro giocatore per avviare la partita(scambio di iP) ma ci si connette sempre e solo a pagine web prestabilite, in tal modo si aumenta anche la sicurezza e non si deve dare il proprio ip in giro per il mondo
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 01 Febbraio 2010, 15:53:11
ok,
io voglio proprio realizzare la seconda, quella online.
quindi in teoria dovrei fare così:
1)creo il database
2)creo la pagina php che scrive i dati nel database
3)quando si connette un utente creo la nuova tabella per la sua partita e lo metto in attesa
4)quando si connette un secondo utente lo mano a quella tabella
5)al terzo utente creo la sua tabella....
6)a fine partita o alla disconnessione di uno cancello la tabella creata

il ragionamento è giusto? esiste qualcosa di simile così da vedere il codice? se no dove posso trovare la documentazione più adatta. Ho guardato il codice di meteomachine ma mi sono perso.
Grazie
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: Ceskho - 01 Febbraio 2010, 16:01:04
@ ealmuno

La soluzione scelta da te necessita di una conoscenza del php....io non so quanta voglia tui abbia di studiare ma imparare le basi di un secondo linguaggio per un solo progetto forse ti porta via tempo...secondo me ti converrebbe studiare gli strumenti di gambas anche perchè usare un server online significa anche certificare agli utenti che il tuo codice sia sicuro...spero di essere stato chiaro..

Poi ovviamente la scelta è totalmente tua e noi siamo qui per aiutarti in ogni caso con ogni mezzo....
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 01 Febbraio 2010, 16:17:33
come linguaggi ne conosco già parecchi: pascal, ms-dos, visual basic, java, sto iniziando il php e database. Il gioco è un progetto, molto probabilmente non sarà mai usato da qualcuno. Ho all'incirca altri 4 mesi quindi di tempo direi abbastanza  ;)
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: Ceskho - 01 Febbraio 2010, 16:20:28
Sono pienamente convinto delle tue capacità ma "conoscere un linguaggio" non è come "sapere un linguaggio"....c'è molta gente in giro per il web che vanta di conoscere innumerevoli linguaggi di programmazione ma io davvero non capisco come possa essere che io dopo un anno e mezzo di università conosco bene le basi del C/C++ (e solo quelle) e basta!!!

Allora o sono stupido io o sono dei geni gli altri...

Secondo me conviene focalizzare su un solo lingauggio perchè a saperne tanti va a finire che non se ne ne sa nessuno...

My2cent!!
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 01 Febbraio 2010, 16:22:12
ce li insegnano, mi tocca impararli, comunque il pascal lo so bene   ;D
il resto ovviamente so le basi, poi, caso mai, me li approfondisco per conto mio
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: leo72 - 01 Febbraio 2010, 16:25:32
Se è per questo io non conosco bene neanche Gambas, che cmq uso da anni ormai.
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 01 Febbraio 2010, 16:28:05
ritornando in topic, avete idee o mi conviene proprio lasciar perdere?
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: Ceskho - 01 Febbraio 2010, 16:43:20
Posso consigliarti di scaricare bashare che è un software scritto in gambas e che serve per condividere file tra due computer. Il programma che un server e chi scarica fa da client....suggerirti qui il codice è lungo e controproducente...ti consiglio di scaricare i sorgenti e di studiarli.....
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 01 Febbraio 2010, 16:55:01
ok, grazie, ora vedo cosa riesco a combinare
Titolo: Re: Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 19 Marzo 2010, 18:00:24
Alla fine, dopo aver provato con un grande insuccesso con l'ftp ho scelto di provare con quello che mi ha detto leo72:
Citazione
In pratica avvii su entrambi i PC remoti 2 server e 2 client.
ComputerA invia i dati tramite il clientA al serverB, ComputerB invia i dati tramite il clientB al serverB.
Io uso le porte UDP.
funziona, ho preso il codice degli esempi di gambas e modificato a mio piacimento, dovrebbe funzionare anche in internet ma lo devo ancora provare, per la lan va.
Titolo: Re: [risolto]Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: Ceskho - 19 Marzo 2010, 18:04:04
Se vuoi una mano con i test contattami pure che ti aiuto... ;)
Titolo: Re: [risolto]Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 19 Marzo 2010, 18:06:32
per adesso non mi serve, grazie, ho solo impostato la base del funzionamento, appena apporto le modifiche minime per un funzionamento decente (cioè una 20 di controlli) credo ti contaterò.
Titolo: Re: [risolto]Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: fsurfing - 19 Marzo 2010, 19:38:36
Citazione
In pratica avvii su entrambi i PC remoti 2 server e 2 client.
ComputerA invia i dati tramite il clientA al serverB, ComputerB invia i dati tramite il clientB al serverB.
Io uso le porte UDP.
ottimo :) però per usarlo su internet si deve avere l' ip dei due giocatori, inoltre bisogna aprire le corrispettive porte nel router, tempo fa feci delle prove per una cosa simile con Stef e nonostante innumerosi tentativi il suo router di Alice non lasciava " passare" la comunicazione inviata da gambas :( spero che tu avrai maggior successo !
Titolo: Re: [risolto]Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 19 Marzo 2010, 20:13:14
io uso il tcp, anche per la rete ho inserito gli indirizzi ip dei computer.
Titolo: Re: [risolto]Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: fsurfing - 19 Marzo 2010, 21:00:41
certo però ti conviene testare per bene il programma nell' utilizzo internet, in rete è molto più semplice e funzionale
Titolo: Re: [risolto]Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: leo72 - 24 Marzo 2010, 14:41:25
Se non ricordo male si può selezionare la porta. Penso basti selezionare la 80, che è quella del traffico internet e che è SEMPRE aperta su questi routerini da 2 lire e tutto dovrebbe andare. Per il proprio IP basta rivolgersi ad uno di quei servizi online per conoscere il proprio IP e comunicarlo all'altro giocatore.
Titolo: Re: [risolto]Realizzazzione gioco a turni fra 2 computer via internet
Inserito da: ealmuno - 24 Marzo 2010, 16:07:26
con la porta 80 non crea il server socket, da errore.
Per l'ip ok, stavo cercando un metodo per farlo in modo automatico, l'ftp risulta troppo lento, i database non sono accessibili dall'esterno, l'unica è php+database ma non ho ancora trovato come fare....