Salve a tutti, finalmente dopo tanto tempo che dico di doverlo fare, lo faccio. Vorrei andare subito al dunque:
Sono ormai 4 anni che sono entrato nel mondo della programmazione, a partire dalla scuola e continuando adesso in un'università al Dipartimento di Informatica. Ho sempre avuto la passione dentro, finendo così per diventare curioso su qualsiasi software io veda.
Come potete già intuire, questa passione ha tirato con sé la conoscenza di Metin2 a livello di codice. C'è una cosa che non ho mai capito in vita mia, una cosa che mi porto dentro da molto, la creazione di un vero e proprio server.
Durante il corso degli anni ho iniziato partendo da C++ per poi spostarmi come specializzazione su Java, vendendo vere e proprie applicazioni distribuite sia per Android che per Desktop. Ho anche lavorato un po' su PHP e Javascript per piccoli progetti. Ovviamente so cos'è un database, conosco il linguaggio SQL e così via, le basi che diciamo tutti dovrebbero avere.
Ora però, se c'è una cosa che mi rimane oscurata, è la visione di Metin a livello di source. In precedenza all'età di 13 anni, ho creato, tanto per provare, un piccolo server hostato in locale su una macchina virtuale. All'epoca non sapevo nemmeno che fosse una macchina virtuale, figuriamoci se sapevo tutto ciò che vedevo su internet. Adesso che sono cresciuto però ho una certa curiosità. Mi era venuto in mente di provare, nel tempo libero, a realizzare qualcosa per accrescere la mia cultura sia a livello di programmazione, che sul lato Metin, e non vedo perchè non farlo ora che arrivano le vacanze natalizie. Qui ho bisogno di voi, degli esperti che magari in passato hanno creato un server (che poi abbia chiuso non importa), esperti che lavorano per altri server, insomma, esperti di programmazione su Metin. Non nascondo l'idea di aprire magari un giorno un server mio, dove ci siano le cose che dica io, come dico io (soprattutto perchè dopo tanti anni sui server so cosa vogliono i player, mi sento di poterlo dire). La soddisfazione di creare un prodotto, un software e vederlo apprezzato è una soddisfazione che solo alcuni provano realmente.
Quindi, facciamo finta che io sia un bambino che dica "Voglio creare un server metin2 da zero ma non so una mazza!", e voi dobbiate spiegarmi passo passo.
Adesso faremo una sorta di lista, con i passi principali su cui io chiedo aiuto a voi, partendo dalle basi. Dunque, ho bisogno di esperti che mi aiutino in questi precisi punti, però non dando una risposta alla cazzum di canis, bensì molto dettagliatamente. Ovviamente potete scegliere di rispondere a tutti i punti come anche potete scegliere di rispondere ad uno solo, magari se siete esperti in quel settore specifico. Questa discussione deve essere utile anche a chi in futuro vorrà cimentarsi alla creazione di un proprio server. Magari se la discussione andrà bene e vedrò molte risposte, le migliori le sostituisco nella lista così che diventi una vera e propria discussione "Come si crea un server Metin2". Dunque signori, questi sono i punti, vediamo chi ne sa di più e può aiutarmi:
Fondamenta di un server: Come tutti sappiamo, per creare qualsiasi cosa nella vita, abbiamo bisogno di fondamenta, nel caso di Metin, i cosiddetti file server. Nella mia piccola esperienza da tredicenne, sentivo questi benedetti "file server 40k", e sinceramente nemmeno adesso so cosa siano né le differenze. Ricordo che però "guardando su internet" avevo bisogno di questi maledetti file server da caricare su macchina virtuale o una roba simile. Dunque vi chiedo, quali sono i componenti essenziali, primari, per startare banalmente un server privato? Sono inclusi nella domanda anche eventuali database locali/remoti.
Come far partire il proprio server: Una volta che si hanno le basi, bisogna testarle in qualche modo, bisogna vedere cosa c'è dentro, e quindi bisogna avere una macchina virtuale su cui farlo partire. Ricordo che da piccolo leone da tastiera, digitavo dei comandi per far partire il tutto su virtual machine. Ma uno dei miei dubbi è se conviene ancora usarne una o conviene fare tutto hostando online. Quindi vi chiedo a tal proposito, come si crea da zero una macchina virtuale per caricare il tutto (localmente), ma allo stesso modo, come si fa invece per lavorare online e non tenere troppa roba su un computer?
Una volta riusciti a creare tutto ed essendo effettivamente dentro il server, cominciano le difficoltà, ovvero le domande più stuzzicanti per me.
Creazione di qualcosa personale: Qui si apre un bel ramo, perché come sappiamo (anche io che non so nulla), possiamo sbizzarrirci su un server privato. Creazione di quest, implementazione di system (o magari qualche piccolo anti-bot creato da zero), package di armature, oppure tipo quando nei server lo staffer pubblica un aggiornamento del tipo "Aggiunto questo item craftabile con questi altri item". Per questo qui bisogna soffermarsi abbastanza. Sappiate che io personalmente non so nulla di tutte le cartelle e file che si trovano dentro ogni server privato, soprattutto non so cosa ci sia dentro "root" e perché sia così importante.
Protezioni server: Sempre parlando di quel mio cugino che un giorno creò un server, ahimè, gli fu buttato giù da una serie di attacchi DDos, all'epoca non sapevo minimamente cosa fossero, quindi non vi so dire cosa attaccarono realmente. Anche su inforge stesso vedo persone, staffer di alcuni server, che si attaccano a vicenda, magari non riuscendo a buttare giù il server ma facendolo laggare. Dunque, a livello di protezioni, come ci si protegge da eventuali attacchi senza cadere, da protezioni anti-hack, i più famosi come quello di lalaker, ma anche quelle situazioni in cui il client ti cancella dei file sospetti dalla sua cartella, oppure quando si chiude perchè injectate qualcosa, o semplicemente si chiude se avviate il processo di lalaker? E' vero che si possono creare da zero?
Grafica 2D/3D: Infine, la parte che odio di più, la grafica. Partendo da "semplici" (complicate per me) grafiche 2D degli item (tipo quelli da upp), finestre modificate, fino ad arrivare alla grafica 3D delle mappe, armi e armature, qualsiasi cosa si voglia creare, anche un npc. Come si fa di solito a lavorare su queste cose? Ovviamente io non potrei mai e avrei bisogno di esperti che mi aiutino, ecco perchè in un progetto ci sono più persone.
Inutile dirvi che vi ringrazio se siete arrivati fino a questo punto della discussione, e un grazie ancora di più a chi avrà il piacere e la pazienza di rispondere anche ad uno solo di questi punti, perchè davvero, non so come io faccia, ma non so assolutamente cosa ci sia dietro un server, in nessuno degli aspetti qui elencati, zero assoluto. Spero possa diventare una discussione ampia. Ci si vede!
Sono ormai 4 anni che sono entrato nel mondo della programmazione, a partire dalla scuola e continuando adesso in un'università al Dipartimento di Informatica. Ho sempre avuto la passione dentro, finendo così per diventare curioso su qualsiasi software io veda.
Come potete già intuire, questa passione ha tirato con sé la conoscenza di Metin2 a livello di codice. C'è una cosa che non ho mai capito in vita mia, una cosa che mi porto dentro da molto, la creazione di un vero e proprio server.
Durante il corso degli anni ho iniziato partendo da C++ per poi spostarmi come specializzazione su Java, vendendo vere e proprie applicazioni distribuite sia per Android che per Desktop. Ho anche lavorato un po' su PHP e Javascript per piccoli progetti. Ovviamente so cos'è un database, conosco il linguaggio SQL e così via, le basi che diciamo tutti dovrebbero avere.
Ora però, se c'è una cosa che mi rimane oscurata, è la visione di Metin a livello di source. In precedenza all'età di 13 anni, ho creato, tanto per provare, un piccolo server hostato in locale su una macchina virtuale. All'epoca non sapevo nemmeno che fosse una macchina virtuale, figuriamoci se sapevo tutto ciò che vedevo su internet. Adesso che sono cresciuto però ho una certa curiosità. Mi era venuto in mente di provare, nel tempo libero, a realizzare qualcosa per accrescere la mia cultura sia a livello di programmazione, che sul lato Metin, e non vedo perchè non farlo ora che arrivano le vacanze natalizie. Qui ho bisogno di voi, degli esperti che magari in passato hanno creato un server (che poi abbia chiuso non importa), esperti che lavorano per altri server, insomma, esperti di programmazione su Metin. Non nascondo l'idea di aprire magari un giorno un server mio, dove ci siano le cose che dica io, come dico io (soprattutto perchè dopo tanti anni sui server so cosa vogliono i player, mi sento di poterlo dire). La soddisfazione di creare un prodotto, un software e vederlo apprezzato è una soddisfazione che solo alcuni provano realmente.
Quindi, facciamo finta che io sia un bambino che dica "Voglio creare un server metin2 da zero ma non so una mazza!", e voi dobbiate spiegarmi passo passo.
Adesso faremo una sorta di lista, con i passi principali su cui io chiedo aiuto a voi, partendo dalle basi. Dunque, ho bisogno di esperti che mi aiutino in questi precisi punti, però non dando una risposta alla cazzum di canis, bensì molto dettagliatamente. Ovviamente potete scegliere di rispondere a tutti i punti come anche potete scegliere di rispondere ad uno solo, magari se siete esperti in quel settore specifico. Questa discussione deve essere utile anche a chi in futuro vorrà cimentarsi alla creazione di un proprio server. Magari se la discussione andrà bene e vedrò molte risposte, le migliori le sostituisco nella lista così che diventi una vera e propria discussione "Come si crea un server Metin2". Dunque signori, questi sono i punti, vediamo chi ne sa di più e può aiutarmi:
Fondamenta di un server: Come tutti sappiamo, per creare qualsiasi cosa nella vita, abbiamo bisogno di fondamenta, nel caso di Metin, i cosiddetti file server. Nella mia piccola esperienza da tredicenne, sentivo questi benedetti "file server 40k", e sinceramente nemmeno adesso so cosa siano né le differenze. Ricordo che però "guardando su internet" avevo bisogno di questi maledetti file server da caricare su macchina virtuale o una roba simile. Dunque vi chiedo, quali sono i componenti essenziali, primari, per startare banalmente un server privato? Sono inclusi nella domanda anche eventuali database locali/remoti.
Come far partire il proprio server: Una volta che si hanno le basi, bisogna testarle in qualche modo, bisogna vedere cosa c'è dentro, e quindi bisogna avere una macchina virtuale su cui farlo partire. Ricordo che da piccolo leone da tastiera, digitavo dei comandi per far partire il tutto su virtual machine. Ma uno dei miei dubbi è se conviene ancora usarne una o conviene fare tutto hostando online. Quindi vi chiedo a tal proposito, come si crea da zero una macchina virtuale per caricare il tutto (localmente), ma allo stesso modo, come si fa invece per lavorare online e non tenere troppa roba su un computer?
Una volta riusciti a creare tutto ed essendo effettivamente dentro il server, cominciano le difficoltà, ovvero le domande più stuzzicanti per me.
Creazione di qualcosa personale: Qui si apre un bel ramo, perché come sappiamo (anche io che non so nulla), possiamo sbizzarrirci su un server privato. Creazione di quest, implementazione di system (o magari qualche piccolo anti-bot creato da zero), package di armature, oppure tipo quando nei server lo staffer pubblica un aggiornamento del tipo "Aggiunto questo item craftabile con questi altri item". Per questo qui bisogna soffermarsi abbastanza. Sappiate che io personalmente non so nulla di tutte le cartelle e file che si trovano dentro ogni server privato, soprattutto non so cosa ci sia dentro "root" e perché sia così importante.
- Creazione di quest: In più server vediamo ormai quest personalizzate che danno ricompense, sì, va bene, ma da dove si inizia? Come funziona la creazione di una quest, e come si "givvano" degli item, xp, e qualsiasi cosa ad un player? Informandomi ho sentito che si lavora in C++, ok, ma su quali file si scrive il codice? Ci sono librerie adatte?
- Implementazione di system: Ogni server come sappiamo si contraddistingue per l'originalità di alcuni aspetti, la maggior parte per i system. Ma come si implementa realmente un "system"? Anche i più banali, cinture, mount, pet e così via. Successivamente, come si crea qualcosa di originale?
- Modifica mappe/mob: Qui già entriamo in ambiente grafico, ahimè, zero esperienza, non so disegnare nemmeno qualcosa sul foglio. La domanda in questione è su come implementare mappe, cambiare i mob di una mappa, andare a toccare i valori di un mob, il suo drop, la sua vita, il suo danno. Sempre nel periodo di quando ero un bamboccio, un mio cugino (più grande di me) creò insieme ai suoi amici un server, e una volta mentre ci stava lavorando su, ricordo che mi chiese se secondo me i mob nella torre erano molti, facendomi proprio vedere un tool che con un bottone aumentava lo spawn dei mob o lo riduceva. Quindi, esistono tool che semplificano l'utente?
Protezioni server: Sempre parlando di quel mio cugino che un giorno creò un server, ahimè, gli fu buttato giù da una serie di attacchi DDos, all'epoca non sapevo minimamente cosa fossero, quindi non vi so dire cosa attaccarono realmente. Anche su inforge stesso vedo persone, staffer di alcuni server, che si attaccano a vicenda, magari non riuscendo a buttare giù il server ma facendolo laggare. Dunque, a livello di protezioni, come ci si protegge da eventuali attacchi senza cadere, da protezioni anti-hack, i più famosi come quello di lalaker, ma anche quelle situazioni in cui il client ti cancella dei file sospetti dalla sua cartella, oppure quando si chiude perchè injectate qualcosa, o semplicemente si chiude se avviate il processo di lalaker? E' vero che si possono creare da zero?
Grafica 2D/3D: Infine, la parte che odio di più, la grafica. Partendo da "semplici" (complicate per me) grafiche 2D degli item (tipo quelli da upp), finestre modificate, fino ad arrivare alla grafica 3D delle mappe, armi e armature, qualsiasi cosa si voglia creare, anche un npc. Come si fa di solito a lavorare su queste cose? Ovviamente io non potrei mai e avrei bisogno di esperti che mi aiutino, ecco perchè in un progetto ci sono più persone.
Inutile dirvi che vi ringrazio se siete arrivati fino a questo punto della discussione, e un grazie ancora di più a chi avrà il piacere e la pazienza di rispondere anche ad uno solo di questi punti, perchè davvero, non so come io faccia, ma non so assolutamente cosa ci sia dietro un server, in nessuno degli aspetti qui elencati, zero assoluto. Spero possa diventare una discussione ampia. Ci si vede!