Lista di partite online da server
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Lista di partite online da server
Viste le richieste recenti, ho deciso di riprendere e migliorare un sistema che ho creato tempo fa che permette di gestire un database di partite online tramite game maker.
In parole povere, si tratta di un mix di php,mysql e gml che dovrebbe evitare a chi crea giochi online di inserire manualmente l'indirizzo IP dell'host, fornendo invece una lista di partite in cerca di giocatori, come da immagine sottostante:
COSA SERVE
Per far funzionare il tutto vi servono:
- La gex della 39dll di bobistaken
- Uno spazio web con mysql (altervista può andare bene)
- Questo file zip contenente il gmk+exe d'esempio e le pagine php (GM8) o questo file gmk (GM7, solo editabile)
COME FUNZIONA
Il funzionamento é piuttosto semplice a grandi linee, abbiamo un database di partite in cerca di giocatori su un server, game maker tramite l'aiuto della 39dll si collega a delle pagine php sul server che vanno ad estrarre o modificare dati nel database. Eventuali parametri che devono andare a finire nel database come il nome della partita sono inviati nella richiesta della pagina php
Abbiamo le seguenti pagine:
list.php: Questa pagina genera la lista delle partite, che vengono restituite a Game Maker come stringhe. Sta poi al programmatore estrarre i necessari dati dalle stringhe. Se l'accesso alla pagina avviene tramite un browser, viene mostrata una tabella di partite in html.
insert.php: Permette di indicare al server la creazione, modifica o aggiornamento di una partita. Si aspetta di ricevere come parametri il nome del giocatore e il nome della partita stessa. L'ip di chi crea la partita viene salvato, di conseguenza se si chiama questa pagina dopo aver creato una partita, la partita viene aggiornata.
delete.php: Permette di eliminare una partita
config.php: contiene le informazioni di collegamento al database
Per questioni di sicurezza, non é possibile creare piu di una partita per IP. La creazione di una partita per un ip gia esistente nel database, andrà a modificare la partita esistente senza crearne una nuova.
UTILIZZO
Prima di tutto va creato sul server il database mysql che conterrà le partite. Di default il sistema si aspetta di trovare una tabella in mysql contenente i seguenti campi:
ip (VARCHAR 255)
name (VARCHAR 255)
player (VARCHAR 255)
last_update (DATETIME)
Ovviamente si tratta di campi minimi, a seconda del gioco e di quello che si vuole andrebbero ampliati
In seguito, aprire il file config.php e inserire nei vari campi i dati del proprio database, come il nome, server, password ecc... e caricare tutti i file php sul server.
A livello di game maker l'esempio incluso dovrebbe coprire la maggior parte dell'utilizzo standard. Ci sono alcuni punti però da tenere presente e alcuni script da configurare:
1. nell'evento create del controller_obj abbiamo la variabile "host". Va inserita in quella variabile l'indirizzo del sito con i file php (es: "www.gmitalia.altervista.org")
2. Negli script get_list_scr, upload_scr, delete_scr vanno modificati gli indirizzi delle pagine php sul server (es: "/gamemaker/miogioco/list.php")
IMPORTANTE! Quando si crea una partita sul server tramite lo script upload_scr, viene inserita la data di creazione della partita. Dopo 15 secondi, se questo script non viene chiamato nuovamente, la partita sparisce in automatico. Idealmente quindi, mentre l'host aspetta giocatori, ogni circa 10 secondi deve comunicare nuovamente al server (sempre con upoad_scr) che é ancora in attesa ed eventualmente un cambiamento nel nome della partita
In parole povere, si tratta di un mix di php,mysql e gml che dovrebbe evitare a chi crea giochi online di inserire manualmente l'indirizzo IP dell'host, fornendo invece una lista di partite in cerca di giocatori, come da immagine sottostante:
COSA SERVE
Per far funzionare il tutto vi servono:
- La gex della 39dll di bobistaken
- Uno spazio web con mysql (altervista può andare bene)
- Questo file zip contenente il gmk+exe d'esempio e le pagine php (GM8) o questo file gmk (GM7, solo editabile)
COME FUNZIONA
Il funzionamento é piuttosto semplice a grandi linee, abbiamo un database di partite in cerca di giocatori su un server, game maker tramite l'aiuto della 39dll si collega a delle pagine php sul server che vanno ad estrarre o modificare dati nel database. Eventuali parametri che devono andare a finire nel database come il nome della partita sono inviati nella richiesta della pagina php
Abbiamo le seguenti pagine:
list.php: Questa pagina genera la lista delle partite, che vengono restituite a Game Maker come stringhe. Sta poi al programmatore estrarre i necessari dati dalle stringhe. Se l'accesso alla pagina avviene tramite un browser, viene mostrata una tabella di partite in html.
insert.php: Permette di indicare al server la creazione, modifica o aggiornamento di una partita. Si aspetta di ricevere come parametri il nome del giocatore e il nome della partita stessa. L'ip di chi crea la partita viene salvato, di conseguenza se si chiama questa pagina dopo aver creato una partita, la partita viene aggiornata.
delete.php: Permette di eliminare una partita
config.php: contiene le informazioni di collegamento al database
Per questioni di sicurezza, non é possibile creare piu di una partita per IP. La creazione di una partita per un ip gia esistente nel database, andrà a modificare la partita esistente senza crearne una nuova.
UTILIZZO
Prima di tutto va creato sul server il database mysql che conterrà le partite. Di default il sistema si aspetta di trovare una tabella in mysql contenente i seguenti campi:
ip (VARCHAR 255)
name (VARCHAR 255)
player (VARCHAR 255)
last_update (DATETIME)
Ovviamente si tratta di campi minimi, a seconda del gioco e di quello che si vuole andrebbero ampliati
In seguito, aprire il file config.php e inserire nei vari campi i dati del proprio database, come il nome, server, password ecc... e caricare tutti i file php sul server.
A livello di game maker l'esempio incluso dovrebbe coprire la maggior parte dell'utilizzo standard. Ci sono alcuni punti però da tenere presente e alcuni script da configurare:
1. nell'evento create del controller_obj abbiamo la variabile "host". Va inserita in quella variabile l'indirizzo del sito con i file php (es: "www.gmitalia.altervista.org")
2. Negli script get_list_scr, upload_scr, delete_scr vanno modificati gli indirizzi delle pagine php sul server (es: "/gamemaker/miogioco/list.php")
IMPORTANTE! Quando si crea una partita sul server tramite lo script upload_scr, viene inserita la data di creazione della partita. Dopo 15 secondi, se questo script non viene chiamato nuovamente, la partita sparisce in automatico. Idealmente quindi, mentre l'host aspetta giocatori, ogni circa 10 secondi deve comunicare nuovamente al server (sempre con upoad_scr) che é ancora in attesa ed eventualmente un cambiamento nel nome della partita
Ultima modifica di Homunculus il 27/01/2010, 8:59, modificato 1 volta in totale.
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: Lista di partite online da server
Ehi, hai gm8!
Comunque io non potrei farlo, primo perché non ho uno spazio web con mysql o altervista(e non so i linguaggi per crearlo), secondo perché non ci ho capito una mazza del gmk!XD
Comunque io non potrei farlo, primo perché non ho uno spazio web con mysql o altervista(e non so i linguaggi per crearlo), secondo perché non ci ho capito una mazza del gmk!XD
- maz85
- Admin
- Messaggi: 8287
- Iscritto il: 07/02/2004, 15:57
- Specialità: Nientologo
- Località: Oblio
- Contatta:
Re: Lista di partite online da server
Veramente un buon lavoro...
Votate GmItalia nella classifica!
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Lista di partite online da server
Maz magari visto che mi sembri piu ferrato di me rispetto a php, se trovi qualche strafalcione...
Guidox: niente scuse, é tutto gia pronto! Su altervista ti iscrivi grauitamente e hai mysql, devi solo capire come creare il database e caricare i miei files
Guidox: niente scuse, é tutto gia pronto! Su altervista ti iscrivi grauitamente e hai mysql, devi solo capire come creare il database e caricare i miei files
- guidox
- GMI Honor
- Messaggi: 5765
- Iscritto il: 26/07/2009, 17:23
- Specialità: programmazione
- Uso: GM:Studio 1.4 Android
- Località: Marche
- Contatta:
Re: Lista di partite online da server
Potresti insegnarmelo tu una vola in chat!Homunculus ha scritto:devi solo capire come creare il database e caricare i miei files
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Lista di partite online da server
Ho caricato un gmk per GM7
- maz85
- Admin
- Messaggi: 8287
- Iscritto il: 07/02/2004, 15:57
- Specialità: Nientologo
- Località: Oblio
- Contatta:
Re: Lista di partite online da server
Mi pare tutto ok, il gmk è apribile solo con GM8.
Votate GmItalia nella classifica!
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Lista di partite online da server
Non l'ho incluso nello zip quello per il 7, c'é il link a fianco dello zip nel primo post
- maz85
- Admin
- Messaggi: 8287
- Iscritto il: 07/02/2004, 15:57
- Specialità: Nientologo
- Località: Oblio
- Contatta:
Re: Lista di partite online da server
Ah scusa, credevo che nel post precedente parlassi del gmk dentro lo zip.
PS: a che serve la cartella __MACOSX?
PS: a che serve la cartella __MACOSX?
Votate GmItalia nella classifica!
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
Ultime dal fronte.... notizie e altro sul sito di GmItalia
°Pagina personale: % di sviluppo giochi e altro°
Re: Lista di partite online da server
Funziona praticamente come il mio netvar che avete snobbato comunque buon lavoro.
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Lista di partite online da server
Ah vero siccome ho creato lo zip dal mac mi ha preso anche un file di sistema... non serve assolutamente a niente quindi ai fini dell'esempiomaz85 ha scritto:Ah scusa, credevo che nel post precedente parlassi del gmk dentro lo zip.
PS: a che serve la cartella __MACOSX?
- Sla
- GMI VIP
- Messaggi: 3618
- Iscritto il: 21/07/2008, 10:11
- Specialità: Titanismo
- Località: (gm) Italia
- Contatta:
Re: Lista di partite online da server
Perdona l'up, non sono molto pratico dei database mysql.
Come diavolo si crea un database mysql? Ho provato di tutto, scaricandomi sql community server (versione 5), impostando tutto, eseguendo la sua propria console e provando i comandi trovati in giro per il web, niente non c'è verso!
Come diavolo si crea un database mysql? Ho provato di tutto, scaricandomi sql community server (versione 5), impostando tutto, eseguendo la sua propria console e provando i comandi trovati in giro per il web, niente non c'è verso!
eppure mi sembra tutto giusto...
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Lista di partite online da server
L'hai installato sul tuo pc? Dovrebbero bastare i tool che ti forniscono con la community edition
Altrimenti vai di ms-dos, scrivi mysql -u root -p , poi ti chiede la password (se ce l'hai) e poi sei collegato e puoi digitare comandi (tipo: create database vattelapesca;)
Altrimenti vai di ms-dos, scrivi mysql -u root -p , poi ti chiede la password (se ce l'hai) e poi sei collegato e puoi digitare comandi (tipo: create database vattelapesca;)
- Sla
- GMI VIP
- Messaggi: 3618
- Iscritto il: 21/07/2008, 10:11
- Specialità: Titanismo
- Località: (gm) Italia
- Contatta:
Re: Lista di partite online da server
si avevo fatto tutto, continuava a darmi errore di sintassi sql.
eppure mi sembra tutto giusto...
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Lista di partite online da server
Continuava o continua? Casomai scrivimi la query.
- NoCode
- GMI VIP
- Messaggi: 3403
- Iscritto il: 01/09/2008, 8:08
- Specialità: Grafica e Musica
- Uso: GM:Studio 1.4 Pro
- Località: My houuuse... Where is my houuuuse?!?
- Contatta:
Re: Lista di partite online da server
Riuppo il topic per chiedere:
Ma cosa diavolo devo scrivere nel campo "indirizzo_database" nella pagina "config.php"?
PS: Funziona tutto, trova la partita ma non vede nome e indirizzo, ma forse è dovuto proprio al campo "indirizzo_database"...
EDIT: Ho anche un altro problema, se io apro "insert.php" da browser mi chiede la table "games" nel database...
Ma cosa diavolo devo scrivere nel campo "indirizzo_database" nella pagina "config.php"?
PS: Funziona tutto, trova la partita ma non vede nome e indirizzo, ma forse è dovuto proprio al campo "indirizzo_database"...
EDIT: Ho anche un altro problema, se io apro "insert.php" da browser mi chiede la table "games" nel database...
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Lista di partite online da server
indirizzo_database é il server su cui si trova mysql, devi vedere nelle faqs o manuale del tuo spazio web. Se é su altervista mi pare che basti mettere "localhost". Non capisco come ti funzioni senza questo parametro, non é che ti stai connettendo al mio di server? Hai aggiornato gli indirizzi alle pagine?
Inoltre, ovviamente devi avere una tabella nel database in cui salvare le partite, io l'ho chiamata games (se vuoi cambiare devi modificare i files). Sempre su altervista, cerca il tuo phpmyadmin e creati la tabella.
Inoltre, ovviamente devi avere una tabella nel database in cui salvare le partite, io l'ho chiamata games (se vuoi cambiare devi modificare i files). Sempre su altervista, cerca il tuo phpmyadmin e creati la tabella.
- NoCode
- GMI VIP
- Messaggi: 3403
- Iscritto il: 01/09/2008, 8:08
- Specialità: Grafica e Musica
- Uso: GM:Studio 1.4 Pro
- Località: My houuuse... Where is my houuuuse?!?
- Contatta:
Re: Lista di partite online da server
Ok, "localhost" l'ho messo, dopo un po' di ricerche, e sì, ho cambiato tutti gli indirizzi per collegarmi al mio sito.Homunculus ha scritto:indirizzo_database é il server su cui si trova mysql, devi vedere nelle faqs o manuale del tuo spazio web. Se é su altervista mi pare che basti mettere "localhost". Non capisco come ti funzioni senza questo parametro, non é che ti stai connettendo al mio di server? Hai aggiornato gli indirizzi alle pagine?
Inoltre, ovviamente devi avere una tabella nel database in cui salvare le partite, io l'ho chiamata games (se vuoi cambiare devi modificare i files). Sempre su altervista, cerca il tuo phpmyadmin e creati la tabella.
Per la table, io sono entrato in PHPMyAdmin, ho creato la table, ma mi da dei campi da compilare, e non ho la bencheminima idea di cosa scrivere
Help, please?
EDIT: Openpost is the way
Grazie!
- Homunculus
- Admin
- Messaggi: 6840
- Iscritto il: 25/11/2007, 20:36
- Contatta:
Re: Lista di partite online da server
Prego, leggi bene le istruzioni nell'open post, non sono facoltative, devi seguirle e dovrebbe esserci tutto
- NoCode
- GMI VIP
- Messaggi: 3403
- Iscritto il: 01/09/2008, 8:08
- Specialità: Grafica e Musica
- Uso: GM:Studio 1.4 Pro
- Località: My houuuse... Where is my houuuuse?!?
- Contatta:
Re: Lista di partite online da server
Ho letto e ora infatti funziona...Homunculus ha scritto:Prego, leggi bene le istruzioni nell'open post, non sono facoltative, devi seguirle e dovrebbe esserci tutto
Però mi servirebbe qualche informazione per capire qualcosa di più "complesso", del tipo:
-Mettere un server privato, con password
-Impostare un limite di giocatori
-Mostrare i giocatori connessi con relativo limite in parte
Visto che sono estremamente nabbo in PHP e MySql, mi servirebbe una mano...
Chi c’è in linea
Visitano il forum: Nessuno e 40 ospiti