Benvenuto Ospite,
per utilizzare il Forum ed avere accesso a tutte le sezioni e poter aprire un tuo Topic, rispondere nelle varie discussioni, mandare o ricevere Messaggi Privati devi seguire pochi passaggi:


Leggi il nostro Regolamento -> PREMI QUI <-
Segui il link su come Iscriversi -> PREMI QUI <-


Ricordati di aggiornare l'Avatar usando una immagine che ti distingua nel Forum

Sito web Arcade Database

Il database che raccoglie tutte le informazioni sui giochi, video, screenshot e tanto altro ancora

Moderatore: Moderatore ADB

Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4934
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 70 volte

Re: Progetto Arcade Database

Messaggio da pucci »

grande! continua così! e speriamo di poterlo provare presto!
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Sta iniziando il processo di import "definitivo". Anche se non ho finito di scrivere tutte le routine di importazione, ho scelto di iniziare a popolare la tabella con dei dati ufficiali così da non dover ripetere sempre le stesse cose... ovviamente, se trovo errori, dovrò ripartire dalla versione 0.1.

Ad ogni modo vorrei anche iniziare a pensare al layout che dovrà avere il sito.
Io pensavo ad una pagina con barra laterale (i classici link di ricerca, informazioni, ringraziamenti e contatti) e poi realizzare almeno 4 pagine principali:
1) ricerca semplice (pochi filtri)
2) ricerca avanzata (tutti i filtri possibili, più l'accesso allo storico del Mame)
3) dettaglio su un gioco (tutte le informazioni che memorizzo, compresi eventuali dati di storico e link a siti esterni)
4) esportazione dati (ancora da pensare)

Concentrandomi sulla prima, quale disposizione scegliere per le informazioni?
Filtri in alto, dati sotto con possibilità di cambio visualizzazione (lista, griglia, galleria, ecc).

Disegnerò qualcosa su carta per capire come può diventare, comunque se avete idee fatemelo sapere :)
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
baritonomarchetto

Donatore
God of Arcade
God of Arcade
Messaggi: 2965
Iscritto il: 12/11/2008, 14:40
Medaglie: 1

Re: Progetto Arcade Database

Messaggio da baritonomarchetto »

Seguo con interesse ;)
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Oggi avevo tempo e sono andato avanti. Scritte le routine di import per tutte le versioni (xml e dat) e funzionalità di rollback per rimettere le cose a posto dopo un aggiornamento andato male, potendo tornare fino all'inizio (rimetto i giochi che avevo storicizzato al loro posto, cambio quelli dell'emulatore precedente e cancello i nuovi inseriti e lo storico). Mi è servito già parecchie volte... :)
Ho importato 138 versioni (ossia sono alla 0.80 ora) e purtroppo l'ho dovuto fare due volte, quindi una per una mi sono sistemato i file ed eseguito gli import di tutta quella roba...... <-ranting3->

Ho inoltre scoperto che un'informazione è stata decodificata male ma avendo il blob con i dettagli riesco a ricreare quei dati senza dover ripetere le operazioni. Ed è anche questo il motivo per cui ho aggiunto i nodi xml che fornisce il Mame.

Siamo alla 0.80, nessun tipo di immagine (non ne ho trovate in giro così vecchie, la prima è la 106) e il database è di circa 40MB con poco più di 30 mila record in totale (attuale+storico).
Direi che i numero sono ancora piccoli, c'erano pochi giochi (migliaia) mentre le ultime versioni ne hanno 30 mila ciascuna e poi mancano tutte le informazioni più pesanti come history e altro.
Considerando che i giochi elaborati sono stati 230 mila, direi che il risparmio sul database si fa sentire già adesso! <-thumbup->

Prossimamente arriverò fino alla 106 per scrivere anche le routine di import immagini/video e nplayers, ma dedicherò un po' di tempo al layout perchè è ora di iniziare pure quello... <-Gelato->
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Altro aggiornamento corposo, ormai non mi fermo più! :D
Scritto le routine per l'import di quasi tutte le risorse!!
Rimangono fuori solo un paio di file ini o poco più. Ci sono 28 procedure di importazione, ognuna per gestire una differente tipologia di file, ma ciascuna interroga il database, verifica tutto prima di fare le cose e poi le fa. Se incontra un errore cerca di rimettere le cose a posto, segnala con un dettaglio errori molto particolareggiato e si predispone per ritentare un'altra volta.
Nel caso dei file png o altro, se il file esiste già viene confrontato e se identico ignorato. Se invece sono differenti, il vecchio viene storicizzato (quindi accessibile dalle interrogazioni e visualizzazioni avanzate) e poi viene copiato il nuovo file che diventa quello corrente.
Quello che non trovo rimane nella cartella di import per cui sono subito evidenti eventuali anomalie.
In genere gli archivi più corposi contengono anche 30 mila file quindi è obbligatorio semplificare ed automatizzare.

Di fatto si potrà quindi avere il massimo dettaglio, compreso di file extra (immagini, video, manuali, ecc) per ciascuna versione gestita.
Ovviamente non sempre sono presenti quei file ma tengo traccia di tutti gli import e ci sarà una paginetta per capire cosa è successo nel tempo e quale sia lo stato del progetto (es. se ho aggiornato le immagini alla 0.158 oppure no, ecc).

In foto vedete la maschera che utilizzo per fare queste cose. Per il momento è inglobato nel mio sito, ma presto lo staccherò visto che sta diventando bello corposo.
Ogni volta che faccio un'import sparisce la voce dal menu quindi diventa molto facile vedere cosa manca da fare.
Posso eseguire queste procedure quante volte voglio fino a quando non sono contento e poi confermare la chiusura per quella versione dell'emulatore. In griglia apparirà il successivo, se ho inserito i dati della nuova uscita. Se invece non sono contento, faccio rollback (tasto apposta) e la situazione torna come era prima.
Non ho previsto il rollback delle immagini ma lo inserirò perchè diventa poi una cosa molto comoda sapere che si può sempre annullare l'ultima operazione.
In pratica diventa quasi impossibile commettere errori perchè ho reso tutto guidato e filtrato.
Schermata.png
Tutto provato una decina di volte, sta funzionando davvero molto bene. Direi oltre le mie aspettative ;)

Ovviamente tutti questi file arrivano da AntoPisa che fa un lavoro davvero notevole nella sua raccolta e che mi sembra giusto ringraziare.

Ma idee sul layout nessuna?? <-on_confused->
Su non siate timidi... :rofl2:
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4934
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 70 volte

Re: Progetto Arcade Database

Messaggio da pucci »

Sei un grande! Non vedo l'ora che vada live
Pucci - The Bastard Son of Arcade Italia
"MODerrare humanum est"
tutte le copertine di The Games Machine
non combatto guerre di intelligenza con gente disarmata
Avatar utente
PaTrYcK
Moderatore
Moderatore
Messaggi: 11588
Iscritto il: 12/10/2009, 20:35
Città: Cagliari
Grazie Ricevuti: 27 volte

Re: Progetto Arcade Database

Messaggio da PaTrYcK »

Complimenti!
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Direi che in questi giorni non ho fatto altro che lavorare al progetto... e spalare della neve <-ranting3->
Adesso ho concluso tutte le routine di importazione dati, ben 32!! <-w00t-anim->

Codice: Seleziona tutto

LISTE: gamelist.xml/mame.dat
CATEGORIE (INI): adult, catlist, genre, series, nplayer
IMMAGINI: cabinet, cpanel, flyer, ingame, marquee, title, artwork, background, bezel, boss, gameover, howto, logo, pcb, score, select, versus
VIDEO: longplay, shortplay, speedrun
ALTRO: icon, manual, history-us, history-it, mameinfo, mamescore/story
Manca solo l'import da MameUIFX AI Mod ma prima di iniziarlo vorrei arrivare alla versione 157 del Mame ufficiale, altrimenti non potrei neppure provarlo a dovere.
Pensavo di impiegare almeno un mese per arrivare a questo punto ma questo progetto mi piace troppo per lasciarlo in disparte <-Gelato->
Quindi posso partire a caricare i dati dal Mame 0.1 in maniera ufficiale!
Prima di questo però vorrei fare qualche disegno per capire come realizzare il sito e soprattutto staccarlo dal mio, così da non avere problemi al momento della pubblicazione.

Come nome allora cosa scegliamo?
  • 1) Arcade Database / ArcadeDB / ADB
    2) GameBase / GB
    3) altro?
Ricordo che conterrà inizialmente tutto ciò che riguarda l'universo Mame (tranne le rom e i bios) e successivamente vorrei fare NeoGeo, Mess ed altri. Magari non subito... tra qualche anno... 8-)
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4934
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 70 volte

Re: Progetto Arcade Database

Messaggio da pucci »

RetroBase / RB --> se pensi al retrogaming/emulazione in generale
ArcadeBase / AB --> se pensi solo agli arcade
MameBase / MB --> se pensi solo al MAME
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4934
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 70 volte

Re: Progetto Arcade Database

Messaggio da pucci »

ti espongo un mio grande sogno che in qualche modo potrebbe essere legato al tuo progetto.

vedere il MAME che emula TUTTI i giochi arcade

ovviamente non è possibile:
- molte schede sono ormai andate perse e possediamo solo foto, articoli di giornale, chio non più funzionanti

però tante volte, a detta degli stessi autori, il compito principale del MAME è preservare e documentare, e questo spiega perchè vengono creati dei driver che risultano essere poco più che dei segnaposto (a volte contengono solo il nome del gioco e neanche l'elenco delle rom)

sarebbe avere un sito che ti dice:
- nella storia sono stati creati 100.000 videogiochi
- MAME ne emula 30.000
- altri emulatori ne emulano 20.000
- 10.000 sono stati dumpati
- degli altri non si sa niente

ci sono diversi siti che si sono specializzati solo in alcuni di questi aspetti, ma ognuno "manca di qualcosa"
- alcuni si occupa solo di ciò che è già emulato: http://www.progettoemma.net/
- altri di quello che non è emulato (ma sono sotto forma di lista HTML e non di database, quindi non indicizzabili): http://unmamed.mameworld.info/
- altri si occupa di tutto (anche di più di quello che serve), sono sotto forma di database, ma estremamente scarni di informazioni: http://www.arcade-history.com/
- altri si occupano solo delle schede Arcade non dumpate: http://mamedev.emulab.it/undumped
- altri sono ricchi di informazioni ma trattano solo alcune case di produzione: http://www.system16.com/

insomma: manca il database arcade definitivo!

ne avevo parlato qualche tempo fa su MAMEItalia: http://www.mameitalia.net/index.php?showtopic=13499

e avevo trovato un pò di link a varie proposte in rete:
http://www.progettoemma.net/
http://www.klov.net/
http://www.system16.com/
http://unmamed.mameworld.info/
http://www.games-db.com/
http://www.arcade-history.com/
http://www.ggdb.com/
http://pcbdb.net/
http://www.coinop.org/
http://www.greatgamedatabase.com/
http://arcade.codebot.org/
http://www.highwaygames.com
http://mamedev.emulab.it/undumped

effettivamente, come disse qualcuno in quella discussione, quello che forse si avvicina di più alla mia idea è: http://www.arcade-history.com/
anche se secondo me rimane:
- troppo scarso di informazioni
- spartano
- presentazione schede confusionaria e poco "attraente"
- scarsa personalizzazione delle ricerche nel database

quel sito raccoglie ogni tipo di cosa, dai diorama, alle vending machine, ecc...
quello che interessa a me è nella sezione [Coin-Op] Arcade Video Game (potete selezionare direttamente solo quella con questo permalink: http://www.arcade-history.com/index.php ... isttypes=1
è carina la possibilità di filtrare per anno di produzione.
ad esempio volete sapere quali nuovi video game arcade sono stati prodotti nel 2014? ecco qua: http://www.arcade-history.com/index.php ... &annee=171
molto carina anche la timeline: http://www.arcade-history.com/index.php?page=timeline

ma rimane comunque un sito "bruttino" e poco usabile.
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Tanta roba... e tutto in linea con il mio progetto :)
Ho iniziato dal Mame perchè fornisce molte informazioni su tantissimi giochi, che poi sono la maggior parte di quelli che uso.

Nel mio piccolo (casa mia) c'è un catalogo di giochi e sotto un insieme di emulatori, tutti quanti si affacciano a pc o cabinato con una gui unificata.
Il catalogo contiene di tutto: una cinquantina fra dettagli e media per singolo gioco. E poi recensioni, video (anche da 1GB l'uno!), link ad altri siti, ecc.

Fare una raccolta come la intendi tu è un'opera troppo grande per le mie risorse (sia di tempo che di conoscenza) per cui ho scelto di partire da quello che conosco meglio, cioè il Mame.
Inoltre, a differenza del mio catalogo casalingo, per il nuovo sito che verrà ho deciso di trattare tutti i giochi mai usciti per il Mame per un motivo molto semplice: a volte capita che si cerchi un gioco ma che non si ha a disposizione l'ultima versione. Se la rom ha cambiato nome, non verrà più elencata in nessun sito web.
Proprio per evitare questo problema ho una tabella di archivio e le ricerche andranno sempre ad insistere su tutti i giochi, anche quelli cancellati (opportunamente segnalati certo).

Per il resto le ricerche che mi servono già le ho: posso cercare giochi che si giocano in 2, cloni o no, filtrare per una parte del nome, magari solo una piattaforma o magari solo funzionanti. Con schermo orizzontale o verticale, quelli che sono stati giocati in bacheca qui da noi, quelli che sono inclusi nel libro di Super Play, ecc.
Ma un conto è tenersi queste cose per se, un altro è pubblicarlo online con attorno un bel sito come si deve ;)

Quindi per me va benissimo fare un mega database con tutti i giochi mai esistiti, anche non emulati o emulabili, ma ci sono tanti aspetti da considerare.
Me ne vengono in mente tre subito:
- chi inserisce questi dati? Per il mame è comodo, 30 mila in un colpo solo, ma per tutti gli altri?
- ci vuole un elenco di console/emulatori, e per ciascuno la storia perchè almeno si sappia cosa è e come funziona
- un sito del genere richiede impegno a tempo pieno, che io non ho :on_cry:

Per esempio io includerei anche le informazioni di Arcaworld direttamente nel gioco scelto sul sito, anzichè aprire il pdf e cercarlo lì dentro. Tutte idee che poi si scontrano con la realtà ed il poco tempo a disposizione.

L'ultimo sito che ho pubblicato è quello di Sovox per il Commodore 64. Credo di essermi offerto di farlo dopo l'estate dello scorso anno e non è ancora finito. Come risultato mi piace molto, ma stiamo parlando di almeno 5 mesi di tempo libero di lavoro.

Comunque, il thread è stato aperto proprio per parlare di cosa metterci dentro quindi ben vengano tutte queste chiacchiere <-gogogo->
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

pucci ha scritto:ne avevo parlato qualche tempo fa su MAMEItalia: http://www.mameitalia.net/index.php?showtopic=13499
Mi sono andato a leggere quella paginetta... impressionante vedere come il "mio" ArcadeDB sia praticamente identico al "tuo" ;)

Io ci sono arrivato da un'idea avuta tanti anni fa ma che poi non ho mai esplorato. Ora che invece sono un po' più dentro alla programmazione web, e visto che la cosa è fattibile, magari se ne può parlare più in dettaglio.

Nelle risposte che hai avuto su MameItalia ho visto però che alcuni non hanno molto chiaro cosa ottenere, ne come.
Vedo ad esempio che s_bastian, che ovviamente va ringraziato per aver curato ProgettoEmma fino ad oggi, pensava di fare script e poi mantenere i dati a mano. Purtroppo una pratica simile è improponibile, perchè il Mame continua ad avanzare e la mole di dati che si porta dietro è impressionante. Senza automatismi non avrei il tempo per fare altro nella vita che inserire e modificare i dati sui giochi. E si sa, quando un lavoro richiede troppo tempo, poi alla lunga ti stanchi e rischi di lasciarlo andare (o scrivere inesattezza).
Giusto per darti un'idea mi sono scritto le mie procedure di import per evitare ogni possibile problema: queste procedure, che non sono ne piccole ne banali (siamo sulle 10 mila righe di codice) usano qualcosa in input (gamelist.xml, mame.dat, cabinets/*.png o altro) e leggono/scrivono i dati da 3-4 tabelle, più altre 3 di "direzioni lavori". Non è che copiano il file in un certo posto e basta ma lo leggono, verificano se c'è il gioco ed è attivo, controllano lo storico, se esiste già un file si accertano che non sia identico, lo storicizzano, scrivono dei log per avvisare se qualcosa non va bene ed alcune si preoccupano di rimettere le cose a posto in caso di errore gravi. Una di loro, può tornare indietro a ritroso di versione in versione per poter mantenere database e filesystem in uno stato consolidato.

Altra cosa che non va bene è il consiglio di usare una wiki o qualcosa del genere: purtroppo, a parte l'ultimissima versione su wikipedia, l'edit di quelle pagine è macchinosissimo e se non fatto in maniera maniacale rischia di non essere corretto. La mia piccola wiki, che puoi vedere qui, contiene poche decine di pagine ma ogni modifica richiede un po' di pazienza (soprattutto per cose complesse come tabelle ed impaginazione immagini).

Quindi la mia filosofia è la seguente: ok database globale di tutto, ok Mame con storico e qualsiasi gioco emulato, ok tutti i file associati alla rom (snapshot, video, record italiani, history, ecc).
E fino ad oggi, limitatamente al Mame, tutto questo è già realtà e facilmente aggiornabile ad ogni rilascio ufficiale.

La parte invece che mi lascia perplesso è l'inclusione di altri utenti per la modifica dei contenuti. Capita spesso che alcuni utenti non conoscano dettagli o peggio scrivono cose non vere. Quindi avere un database con una buona percentuale di questi problemi, vorrebbe dire non aver fatto bene le cose.
Inoltre predisporre l'accesso con un login, gestione profilo e tutto il resto per un sito non standard (forum, chat, ecc) richiede tanto tempo. Io i siti li faccio "a mano", non uso pacchetti ne plug-in, prendo il blocco note ed inizio a scrivere, o gimp ed inizio a creare le immagini. Ed è proprio questo che mi piace e che permette ad un sito di essere personalizzato al massimo.
Altrimenti rischiano di diventare elenchi e poco altro, un po' come lo sono alcuni dei siti che hai citato.

Comunque ArcadeDB mi piace ancora più degli altri come nome... :)
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Aggiornamento lavori per il progetto:
- aggiunte importazioni per renameset di progettosnaps (ora son quindi 33 le routine di import, alcune delle quali gestiscono più file simili)
- spostato alcuni dati da blob a file su disco (quindi la dimensione del database è calata drasticamente)
- riorganizzato il filesystem per facilitare il redo di import già fatti senza cambiare nome ai file elaborati
- verifiche ulteriori per l'import xml che se non "vede" conflitti di nomi non inizia neppure l'operazione, risparmiandomi minuti preziosi di rollback

EDIT:
- gestione delle rom introdotte nel MameUIFX AI Mod di Dr. Zero (+verifica delle rom hack in versioni precedenti del mame). Anche in questo caso è gestita l'archiviazione se cambia qualcosa nelle rom. Da quanto ho potuto verificare ora sono 387 le rom aggiunte.
- gestione archivio storico con possibilità di salti e rientri, ossia se una rom sparisce da una certa versione e riappare dopo. Viene trattato come un nuovo ma rimangono i vecchi dati. Tramite queste informazioni e quelle sui rename, si dovrebbe ricostruire la storia di quella rom anche se ci sono buchi nelle numerazioni.

Però che fatica... <-ciao->
Ultima modifica di motoschifo il 08/02/2015, 17:23, modificato 1 volta in totale.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4934
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 70 volte

Re: Progetto Arcade Database

Messaggio da pucci »

motoschifo ha scritto: - spostato alcuni dati da blob a file su disco (quindi la dimensione del database è calata drasticamente)
Mi spieghi che cavolo sono i blob? Gestisco un sito WordPress e un mediawiki per una associazione e ogni tanto guardando le tabelle con phpmyadmin mi ritrovo questi blob
Pucci - The Bastard Son of Arcade Italia
"MODerrare humanum est"
tutte le copertine di The Games Machine
non combatto guerre di intelligenza con gente disarmata
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Sono insieme di dati binari, quindi consultabili con il programma apposito (es. un'immagine, un exe o uno zip).
Puoi metterli sul database ed averli comodi per tutte le operazioni che vuoi (insert/delete/update) senza dover "disturbare" il file system.
Nel mio caso metto un po' di dati in formato compresso gz in questi blob (credo sianono una decina in tutto) ma ne ho tolti un paio per salvarli su file system, dato che di fatto non li cambio mai.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Con oggi ho raggiunto un bel traguardo, riuscendo a chiudere la parte di backend e database.
Il livello di automazione è elevato ed ho notato tra l'altro che le query di ricerca sono istantanee su un Core2 E8400 con "ben" 2GB di ram, nonostante il db contenga tutti i giochi mai usciti.
Certo in una form di ricerca o di dettaglio ci saranno centinaia di particolari e query a non finire, ma almeno sembra funzionare bene.

Ho messo su una maschera molto provvisoria in cui potete già apprezzare le funzioni di ricerca full text: non importa quali segni di punteggiatura o spazio ci siano tra le parole, se sono maiuscole o minuscole, accentate o normali, il filtro capirà e trasformerà in automatico le query.
Schermata-2.png
Schermata-1.png
PS: Non fate caso alle versioni riportate, i dati sono tutti stati taroccati per delle prove ;)
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
pucci
Moderatore
Moderatore
Messaggi: 4934
Iscritto il: 19/07/2005, 18:52
Città: San Clemente (RN)
Località: Rimini
Grazie Ricevuti: 70 volte

Re: Progetto Arcade Database

Messaggio da pucci »

motoschifo ha scritto:Sono insieme di dati binari, quindi consultabili con il programma apposito (es. un'immagine, un exe o uno zip).
Puoi metterli sul database ed averli comodi per tutte le operazioni che vuoi (insert/delete/update) senza dover "disturbare" il file system.
Nel mio caso metto un po' di dati in formato compresso gz in questi blob (credo sianono una decina in tutto) ma ne ho tolti un paio per salvarli su file system, dato che di fatto non li cambio mai.
non vedo l'utilità di metterli in un database. che problema c'è a leggerli da file system?

in ogni caso faccio bene ad escluderli dal mio backup
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Dipende da cosa contengono, sono dati a tutti gli effetti quindi è bene inserirli nei backup altrimenti un ripristino darebbe un sito incompleto.
Può essere utile in tante occasioni: gestire record in una tabella è facile e rapido, molto di più che preoccuparsi di scrivere un file (con annesse autorizzazioni, errori in lettura/scrittura, spazio disco).
Inoltre ogni volta che li modifichi/inserisci/cancelli i dati in tabella devi ricordarti di tenere il file sincronizzato, che deve avere un nome univoco da qualche parete.
E ancora, le due operazioni (file + tabella) non possono essere atomiche, ossia il sito potrebbe trovarsi in uno stato inconsistente. Se poi ci sono transazioni di mezzo, le cose si complicano e vanno gestiti rollback o cancellazioni supplementari.
Ci sono altri motivi ma comunque credo di aver reso l'idea ;)
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Piccolo aggiornamento: sto separando i due siti (mio personale e arcadedb) in modo da poter essere eventualmente pubblicato da qualche parte.
Integrerò una gestione utenti con login, poi vediamo se mi servirà ma comunque può tornare utile inizialmente per un discorso di utente admin (che vedrà appunto le pagine di gestione del sito).
Per ora ho notato che le ricerche anche complesse e con immagini caricate vanno molto bene e rispondono quasi istantaneamente :)
Schermata-1.png
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Avatar utente
motoschifo

Gold Medal Donatore
Progetto Arcade Database
Progetto Arcade Database
Messaggi: 3333
Iscritto il: 12/07/2013, 20:29
Medaglie: 2
Città: Parma
Località: Parma
Grazie Inviati: 35 volte
Grazie Ricevuti: 41 volte
Contatta:

Re: Progetto Arcade Database

Messaggio da motoschifo »

Ho pubblicato un primo esperimento del nuovo sito: http://fochinet.altervista.org/arcade_database
Si tratta di un database piccolissimo (ma completo come struttura) e nessuna immagine, visto che come spazio totale per questo dominio ho 1GB condiviso fra dati e database, ed ho già altri siti demo per un totale di 950MB... quindi non ci sta più nulla :(

Ad ogni modo ho (finalmente) separato le routine interne che posso così riutilizzare in tutti i miei siti e tenere aggiornate in maniera facile e sicura.
Non c'è molto da vedere ma ho già consolidato parecchie cose:
- layout essenziale (mi piace così!)
- poche voci a menu, per adesso
- sistema di login, da completare ma gestito
- tutta la parte import funzionante (37 procedure!)

Ho aggiungo il logo del forum ed usato colori molto simili così da ottenere una sorta di continuità tra i due siti. Ovviamente si può cambiare tutto quanto... considerate che il sito che ho fatto per Sovox sul C64 condivide praticamente le stesse routine di base, eppure graficamente è un'altra cosa.

Qualche dettaglio in più sui dati che memorizzo.
- tabella aggiornamenti importazioni (data/ora, note ed esito di tutti gli import che farò, fino ad un massimo di 37 per singola versione del Mame)
- tabella categorie per tutti i valori dei file ini (catver, genre, ecc)
- tabella emulatori con le informazioni di ciascuna release del Mame (ora sono 257 release differenti!)
- tabella mame con i dati per ciascuna rom della versione attuale
- tabella mame_archive con tutti i dati di storico

Per la tabella "mame" ci sono tutti questi campi:

Codice: Seleziona tutto

game_name             varchar(25)   Nome della rom
emulator_from         int(11)       Prima versione in cui compare il gioco
emulator_to           int(11)       Ultima versione del gioco
emulator_first        int(11)       Prima versione in cui compare il gioco
game_title            varchar(200)  Titolo breve (inserito a mano, comprensibile da front-end)
game_sourcefile       varchar(50)   File sorgente del driver
game_description      varchar(200)  Titolo completo (ufficiale)
game_year             varchar(5)    Anno di produzione (es. 1980, 198?, 197?)
game_isbios_sn        tinyint(1)    E' un bios si/no
game_isdevice_sn      tinyint(1)    E' un device si/no
game_ismechanical_sn  tinyint(1)    E' un sistema meccanico si/no
game_isrunnable_sn    tinyint(1)    Si può eseguire si/no
game_isparent_sn      tinyint(1)    E' un parent si/no
game_isclone_sn       tinyint(1)    E' un clone si/no
game_usechd_sn        tinyint(1)    Utilizza i chd si/no
game_romof            varchar(25)   Usa le rom di un altro gioco (parent)
game_cloneof          varchar(25)   Clone di un altro gioco
game_sampleof         varchar(25)   Gioco da cui prendere i sample
manufacturer          varchar(100)  Produttore
sound_channels        tinyint(1)    Canali audio
input_players         tinyint(3)    Numero di giocatori
input_buttons         tinyint(3)    Numeri di pulsanti totali (1p, 2p, joy)
input_coins           tinyint(3)    Numero di crediti
control_type          varchar(100)  1=dial, 2=doublejoy, 3=gambling, 4=hanafuda, 5=joy, 6=keyboard, 7=keypad, 8=lightgun, 9=mahjong, 10=mouse, 11=paddle, 12=pedal, 13=positional, 14=stick, 15=trackball
control_ways          varchar(100)  1=1, 2=2, 3=3 (half4), 4=4, 5=5 (half8), 6=8, 7=vertical2
display_screens       tinyint(3)    Numero di schermi
display_type          tinyint(3)    Tipologia di schermo
display_rotate        tinyint(3)    Rotazione dello schermo (0=0, 1=90, 2=180, 3=270)
display_width         int(5)        Larghezza dello schermo (px)
display_height        int(5)        Altezza dello schermo (px)
display_refresh       decimal(9,6)  Refresh dello schermo (Hz)
chip_cpu              varchar(100)  Elenco dei chip di tipo cpu, separati da punto e virgola
chip_audio            varchar(100)  Elenco dei chip di tipo audio, separati da punto e virgola
driver_status         tinyint(3)    1=good, 2=imperfect, 3=preliminary
driver_emulation      tinyint(3)    1=good, 2=imperfect, 3=preliminary
driver_color          tinyint(3)    1=good, 2=imperfect, 3=preliminary
driver_sound          tinyint(3)    1=good, 2=imperfect, 3=preliminary
driver_graphic        tinyint(3)    1=good, 2=imperfect, 3=preliminary
driver_cocktail       tinyint(3)    1=good, 2=imperfect, 3=preliminary
driver_protection     tinyint(3)    1=good, 2=imperfect, 3=preliminary
driver_savestate_sn   tinyint(1)    Supporta il salvataggio del gioco si/no
device_type           varchar(200)  Device collegati (hard disk, cdrom)
screen_orientation    tinyint(3)    0=non gestito, 1=orizzontale, 2=verticale
scroll_type           tinyint(3)    0=non indicato, 1-9=alto,basso,destra,sinistra,diagonali continui, 10=statico, 11-19=alto,basso,destra,sinistra,diagonali non continui, ecc
previous_game_name    varchar(25)   Nome della rom che aveva in precenza
players_mode          varchar(100)  Giocatori contemporanei/alternativi (solo, 2sim, 4alt)
category              int(11)       Valori da catver.ini
genre                 int(11)       Valori da genre.ini
serie                 int(11)       Valori da series.ini
language              int(11)       Valori da languages.ini
note_private          longblob      Note non pubblicate sul sito (dati compressi gz)
recensione            longblob      Recensione del gioco (fondi diverse, dati compressi gz)
history               longblob      Dati da history.dat (dati compressi gz)
history_ita           longblob      Dati da history.dat (in italiano, dati compressi gz)
mameinfo              longblob      Dati da mameinfo.dat (dati compressi gz)
arcaworld             longblob      Recensioni ed hiscore by SuperPlay (ArcaWorld e NeoArca, dati compressi gz)
mamescore             longblob      File story.dat (MameScore su http://www.arcadehits.net/mamescore, dati compressi gz)
url                   longblob      Url di approfondimento (anche multiple)
tag                   varchar(255)  Tag generici (adult, arcadeitalia, arcaworld, ecc)
data                  longblob      Nodo xml con tutte le informazioni del Mame (dati compressi gz)
ricerca               varchar(255)  Campo gestito in automatico per le ricerche semplici
indice                longtext      Campo gestito in automatico per le ricerche complesse
data_ultima_modifica  varchar(16)   Data ultima modifica (applicativa)
TIMESTAMP             timestamp     Data ultima modifica (sistema)
mentre per lo storico memorizzo solo quando ci sono differenze, insieme al range di versioni da/a dell'emulatore.

Esiste una parte che gestisce le rom non ufficiali, quelle hack di Dr. Zero per intenderci, e quindi saranno presenti anche loro.
Dal sito si possono già cercare per tag "hack" :)

In pratica il sito nasce ora e cercherò di completarlo nei prossimi mesi.
Essere arrivati a questo punto in così poco tempo mi sembra davvero incredibile... magari per qualcuno sembrano due paginette e basta, ma il lavoro che c'è dietro vi assicuro che non è per nulla banale <-dash->

Ad ogni modo procederò per gradi e già che ci sono cercherò di completare alcuni controlli di input che avevo iniziato nel mio sito, così da fornire qualcosa di molto più facile da usare e da esplorare.
Motoschifo
CAB ›MameOriz ›MameVert ›PCB ›NeoGeo ›TopDrive ›Tekken3 Wishlist ›PacMan ›Arkanoid
Flipper ›HighSpeed Wishlist ›MedievalMadness ›MonsterBash ›HighSpeed2 WebArcadeDatabase
Rispondi

Torna a “Progetto Arcade Data Base”