Lista di partite online da server

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Lista di partite online da server

Messaggioda Homunculus » 25/01/2010, 23:08

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:
Immagine


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.

Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio Android
Località: Marche
Contatta:

Re: Lista di partite online da server

Messaggioda guidox » 26/01/2010, 14:17

Ehi, hai gm8! :D
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
Immagine

Immagine

Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: Lista di partite online da server

Messaggioda maz85 » 26/01/2010, 14:21

Veramente un buon lavoro...

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Lista di partite online da server

Messaggioda Homunculus » 26/01/2010, 17:43

Maz magari visto che mi sembri piu ferrato di me rispetto a php, se trovi qualche strafalcione... :mrgreen:

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

Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio Android
Località: Marche
Contatta:

Re: Lista di partite online da server

Messaggioda guidox » 26/01/2010, 17:49

Homunculus ha scritto:devi solo capire come creare il database e caricare i miei files

Potresti insegnarmelo tu una vola in chat! :mrgreen:
Immagine

Immagine

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Lista di partite online da server

Messaggioda Homunculus » 27/01/2010, 9:15

Ho caricato un gmk per GM7

Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: Lista di partite online da server

Messaggioda maz85 » 27/01/2010, 12:21

Mi pare tutto ok, il gmk è apribile solo con GM8. ;)

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Lista di partite online da server

Messaggioda Homunculus » 27/01/2010, 12:38

Non l'ho incluso nello zip quello per il 7, c'é il link a fianco dello zip nel primo post

Avatar utente
maz85
Admin
Messaggi: 8287
Iscritto il: 07/02/2004, 15:57
Specialità: Nientologo
Località: Oblio
Contatta:

Re: Lista di partite online da server

Messaggioda maz85 » 27/01/2010, 12:41

Ah scusa, credevo che nel post precedente parlassi del gmk dentro lo zip.
PS: a che serve la cartella __MACOSX?

Avatar utente
peppo
Newbie
Messaggi: 33
Iscritto il: 05/08/2008, 21:18
Contatta:

Re: Lista di partite online da server

Messaggioda peppo » 30/01/2010, 22:29

Funziona praticamente come il mio netvar che avete snobbato :lol: comunque buon lavoro.
Immagine

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Lista di partite online da server

Messaggioda Homunculus » 31/01/2010, 0:48

maz85 ha scritto:Ah scusa, credevo che nel post precedente parlassi del gmk dentro lo zip.
PS: a che serve la cartella __MACOSX?


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'esempio

Avatar utente
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

Messaggioda Sla » 02/09/2010, 17:45

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!
eppure mi sembra tutto giusto...

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Lista di partite online da server

Messaggioda Homunculus » 02/09/2010, 17:56

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;)

Avatar utente
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

Messaggioda Sla » 03/09/2010, 13:01

si avevo fatto tutto, continuava a darmi errore di sintassi sql.
eppure mi sembra tutto giusto...

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Lista di partite online da server

Messaggioda Homunculus » 03/09/2010, 13:20

Continuava o continua? Casomai scrivimi la query.

Avatar utente
NoCode
GMI VIP
Messaggi: 3403
Iscritto il: 01/09/2008, 8:08
Specialità: Grafica e Musica
Uso: GM:Studio Pro
Località: My houuuse... Where is my houuuuse?!?
Contatta:

Re: Lista di partite online da server

Messaggioda NoCode » 10/03/2011, 16:17

Riuppo il topic per chiedere:
Ma cosa diavolo devo scrivere nel campo "indirizzo_database" nella pagina "config.php"? :fapensare:

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... :fapensare:

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Lista di partite online da server

Messaggioda Homunculus » 10/03/2011, 17:36

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.

Avatar utente
NoCode
GMI VIP
Messaggi: 3403
Iscritto il: 01/09/2008, 8:08
Specialità: Grafica e Musica
Uso: GM:Studio Pro
Località: My houuuse... Where is my houuuuse?!?
Contatta:

Re: Lista di partite online da server

Messaggioda NoCode » 10/03/2011, 17:38

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.

Ok, "localhost" l'ho messo, dopo un po' di ricerche, e sì, ho cambiato tutti gli indirizzi per collegarmi al mio sito.
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 :lol:
Help, please? :fapensare:

EDIT: Openpost is the way :spat:
Grazie!

Avatar utente
Homunculus
Admin
Messaggi: 6840
Iscritto il: 25/11/2007, 20:36
Contatta:

Re: Lista di partite online da server

Messaggioda Homunculus » 10/03/2011, 17:50

Prego, leggi bene le istruzioni nell'open post, non sono facoltative, devi seguirle e dovrebbe esserci tutto

Avatar utente
NoCode
GMI VIP
Messaggi: 3403
Iscritto il: 01/09/2008, 8:08
Specialità: Grafica e Musica
Uso: GM:Studio Pro
Località: My houuuse... Where is my houuuuse?!?
Contatta:

Re: Lista di partite online da server

Messaggioda NoCode » 10/03/2011, 18:01

Homunculus ha scritto:Prego, leggi bene le istruzioni nell'open post, non sono facoltative, devi seguirle e dovrebbe esserci tutto

Ho letto e ora infatti funziona...
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... :lol:


Torna a “Domande e Risposte”



Chi c’è in linea

Visitano il forum: Bing [Bot] e 0 ospiti