Ultima modifica:
La presente checklist ha lo scopo di riunire in un'unica pagina tutti i passaggi obbligatori e facoltativi da eseguire prima della messa in produzione di un qualsiasi progetto di retro server di Metin2.
Verrà suddivisa quindi in checklist obbligatoria con tutti i passaggi fondamentali da eseguire prima dell'apertura per un progetto serio e duraturo e checklist opzionale con consigli per un progetto migliore che si distingue dagli altri.
I punti della checklist possono essere eseguiti in ordine sparso, se indipendenti.
Eventuali punti aggiunti in un secondo momento verranno accodati alla checklist di riferimento, notificati tramite risposta a questo thread e inseriti nel Change Log in fondo a questa pagina.
Scegliere la tipologia del progetto: New, Semi-new, Semi-old, old, Fun-PvP, Semi Fun-PVP.
2. Gameplay
Organizzare il gameplay del progetto secondo la tipologia scelta. Può essere sviluppato nel corso dello sviluppo del progetto, ma la base deve essere decisa prima di iniziare, per evitare perdite di tempo.
3. Team Amministrazione & Sviluppo
Scegliere il team degli amministratori e sviluppatori del progetto in base alle esigenze (GA, GF, DEV, BA, TM ecc.). Valutare Da non confondere con lo staff di supporto (GM, MOD, EM ecc.).
Riferimento: Imparare dagli errori altrui. Perchè un progetto fallisce?
Paragrafo: Amministratori e consulenti
4. Scelta file server e client
Scegliere dei file di base da cui partire a personalizzare il progetto per renderlo unico. Una buona base scelta accuratamente semplifica il lavoro a venire e sopratutto limita la presenza di bug o buchi per la sicurezza. E' consigliabile la scelta dei sorgenti al posto dei binari precompilati per modifiche più stabili e avanzate.
In base al budget a disposizione e alle competenze dei membri del team di amministrazione e sviluppo valutare l'acquisto di file revisionati da esperti o l'utilizzo di file gratuiti.
5. Creazione ambiente di test e sviluppo
Scegliere e configurare una macchina per sviluppare e testare il progetto assieme al resto del team. Gli ambienti di test e produzione dovranno essere separati e sincronizzati manualmente.
Valutare, in base alle esigenze e budget, l'utilizzo di una macchina virtuale su un Personal Computer di uno degli sviluppatori o l'acquisto di una VPS o Server Dedicato presso provider. E' consigliabile la seconda opzione per team di sviluppatori composto da più di un membro.
Installare e configurare i software necessari (MySQL o MariaDB, SSH, firewall, gmake, gcc ecc.)
E' preferibile utilizzare una macchina con la CPU type e sistema operativo uguale all'ambiente di produzione.
E' consigliabile utilizzare un sistema a 64bit e versione di FreeBSD aggiornata: https://www.freebsd.org/ (production).
6. Installazione File server
Compilare i sorgenti server prestando attenzione alle opzioni di compilazione, in particolare CPU e 32 o 64bit.
Installare librerie e compatibilità per vecchie versioni di FreeBSD (solitamente 7 e 4).
Estrazione file server e binari su filesystem dedicato.
Import dei database via dump o transfer (NON importare tramite datafile). Utilizzare la versione stabile di MySQL o MariaDB e provvedere a mantenere la stessa versione per l'ambiente di produzione.
Modifica file di configurazione e creazione core e CH.
Configurazione connessione client (serverinfo.py, laucher)
Primo test di start e risoluzione di eventuali errori primi errori.
7. Personalizzazione e sviluppo
Applicare le idee e il gameplay deciso in precedenza.
Aggiungere, togliere, disattivare o modificare funzionalità sia lato server che client.
Eliminare quello che non serve per alleggerire tutto ed evitare buchi o bug.
8. Blocco exploit
Individuare ed eliminare eventuali exploit nell'applicativo per evitare pericolosi rischi per la sicurezza. Eseguire anche dei test di hacking via exploit sul proprio ambiente per verificarne l'invulerabilità.
Riferimenti: Test Vulnerabilità Messenger Injection.
9. Risoluzione errori nei log
Verificare i log dei software utilizzati e risolvere eventuali errori.
Log da analizzare: server game syserr, client game syserr, mysql alert log (/var/db/mysql/<hostname>.err).
Tenerli monitorati durante i test. Possono notificare errori inizialmente non visibili.
10. Progettazione infrastruttura IT
Progettare la mini infrastruttura che farà da base informatica ai vari sistemi di test e produzione. Successivamente selezionare il o i provider per l'hosting per la concretizzazione dell'infrastruttura progettata.
Devono essere tenuti conto dei seguenti sistemi:
Riferimenti: Come scegliere e configurare una macchina server per Metin2
11. Realizzazione piattaforma web
Progettazione e sviluppo piattaforma web che deve contenere:
12. Staff di supporto
Individuare il personale che andrà a formare il supporto agli utenti (GM, MOD, EM, H).
Scegliere accuratamente in base alle candidature proposte e testarli con lavori utili in fase di test.
Riferimenti: Imparare dagli errori altrui. Perchè un progetto fallisce? Paragrafo: Problemi riguardo allo staff.
13. Organizzazione supporto
Organizzare l'aspetto del supporto agli utenti.
Indentificare le varie piattaforme di supporto e sensibilizzare lo staff all'utilizzo degli strumenti a loro assegnati.
Inoltre istruire e indicare agli utenti le piattaforme a loro disposizione.
Riferimenti: Imparare dagli errori altrui. Perchè un progetto fallisce? Paragrafo: Supporto.
14. Stesura regolamenti
Creare i regolamenti per utenti e staff per stabilire un ordine uguale per tutti.
15. Test
Testare accuratamente tutte le implementazioni e modifiche.
Testare il gameplay trovando il giusto equilibrio.
E' buona cosa farsi aiutare dallo staff di supporto per permettergli di conoscere il gameplay e per testarli.
16. Sicurezza lato client
Scegliere e installare le protezioni al client di gioco per bloccare software che possono causare vantaggi per gli utenti o pericoli alla sicurezza del server.
17. Installazione Infrastruttura completa
Procedere con l'acquisto e installazione di tutti i sistemi che andranno a completare l'infrastruttura progettata al punto 10.
18. Installazione ambiente di produzione
Provvedere all'installazione dell'ambiente o ambienti di produzione per il game server. Applicare tutte le best practice necessarie (log rotation, filesystem, sicurezza ecc.).
Installare i software necessari prestando attenzione a selezionare le opzioni strettamente necessarie e consigliate ad ambienti di produzione.
Mantenere i sistemi di produzione puliti e ordinati.
Migrare con attenzione la parte applicativa dall'ambiente di test a quello di produzione.
Il trasferimento dei database deve essere eseguita tramite export e import via trasfer o dump.
Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Come configurare una macchina per un server di metin2?
19. Backup
Progettare e implementare i backup automatici su supporto esterno e sicuro, con ulteriori copie anche più rare su supporti differenti.
Testare a campione i backup creati automaticamente in modo periodico.
Documentare e monitorare i backup.
Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Backup
20. Ridondanza
Progettare e implementare un sistema per garantire continuità di servizio nonostante problemi di varia natura che causano disservizi agli utenti.
E' necessario ridondare almeno i seguenti sistemi:
21. Sicurezza lato server
Trovare e implementare soluzioni per mantenere l'infrastruttura server sicura da attacchi malevoli (DoS, Intrusioni ecc.). Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Sicurezza. [Guida]Inserire Key, Cambiare porta SSH
22. Monitoraggio
Installare e configurare un sistema di monitoraggio dell'infrastruttura.
Monitorare quotidianamente. Quando si notano disservizi verificare per prima cosa il monitoraggio.
Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Monitoraggio
23. Integrità dei dati
Provvedere a garantire la disponibilità dei dati necessari anche in caso di crash.
Riferimenti: Imparare dagli errori altrui. Perchè un progetto fallisce? Paragrafo: Perdita di dati.
Installare MariaDB al posto di MySQL
24. Presentazione
Provvedere alla stesura di una buona presentazione che spiega all'utenza il progetto.
Pubblicare la presentazione sui principali forum che trattano di questo argomento.
25. Pulizia pre apertura al pubblico
Ripulire le piattaforme web e game (produzione) da eventuali dati di test.
Procedere alla sincronizzazione degli ambienti di test e produzione game e mantenerli allineati.
Ogni implementazione o modifica deve essere applicata prima sull'ambiente di test con relativo test della stessa, e successivamente rilasciata ufficialmente sull'ambiente di produzione.
26. Beta
Apertura al pubblico dei server di gioco (utilizzare l'ambiente di produzione) terminate le implementazioni, modifiche e rimozioni e i relativi test interni.
Risolvere Mano a mano i problemi segnalati. La fase Beta può essere dichiarata ufficialmente conclusa solo dopo la risoluzione di tutti i problemi segnalati.
Presentare il progetto alla possibile utenza con largo anticipo per far conoscere le idee e raccogliere consigli da parte della possibile utenza.
Metin2 Progetti & Idee
2. Miglioramento performance Database
Configurare il DBMS per adattarlo al meglio alle esigenze dell'applicativo ottimizzando le performance e integrità dei dati.
Riferimenti: Imparare dagli errori altrui. Perchè un progetto fallisce? Paragrafo: Perdita di dati.
Installare MariaDB al posto di MySQL
3. Supporto tramite ticket
Installazione piattaforma di supporto tramite ticket per miglior privacy e nessuna necessità di avere lo staff online.
4. Supporto tramite chat sito
Installazione sul sito di una chat live staff dove poter comunicare privatamente con un membro dello staff online senza dover cercare. Istantaneo e di facile utilizzo da ambe le parti. Più comoda della chat privata in game.
Valutare l'eliminazione del supporto direttamente in game via chat privata.
Una volta completata TUTTA la checklist obbligatoria potete notificarlo ai vostri utenti inserendo la seguente immagine nella vostra presentazione e/o sul vostro sito.
Per farlo rispondete a questo thread specificando nome progetto, link presentazione, eventuali punti facoltativi completati e la data in cui avete completato la checklist.
Successivamente copiate l'immagine sottostante nella vostra presentazione modificando il link con il link diretto alla risposta che avete inserito.
(OK, con la grafica faccio schifo. Se qualcuno riesce a fare qualcosa di meglio sarebbe l'ideale)
Link utili
Come scegliere e configurare una macchina server per Metin2
Imparare dagli errori altrui. Perchè un progetto fallisce?
[RELEASE]Source Code Metin2
[GUIDA] Come startare un server DEDICATO - Primi Passi
Installare MariaDB al posto di MySQL
Hosting provider comuni(Dedicati, VPS, Web Hosting)
Kimsufi
So You Start
OVH
Island of host
Etherhost
iltizioservice
Lista consulenti per Metin2
iltizioservice (Sistemista, Quest and system developer)
Checklist su Google Drive
Checklist start progetto metin2 da copiare su un file nuovo e tenere aggiornato sul completamento.
Può essere condivisa in sola lettura anche con i futuri utenti per notificargli il progresso.
Invito tutti i membri della comunity ad aggiornare la presente checklist con consigli, nuovi punti, link utili, hosting, siti servizi ecc.
Verrà suddivisa quindi in checklist obbligatoria con tutti i passaggi fondamentali da eseguire prima dell'apertura per un progetto serio e duraturo e checklist opzionale con consigli per un progetto migliore che si distingue dagli altri.
I punti della checklist possono essere eseguiti in ordine sparso, se indipendenti.
Eventuali punti aggiunti in un secondo momento verranno accodati alla checklist di riferimento, notificati tramite risposta a questo thread e inseriti nel Change Log in fondo a questa pagina.
CHECKLIST OBBLIGATORIA
1. Scelta tipologiaScegliere la tipologia del progetto: New, Semi-new, Semi-old, old, Fun-PvP, Semi Fun-PVP.
2. Gameplay
Organizzare il gameplay del progetto secondo la tipologia scelta. Può essere sviluppato nel corso dello sviluppo del progetto, ma la base deve essere decisa prima di iniziare, per evitare perdite di tempo.
3. Team Amministrazione & Sviluppo
Scegliere il team degli amministratori e sviluppatori del progetto in base alle esigenze (GA, GF, DEV, BA, TM ecc.). Valutare Da non confondere con lo staff di supporto (GM, MOD, EM ecc.).
Riferimento: Imparare dagli errori altrui. Perchè un progetto fallisce?
Paragrafo: Amministratori e consulenti
4. Scelta file server e client
Scegliere dei file di base da cui partire a personalizzare il progetto per renderlo unico. Una buona base scelta accuratamente semplifica il lavoro a venire e sopratutto limita la presenza di bug o buchi per la sicurezza. E' consigliabile la scelta dei sorgenti al posto dei binari precompilati per modifiche più stabili e avanzate.
In base al budget a disposizione e alle competenze dei membri del team di amministrazione e sviluppo valutare l'acquisto di file revisionati da esperti o l'utilizzo di file gratuiti.
5. Creazione ambiente di test e sviluppo
Scegliere e configurare una macchina per sviluppare e testare il progetto assieme al resto del team. Gli ambienti di test e produzione dovranno essere separati e sincronizzati manualmente.
Valutare, in base alle esigenze e budget, l'utilizzo di una macchina virtuale su un Personal Computer di uno degli sviluppatori o l'acquisto di una VPS o Server Dedicato presso provider. E' consigliabile la seconda opzione per team di sviluppatori composto da più di un membro.
Installare e configurare i software necessari (MySQL o MariaDB, SSH, firewall, gmake, gcc ecc.)
E' preferibile utilizzare una macchina con la CPU type e sistema operativo uguale all'ambiente di produzione.
E' consigliabile utilizzare un sistema a 64bit e versione di FreeBSD aggiornata: https://www.freebsd.org/ (production).
6. Installazione File server
Compilare i sorgenti server prestando attenzione alle opzioni di compilazione, in particolare CPU e 32 o 64bit.
Installare librerie e compatibilità per vecchie versioni di FreeBSD (solitamente 7 e 4).
Estrazione file server e binari su filesystem dedicato.
Import dei database via dump o transfer (NON importare tramite datafile). Utilizzare la versione stabile di MySQL o MariaDB e provvedere a mantenere la stessa versione per l'ambiente di produzione.
Modifica file di configurazione e creazione core e CH.
Configurazione connessione client (serverinfo.py, laucher)
Primo test di start e risoluzione di eventuali errori primi errori.
7. Personalizzazione e sviluppo
Applicare le idee e il gameplay deciso in precedenza.
Aggiungere, togliere, disattivare o modificare funzionalità sia lato server che client.
Eliminare quello che non serve per alleggerire tutto ed evitare buchi o bug.
8. Blocco exploit
Individuare ed eliminare eventuali exploit nell'applicativo per evitare pericolosi rischi per la sicurezza. Eseguire anche dei test di hacking via exploit sul proprio ambiente per verificarne l'invulerabilità.
Riferimenti: Test Vulnerabilità Messenger Injection.
9. Risoluzione errori nei log
Verificare i log dei software utilizzati e risolvere eventuali errori.
Log da analizzare: server game syserr, client game syserr, mysql alert log (/var/db/mysql/<hostname>.err).
Tenerli monitorati durante i test. Possono notificare errori inizialmente non visibili.
10. Progettazione infrastruttura IT
Progettare la mini infrastruttura che farà da base informatica ai vari sistemi di test e produzione. Successivamente selezionare il o i provider per l'hosting per la concretizzazione dell'infrastruttura progettata.
Devono essere tenuti conto dei seguenti sistemi:
- Game server per produzione
- Game server per test
- Web host (sito web, forum, supporto online, ecc.)
- Backup host
Riferimenti: Come scegliere e configurare una macchina server per Metin2
11. Realizzazione piattaforma web
Progettazione e sviluppo piattaforma web che deve contenere:
- Sito web (Registrazione, funzioni account, classifiche, recupero account ecc.)
- Board
- Supporto utenti (può essere integrato al forum)
12. Staff di supporto
Individuare il personale che andrà a formare il supporto agli utenti (GM, MOD, EM, H).
Scegliere accuratamente in base alle candidature proposte e testarli con lavori utili in fase di test.
Riferimenti: Imparare dagli errori altrui. Perchè un progetto fallisce? Paragrafo: Problemi riguardo allo staff.
13. Organizzazione supporto
Organizzare l'aspetto del supporto agli utenti.
Indentificare le varie piattaforme di supporto e sensibilizzare lo staff all'utilizzo degli strumenti a loro assegnati.
Inoltre istruire e indicare agli utenti le piattaforme a loro disposizione.
Riferimenti: Imparare dagli errori altrui. Perchè un progetto fallisce? Paragrafo: Supporto.
14. Stesura regolamenti
Creare i regolamenti per utenti e staff per stabilire un ordine uguale per tutti.
15. Test
Testare accuratamente tutte le implementazioni e modifiche.
Testare il gameplay trovando il giusto equilibrio.
E' buona cosa farsi aiutare dallo staff di supporto per permettergli di conoscere il gameplay e per testarli.
16. Sicurezza lato client
Scegliere e installare le protezioni al client di gioco per bloccare software che possono causare vantaggi per gli utenti o pericoli alla sicurezza del server.
17. Installazione Infrastruttura completa
Procedere con l'acquisto e installazione di tutti i sistemi che andranno a completare l'infrastruttura progettata al punto 10.
18. Installazione ambiente di produzione
Provvedere all'installazione dell'ambiente o ambienti di produzione per il game server. Applicare tutte le best practice necessarie (log rotation, filesystem, sicurezza ecc.).
Installare i software necessari prestando attenzione a selezionare le opzioni strettamente necessarie e consigliate ad ambienti di produzione.
Mantenere i sistemi di produzione puliti e ordinati.
Migrare con attenzione la parte applicativa dall'ambiente di test a quello di produzione.
Il trasferimento dei database deve essere eseguita tramite export e import via trasfer o dump.
Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Come configurare una macchina per un server di metin2?
19. Backup
Progettare e implementare i backup automatici su supporto esterno e sicuro, con ulteriori copie anche più rare su supporti differenti.
Testare a campione i backup creati automaticamente in modo periodico.
Documentare e monitorare i backup.
Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Backup
20. Ridondanza
Progettare e implementare un sistema per garantire continuità di servizio nonostante problemi di varia natura che causano disservizi agli utenti.
E' necessario ridondare almeno i seguenti sistemi:
- Game server produzione
- Web host
21. Sicurezza lato server
Trovare e implementare soluzioni per mantenere l'infrastruttura server sicura da attacchi malevoli (DoS, Intrusioni ecc.). Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Sicurezza. [Guida]Inserire Key, Cambiare porta SSH
22. Monitoraggio
Installare e configurare un sistema di monitoraggio dell'infrastruttura.
Monitorare quotidianamente. Quando si notano disservizi verificare per prima cosa il monitoraggio.
Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Monitoraggio
23. Integrità dei dati
Provvedere a garantire la disponibilità dei dati necessari anche in caso di crash.
Riferimenti: Imparare dagli errori altrui. Perchè un progetto fallisce? Paragrafo: Perdita di dati.
Installare MariaDB al posto di MySQL
24. Presentazione
Provvedere alla stesura di una buona presentazione che spiega all'utenza il progetto.
Pubblicare la presentazione sui principali forum che trattano di questo argomento.
25. Pulizia pre apertura al pubblico
Ripulire le piattaforme web e game (produzione) da eventuali dati di test.
Procedere alla sincronizzazione degli ambienti di test e produzione game e mantenerli allineati.
Ogni implementazione o modifica deve essere applicata prima sull'ambiente di test con relativo test della stessa, e successivamente rilasciata ufficialmente sull'ambiente di produzione.
26. Beta
Apertura al pubblico dei server di gioco (utilizzare l'ambiente di produzione) terminate le implementazioni, modifiche e rimozioni e i relativi test interni.
Risolvere Mano a mano i problemi segnalati. La fase Beta può essere dichiarata ufficialmente conclusa solo dopo la risoluzione di tutti i problemi segnalati.
CHECKLIST FACOLTATIVA
1. Pre presentazione progettoPresentare il progetto alla possibile utenza con largo anticipo per far conoscere le idee e raccogliere consigli da parte della possibile utenza.
Metin2 Progetti & Idee
2. Miglioramento performance Database
Configurare il DBMS per adattarlo al meglio alle esigenze dell'applicativo ottimizzando le performance e integrità dei dati.
Riferimenti: Imparare dagli errori altrui. Perchè un progetto fallisce? Paragrafo: Perdita di dati.
Installare MariaDB al posto di MySQL
3. Supporto tramite ticket
Installazione piattaforma di supporto tramite ticket per miglior privacy e nessuna necessità di avere lo staff online.
4. Supporto tramite chat sito
Installazione sul sito di una chat live staff dove poter comunicare privatamente con un membro dello staff online senza dover cercare. Istantaneo e di facile utilizzo da ambe le parti. Più comoda della chat privata in game.
Valutare l'eliminazione del supporto direttamente in game via chat privata.
Una volta completata TUTTA la checklist obbligatoria potete notificarlo ai vostri utenti inserendo la seguente immagine nella vostra presentazione e/o sul vostro sito.
Per farlo rispondete a questo thread specificando nome progetto, link presentazione, eventuali punti facoltativi completati e la data in cui avete completato la checklist.
Successivamente copiate l'immagine sottostante nella vostra presentazione modificando il link con il link diretto alla risposta che avete inserito.
(OK, con la grafica faccio schifo. Se qualcuno riesce a fare qualcosa di meglio sarebbe l'ideale)
Link utili
Come scegliere e configurare una macchina server per Metin2
Imparare dagli errori altrui. Perchè un progetto fallisce?
[RELEASE]Source Code Metin2
[GUIDA] Come startare un server DEDICATO - Primi Passi
Installare MariaDB al posto di MySQL
Hosting provider comuni(Dedicati, VPS, Web Hosting)
Kimsufi
So You Start
OVH
Island of host
Etherhost
iltizioservice
Lista consulenti per Metin2
iltizioservice (Sistemista, Quest and system developer)
Checklist su Google Drive
Checklist start progetto metin2 da copiare su un file nuovo e tenere aggiornato sul completamento.
Può essere condivisa in sola lettura anche con i futuri utenti per notificargli il progresso.
Invito tutti i membri della comunity ad aggiornare la presente checklist con consigli, nuovi punti, link utili, hosting, siti servizi ecc.
CHANGE LOG
- 31/05/2016: Prima stesura. 26 punti obbligatori + 4 facoltativi.
- 10/06/2016: Creazione checklist su Google Drive: Checklist start progetto metin2