Pagina 1 di 3

Lista di partite online da server

Inviato: 25/01/2010, 23:08
da Homunculus
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

Re: Lista di partite online da server

Inviato: 26/01/2010, 14:17
da guidox
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

Re: Lista di partite online da server

Inviato: 26/01/2010, 14:21
da maz85
Veramente un buon lavoro...

Re: Lista di partite online da server

Inviato: 26/01/2010, 17:43
da Homunculus
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

Re: Lista di partite online da server

Inviato: 26/01/2010, 17:49
da guidox
Homunculus ha scritto:devi solo capire come creare il database e caricare i miei files
Potresti insegnarmelo tu una vola in chat! :mrgreen:

Re: Lista di partite online da server

Inviato: 27/01/2010, 9:15
da Homunculus
Ho caricato un gmk per GM7

Re: Lista di partite online da server

Inviato: 27/01/2010, 12:21
da maz85
Mi pare tutto ok, il gmk è apribile solo con GM8. ;)

Re: Lista di partite online da server

Inviato: 27/01/2010, 12:38
da Homunculus
Non l'ho incluso nello zip quello per il 7, c'é il link a fianco dello zip nel primo post

Re: Lista di partite online da server

Inviato: 27/01/2010, 12:41
da maz85
Ah scusa, credevo che nel post precedente parlassi del gmk dentro lo zip.
PS: a che serve la cartella __MACOSX?

Re: Lista di partite online da server

Inviato: 30/01/2010, 22:29
da peppo
Funziona praticamente come il mio netvar che avete snobbato :lol: comunque buon lavoro.

Re: Lista di partite online da server

Inviato: 31/01/2010, 0:48
da Homunculus
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

Re: Lista di partite online da server

Inviato: 02/09/2010, 17:45
da Sla
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!

Re: Lista di partite online da server

Inviato: 02/09/2010, 17:56
da Homunculus
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;)

Re: Lista di partite online da server

Inviato: 03/09/2010, 13:01
da Sla
si avevo fatto tutto, continuava a darmi errore di sintassi sql.

Re: Lista di partite online da server

Inviato: 03/09/2010, 13:20
da Homunculus
Continuava o continua? Casomai scrivimi la query.

Re: Lista di partite online da server

Inviato: 10/03/2011, 16:17
da NoCode
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:

Re: Lista di partite online da server

Inviato: 10/03/2011, 17:36
da Homunculus
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.

Re: Lista di partite online da server

Inviato: 10/03/2011, 17:38
da NoCode
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!

Re: Lista di partite online da server

Inviato: 10/03/2011, 17:50
da Homunculus
Prego, leggi bene le istruzioni nell'open post, non sono facoltative, devi seguirle e dovrebbe esserci tutto

Re: Lista di partite online da server

Inviato: 10/03/2011, 18:01
da NoCode
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: