Fixare un sistema rotto alla radice è quasi impossibile quando hai un sacco di sistemi implementati tutti presi in rete e il tuo server inizia a crashare a caso. In quel caso puoi prendere il server e buttarlo perché stai sicuro che nessuno potrá aiutarti, come successe in passato ad Ashens2. E la colpa sará solo tua.
Visto che sono stato tirato in causa voglio dire la mia.
(Faccio giusto una piccola precisazione: ciò di cui parli accadde su Zayos, su Ashens non si verificò nessun undefined behavior e andò abbastanza liscio per tutta la sua durata).
Detto questo, come ogni server molti system furono acquistati e molti altri presi dalla rete, e ti do ragione non è il modo corretto di lavorare e questo lo capisci solo con l'esperienza e a tue spese. Come ha detto NabbHackeR uno scenario del genere si è verificato su un mio vecchio server e non c'è stata possibilità di risalire a dove effettivamente il server si rompeva, anche debuggando con ASAN abbiamo avuto scarsi risultati.
Morale della favola:
Sono ripartito da una source totalmente vuota e "certificata", prima di iniziare nuovamente a buildarla anche avendo già "discrete" capacità (non mi definisco assolutamente un dev) sono stato fermo mesi e mesi solo a istruirmi e a migliorare le mie capacità, cosi facendo ho ricostruito la source nel modo corretto, ma ci è voluto tanto tempo e fatica.
Quindi ciò che posso consigliare a chi si vuole cimentare nell'aprire un server avendo 0 ESPERIENZA:
✔ Partire da una base pulita (come può essere quella appunto di martysama) o Owsap per portarsi un poco più avanti nei lavori.
✔ Installare system per system e assicurarsi l'effettivo funzionamento. Consigliabile l'utilizzo di GIT per tenere traccia di ciò che si fa.
✔ Rimani al passo. Utilizzate sempre le versioni più recenti di FreeBSD e MySQL (esempio banale, smettete di utilizzare il classico MySQL 5.6 utilizzate invece MariaDB 10.X) cosi da evitare sempre potenziali falle.
✍ Se hai 0 competenze in C++, Python, Lua / Mysql - FreeBSD prima di spendere denaro per un developer, cerca di capirci il minimo e apprendere le nozioni base per fare almeno le cose semplici in autonomia, puoi utilizzare dei serverfiles gratuiti che puoi trovare in giro per la rete e iniziare ad avere un primo approccio per capire se questo ambiente fa per te (puoi utilizzare per provare a startare il tuo server googlando i files di TMP4, seguendo qualche guida anche uno alle prime armi che usa un minimo di logica riuscirà a farli partire.)
✍ Realizzare un server di metin2 BEN FATTO costa. I Developer bravi si fanno pagare bene, quindi ammenoché tu non abbia già le competenze di un Ikarus ti ritroverai per forza di cose a spendere.
Non utilizzare source di server presi dalla rete per accorciare i tempi di lavoro, avrai quasi sicuramente problemi e se non hai le skills per risolvere ciò che si presenterà perderai solo tempo e denaro. Puoi tuttavia utilizzare alcuni system che si trovano in rete; non tutto è totalmente da buttare ma bisogna prestare attenzione e non semplicemente copiare e incollare tutto.
Prima di aprire, assicurati di fare una BETA con il maggior numero di players possibili. Molte volte testando in 2/3 persone sembra che il tuo server sia perfetto, che non abbia nessun difetto e sia pronto per aprire ufficialmente i battenti... bene, non è cosi! I veri problemi iniziano a scatenarsi quando c'è un numero abbastanza significativo di players che fanno cose, se testi da solo o con un amico quella "calma apparente" potrà giocarti un brutto scherzo.
Auguro una buona fortuna a chiunque voglia cimentarsi in questa esperienza.