Sapere mettere mano a Metin2 non ti garantisce un lavoro nella silicon valley e non stiamo parlando di un software esoterico a cui è impossibile mettere mano.
Detto ciò è un punto di partenza molto ambizioso (ma proprio per questo vale la pena tentare) data la complessità architetturale, la moltitudine di linguaggi utilizzati ed embeddati e sopratuto data la sua età.
La parte più ostica di Metin è infatti che è stto realizzato più di 20 anni fa. Il codice e le soluzioni adottate sono veramente, veramente di basso livello e pertanto più complesse di un'applicativo realizzato l'anno scorso utilizzando tutto il ben di dio che l'informatica ha creato negli ultimi decadi.
I file di configurazione stessi sono implementazioni proprietarie di un meta-linguaggio che oggi sarebbe rimpiazzato da standard come yaml o JSON, e che quindi aggiungono ulteriore confusione e complessità ad un Client e Server di un MMO che di per sè non è facile da realizzare e mantenere.
Compreso l'ambiente in cui vuoi addentrarti, vorrei dare i miei due centesimi sul viaggio che stai per intraprendere:
Metin2 è un ottimo parco giochi per provare, imparare e sperimentare. É un prodotto fatto e finito il che permette di entrarci con qualunque grado di conoscenza. Attraverso Metin2 puoi imparare molteplici discipline dell'informatica e per tanto sono convinto che la tua scelta non sia affatto sbagliata.
Di contro può essere molto frustrante e la curva di apprendimento è molto bassa.
Ad ogni modo, per tornare in-topic.
Da dove partire e come muoverti dipende molto da quello che ti interessa fare nel breve periodo.
- Vuoi cambiare la grafica?
- Vuoi cambiare il gameplay?
- Vuoi aggiungere assets come armature o mappe?
- Vuoi creare nuove missioni?
- Vuoi creare dungeon?
- Vuoi provare a mettere mano al sorgente per modifiche più importanti ed impattanti sulle meccaniche di base?
Penso che per prima cosa dovresti farti la domanda e chiedertelo, perchè in base al tuo interesse cambia il percorso e gli strumenti.
A prescindere da tutto però, dovrai prendere dimestichezza con il tuo server di metin. Il che vuol dire che sicuramente dovrai scaricare client+server e prendere domestichezza con l'ambiente di sviluppo:
- Comprare e setuppare il server
- Far runnare game e db
- Compilare il launcher
- ...
Una volta capito e preso familiarità con quello che ti troverai volente o nolente ad utilizzare, ti consiglio di partire in quarta con l'implementazione di una tua idea piuttosto che con lo studio sistematico di un linguaggio.
É molto più importante mettere le mani, sperimentare, sbagliare, passare ore a debuggare e comprendere come funziona Metin2 che fare un corso avanzato di 300 ore su c++ 20, te lo posso assicurare.
Partire piccolo con modifiche piccole "voglio cambiare luccichio", "voglio aggiungere una missione che faccia A, B, C", "voglio cambiare come appare l'interfaccia del personaggio", "voglio modificare come funziona la pesca e far pescare 2 pesci invece che 1" per poi passare a nuove features sempre più complesse che coprono sempre più aspetti del gioco.
In tutto questo percorso ti consiglio di usare quanto più possibile quello che ci viene regalato dal monto IT, in particolare ChatGPT o qualsiasi altro equivalente che a mio avviso rendono molto più semplice la didattica e la comprensione di sistemi complessi.
Detto ciò è un punto di partenza molto ambizioso (ma proprio per questo vale la pena tentare) data la complessità architetturale, la moltitudine di linguaggi utilizzati ed embeddati e sopratuto data la sua età.
La parte più ostica di Metin è infatti che è stto realizzato più di 20 anni fa. Il codice e le soluzioni adottate sono veramente, veramente di basso livello e pertanto più complesse di un'applicativo realizzato l'anno scorso utilizzando tutto il ben di dio che l'informatica ha creato negli ultimi decadi.
I file di configurazione stessi sono implementazioni proprietarie di un meta-linguaggio che oggi sarebbe rimpiazzato da standard come yaml o JSON, e che quindi aggiungono ulteriore confusione e complessità ad un Client e Server di un MMO che di per sè non è facile da realizzare e mantenere.
Compreso l'ambiente in cui vuoi addentrarti, vorrei dare i miei due centesimi sul viaggio che stai per intraprendere:
Metin2 è un ottimo parco giochi per provare, imparare e sperimentare. É un prodotto fatto e finito il che permette di entrarci con qualunque grado di conoscenza. Attraverso Metin2 puoi imparare molteplici discipline dell'informatica e per tanto sono convinto che la tua scelta non sia affatto sbagliata.
Di contro può essere molto frustrante e la curva di apprendimento è molto bassa.
Ad ogni modo, per tornare in-topic.
Da dove partire e come muoverti dipende molto da quello che ti interessa fare nel breve periodo.
- Vuoi cambiare la grafica?
- Vuoi cambiare il gameplay?
- Vuoi aggiungere assets come armature o mappe?
- Vuoi creare nuove missioni?
- Vuoi creare dungeon?
- Vuoi provare a mettere mano al sorgente per modifiche più importanti ed impattanti sulle meccaniche di base?
Penso che per prima cosa dovresti farti la domanda e chiedertelo, perchè in base al tuo interesse cambia il percorso e gli strumenti.
A prescindere da tutto però, dovrai prendere dimestichezza con il tuo server di metin. Il che vuol dire che sicuramente dovrai scaricare client+server e prendere domestichezza con l'ambiente di sviluppo:
- Comprare e setuppare il server
- Far runnare game e db
- Compilare il launcher
- ...
Una volta capito e preso familiarità con quello che ti troverai volente o nolente ad utilizzare, ti consiglio di partire in quarta con l'implementazione di una tua idea piuttosto che con lo studio sistematico di un linguaggio.
É molto più importante mettere le mani, sperimentare, sbagliare, passare ore a debuggare e comprendere come funziona Metin2 che fare un corso avanzato di 300 ore su c++ 20, te lo posso assicurare.
Partire piccolo con modifiche piccole "voglio cambiare luccichio", "voglio aggiungere una missione che faccia A, B, C", "voglio cambiare come appare l'interfaccia del personaggio", "voglio modificare come funziona la pesca e far pescare 2 pesci invece che 1" per poi passare a nuove features sempre più complesse che coprono sempre più aspetti del gioco.
In tutto questo percorso ti consiglio di usare quanto più possibile quello che ci viene regalato dal monto IT, in particolare ChatGPT o qualsiasi altro equivalente che a mio avviso rendono molto più semplice la didattica e la comprensione di sistemi complessi.