Domanda Debug sources

Stato
Discussione chiusa ad ulteriori risposte.

blinkol3

Utente Electrum
28 Giugno 2010
219
52
9
173
Ciao ragazzi,
vorrei chiedervi, da profano, un consiglio su come iniziare a debuggare i sorgenti, per poi modificarli e modellare il server a mio piacimento. Premessa: me la cavo abbastanza bene col C (mi sono sudato un 30 in APA, ma purtroppo ho 0 familiarità con programmi non "scolastici") e sto iniziando a studiare Java, quindi penso che con un po' di impegno (e probabilmente anche abbastanza tempo) dovrei riuscire ad orientarmi anche col C++.
Il fatto è che, come potete immaginare:
1) Leggere un codice, capirne la struttura etc. è ben più complicato che scriverlo;
2) Non ho mai lavorato su nulla che non venisse eseguito direttamente nell'IDE

Quindi, vorrei chiedervi essenzialmente un consiglio su come approcciare il problema: come dovrei iniziare, secondo voi? Provo a compilare i files su Virtual Box con FreeBSD? Non ho veramente idea.

Grazie!
 
Ora dovrai usare la testa per fare qualcosa seriamente.
Per debuggare una parte di codice puoi semplicemente sfruttare i log. Ci metti qualche scritta nei punti strategici con visualizzazione delle variabili se necessario.
 
Ora dovrai usare la testa per fare qualcosa seriamente.
Per debuggare una parte di codice puoi semplicemente sfruttare i log. Ci metti qualche scritta nei punti strategici con visualizzazione delle variabili se necessario.

In che parte del filesystem posso trovare i logs?
Quindi essenzialmente dovrei far partire tutto con una VM ed iniziare a far partire il gioco in cerca di bug?
Scusa le tante domande, che risultano probabilmente anche stupide, ma purtroppo la mia esperienza è quasi nulla
 
E' meglio se non ti rispondo con esattezza o ti danneggerei. Non essendoci una buona documentazione del tutto, dovrai cercare da solo le varie cose, anche quelle più banali. Guarda bene l'alberatura dei fileserver (stanno tutti sotto un'unica cartella padre, la sua home directory) e capirai tante cose. I log sono più di uno. Ce ne sono due per ogni core: syslog e syserr.

Comunque non ti spaventare. C'è gente con 0 competenze in materia che ce la fa ad aprire server di metin2.
 
Se devi effettuare debugging in senso stretto, datti un occhiata alla documentazione di gdb, la versione disponibile su pkg è la 7.1.2 compatibile con gcc5.
Per il resto, come ti hanno già consgliato, un paio di debug ben piazzati nel codice risolveranno tutti i tuoi poblemi (o la maggior parte, lol)
 
Se devi effettuare debugging in senso stretto, datti un occhiata alla documentazione di gdb, la versione disponibile su pkg è la 7.1.2 compatibile con gcc5.
Per il resto, come ti hanno già consgliato, un paio di debug ben piazzati nel codice risolveranno tutti i tuoi poblemi (o la maggior parte, lol)

Ieri ho provato a compilare con FreeBSD 11: prima ho avuto problemi ad installare gcc/g++, una volta riuscito praticamente la compilazione mi ha dato 2 errori, e non riesco nemmeno ad identificare i files di log. Mi conviene spostarmi sulla versione 9.3, anche se non è più supportata?
 
Ieri ho provato a compilare con FreeBSD 11: prima ho avuto problemi ad installare gcc/g++, una volta riuscito praticamente la compilazione mi ha dato 2 errori, e non riesco nemmeno ad identificare i files di log. Mi conviene spostarmi sulla versione 9.3, anche se non è più supportata?
Ti do un consiglio da uno che ha iniziato 5 anni fa a lavorare sui file di metin e tutt'ora li sto ancora studiando.
Inizia a lavorare su file precompilati. Studia la struttura "semplice" dei files di metin. Come impostare drop, exp , upp e fai quanta più esperienza possibile. Una volta acquisita la padronanza delle cose elementari ti puoi cimentare nel debugging che io definisco elementare ovvero errori syserr syslog. Fatto ciò puoi iniziare a pensare di avvicinarti ai sorgenti e a debuggarli.

P.s
Parere estremamente personale: Io credo che Leggere un codice, capirne la struttura etc. è più facile se si conoscono le basi del codice in se. La migliore pratica, almeno in campo metin2, secondo me è quella di riadattare cose già fatte secondo le proprie esigenze fino al punto di padroneggiare il linguaggio in modo da poter creare qualcosa di originale e del tutto personale.
 
Ti do un consiglio da uno che ha iniziato 5 anni fa a lavorare sui file di metin e tutt'ora li sto ancora studiando.
Inizia a lavorare su file precompilati. Studia la struttura "semplice" dei files di metin. Come impostare drop, exp , upp e fai quanta più esperienza possibile. Una volta acquisita la padronanza delle cose elementari ti puoi cimentare nel debugging che io definisco elementare ovvero errori syserr syslog. Fatto ciò puoi iniziare a pensare di avvicinarti ai sorgenti e a debuggarli.

P.s
Parere estremamente personale: Io credo che Leggere un codice, capirne la struttura etc. è più facile se si conoscono le basi del codice in se. La migliore pratica, almeno in campo metin2, secondo me è quella di riadattare cose già fatte secondo le proprie esigenze fino al punto di padroneggiare il linguaggio in modo da poter creare qualcosa di originale e del tutto personale.

Mmh, allora: per quanto riguarda i files precompilati, avevo già dato varie occhiate anni fa, ma mi sembrava ci fosse "poco" da fare. Nel senso, modificare dati tramite navicat, e poco altro, se non ricordo male. Però effettivamente avevo fatto operazioni elementari in maniera più meccanica che altro, se adesso mi "interrogassi" sulla struttura del gioco ti saprei dire molto poco.

Quindi dici che, lavorando un bel po' su quelli precompilati, arriverò anche a capire meglio che operazioni coordinano i vari files delle sources?
 
Mmh, allora: per quanto riguarda i files precompilati, avevo già dato varie occhiate anni fa, ma mi sembrava ci fosse "poco" da fare. Nel senso, modificare dati tramite navicat, e poco altro, se non ricordo male. Però effettivamente avevo fatto operazioni elementari in maniera più meccanica che altro, se adesso mi "interrogassi" sulla struttura del gioco ti saprei dire molto poco.

Quindi dici che, lavorando un bel po' su quelli precompilati, arriverò anche a capire meglio che operazioni coordinano i vari files delle sources?
Sicuramente. Conosci tutta la struttura poi i file che coordinano sono anche intuitivi e molte cose le trovi sul web. Ma file buoni e fixati su cui lavorare costano per questo ti dico usa qualche free source. E ti ripeto prima di pensare ai sorgenti devi sapere tutto il resto alla perfezione. Anche perche sviluppare qualcosa in metin2 anche essendo un programmatore avanzato non é pensabile senza avere la base del funzionamento del gioco.
 
Sicuramente. Conosci tutta la struttura poi i file che coordinano sono anche intuitivi e molte cose le trovi sul web. Ma file buoni e fixati su cui lavorare costano per questo ti dico usa qualche free source. E ti ripeto prima di pensare ai sorgenti devi sapere tutto il resto alla perfezione. Anche perche sviluppare qualcosa in metin2 anche essendo un programmatore avanzato non é pensabile senza avere la base del funzionamento del gioco.

Allora mi sa che inizierò con un classico precompilato (50k trovati online dovrebbero andare bene per sperimentare un po', spero).
Secondo te posso gestire tutto con una vm hostata con virtual box, oppure per lavorare (pur non volendo startare nulla) è comunque necessario prendere qualcosa da un sito esterno?

Infine, per analizzare al meglio la struttura, secondo te potrebbe andar bene cominciare con l'implementazione di items, mappe, missioni etc. e con il settaggio di drop, exp e quant'altro?

Grazie ancora!
 
Allora mi sa che inizierò con un classico precompilato (50k trovati online dovrebbero andare bene per sperimentare un po', spero).
Secondo te posso gestire tutto con una vm hostata con virtual box, oppure per lavorare (pur non volendo startare nulla) è comunque necessario prendere qualcosa da un sito esterno?

Infine, per analizzare al meglio la struttura, secondo te potrebbe andar bene cominciare con l'implementazione di items, mappe, missioni etc. e con il settaggio di drop, exp e quant'altro?

Grazie ancora!

Va benissimo virtual box. Fondamentale iniziare con le cose di base come hai detto.
Una vps costerebbe comunque un 5/10 euro al mese che non sono tantissimi però come meglio preferisci.
Importante è familiarizzare con la versione file.(50k è solo un numero! In realtà sono i cosiddetti 40k cambiati di nome xD)
 
Guarda, parere mio! Io ho avuto i file 2007 e 2011 per diversi anno "KedinMt2 che penso proprio di riaprire" e ultimamente mi era giunta voce dei source ma non me ne sono importato mai più di tanto. Poi l'altro giorno un utente mi ha detto di vedere il source e l'ho scaricato e controllato. Tutto c++ e come detto da ansatsu devi conoscere le basi di c++, ma a mio parere il gioco sempre quello è. Se sei un 3D con esperienza allora puoi fare svolta al gioco in se ma il gioco rimane quello quindi credimi lavorare su i file precompilati "come sto facendo io" é più facile e bello che su i source!

Sent from my SM-N920P using Tapatalk
 
Stato
Discussione chiusa ad ulteriori risposte.
Indietro
Top Bottom