Guida [CHECKLIST] Start Progetto Metin2

Stato
Discussione chiusa ad ulteriori risposte.

iltizio

Utente Emerald
1 Novembre 2009
929
60
533
598
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.


CHECKLIST OBBLIGATORIA
1. Scelta tipologia
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:

  • Game server per produzione
  • Game server per test
  • Web host (sito web, forum, supporto online, ecc.)
  • Backup host
Individuare un supporto sistemistico adatto in caso di mancanza di esso tra i servizi offerti dai provider o di competenze sistemistiche all'interno del team di amministratori. Informarlo del progetto dell'infrastruttura e delle eventuali esigenze.
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)
Il tutto deve essere di semplice utilizzo per l'utenza.

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
Riferimenti: Come scegliere e configurare una macchina server per Metin2 Paragrafo Ridondanza

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 progetto
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.

CHANGE LOG
 
Ultimamente stai facendo un bel pò di guide e dando un occhiata rispecchiano parte dei problemi per cui i privati chiudono,
ma comunque stai perdendo solo tempo in base agli esiti del topic che ho aperto in precedenza chi entra nella sezione HowTo si aspetta solo pappa pronta, qualsiasi guida superante le 15righe non viene letta.
 
Ultimamente stai facendo un bel pò di guide e dando un occhiata rispecchiano parte dei problemi per cui i privati chiudono,
ma comunque stai perdendo solo tempo in base agli esiti del topic che ho aperto in precedenza chi entra nella sezione HowTo si aspetta solo pappa pronta, qualsiasi guida superante le 15righe non viene letta.
Release tutto pronto non le farò mai come già spiegato in altre occasioni. Non tutti sono in grado di portare avanti progetti buoni. Mi girano le scatole a vedere progetti fatti in qualche maniera tanto per togliersi uno sfizio o per tirar sù qualche soldo in poco tempo. Questi thread sono rivolti a chi è in grado e vuole davvero creare un progetto fatto bene. Ci sono ancora queste persone e voglio dare il mio contributo a fare in modo che questi progetti nascano come si deve. Ho visto troppi server chiudere nonostante anni di lavoro e persone davvero in gamba, ma che non hanno considerato alcuni aspetti basilari che li hanno portati alla rovina.

Il mio obbiettivo è inculcare nella testa di queste persone che bisogna dare la giusta importanza anche a tutto quello che gira attorno al gioco stesso. Voglio far capire che non si può pensare solo al gameplay.
 
  • Mi piace
Reazioni: AlwaysOn
non è manco male come bozza... anche perche poi ogni persona ha una sua "checklist"...
però poi arrivi in fondo e leggi...


Lista consulenti per Metin2
iltizioservice (Sistemista, Quest and system developer)

MI SONO CADUTI I *******I
Mi sembra giusto che ognuno abbia la sua checklist, ma la parte obbligatoria dovrebbe essere presente in tutte le checklist.

Riguardo all'elenco dei consulenti l'ho messo perché, come già specificato in altre occasioni, non sempre nel team degli amministratori dedicati ad un progetto sono presenti tutte le competenze necessarie, quindi quando mancano si può e si deve andare in escalation su una persona esterna.

Se ti riferisci al fatto che al momento nella lista c'è un solo elemento leggi meglio la data di creazione del thread e la riga sotto quella lista. Deve essere l'interessato ad aggiungersi specificando di cosa si occupa e un link per i dettagli. Se chi può entrare in quella lista non ha interesse a notificarmi la sua disponibilità avrà i suoi motivi.
 
Ottimo checklist, ottime guide, sono utili a tutti per chi non sa e per chi sa perche gli fa da promemoria. Ma secondo me chi critica abbia paura che le persone non facciano piu errori cosi non possono guadagnare dal loro fallimento.
 
  • Mi piace
Reazioni: iltizio
Stato
Discussione chiusa ad ulteriori risposte.