Latency Δημοσ. 2 Οκτωβρίου 2012 Δημοσ. 2 Οκτωβρίου 2012 Τι τύπο δεδομένων θα επιλέγατε για να περιγράψετε τον παίχτη, πχ, Health/Mana/STR/DEX/EXP/Level με κύριο γνώμονα ένα παιχνίδι στημένο με τον καλύτερο τρόπο όσον αφορά το μέγεθος, ταχύτητα, μέγεθος στην μνήμη... προσωπικά θα επέλεγα short και μπορεί unsigned γιατί λογικά δεν υπάρχουν αρνητικές τιμές στα παραπάνω, αλλά όταν έχεις unsigned έρχεται τούμπα και μπορεί να είναι κακή τακτική... ------------------- Και ένα 2ο κομμάτι, τα παραπάνω χαρακτηριστικά θα τα είχατε Public για απ'ευθείας πρόσβαση ή θα είχατε συναρτήσεις για την επέμβαση, πιστεύω ότι καλύτερα συναρτήσεις που είναι και πιο περιγραφικές...
Latency Δημοσ. 2 Οκτωβρίου 2012 Μέλος Δημοσ. 2 Οκτωβρίου 2012 τύπο δεδομένων εννοώ, δηλαδή int, double, short, unsigned int, unsigned short
Haldol Δημοσ. 2 Οκτωβρίου 2012 Δημοσ. 2 Οκτωβρίου 2012 Σε τι γλώσσα; Επίσης πρέπει να δώσεις κάποιο παράδειγμα τιμών. Π.χ. μπορεί να σου πει κανείς να βάλεις single-byte numeral type (0-255) για το "health", αλλά άμα εσένα δε σου αρκούν 256 διακριτές τιμές, να είναι εντελώς λάθος τύπος.
Latency Δημοσ. 3 Οκτωβρίου 2012 Μέλος Δημοσ. 3 Οκτωβρίου 2012 δεν έχει σημασία η γλώσσα φίλε μου, Level -> 1to100 HP -> 100(newbie)to 10.000~ max(top player) MP -> 70(newbie) to 4700~max(top mage) to 3500(top fighter) EXP-> Lineage 2 style, στην αρχή τα mob θα πετάνε 100-200, στα 70 lvl περίπου θα πετάνε 100.000~, άρα το πάω για INT , SP-> 70% of EXP, int also PATK/MATK/PDEF/MDEF/CPSEED/ATKSPEED/SPEED (max 20~k {patk/matk}, 12-15k def, csped/atkspeed 1500~max, speed 250 max από τι βλέπετε σχεδών όλα θα μπορούσαν να αναπαρασταθούν με short(2byte) -32.000~ to 32.000~ ή unsigned 0...64.000~ απλά δεν έχω δει ποτέ μου να το χρησιμοποιούν short σε διάφορα παραδείγματα στο Internet, ακόμα και παιχνίδια που δίνουν Source μήπως γίνεται λόγο συνήθειας-άγνοιας? έχουμε συνηθίσει τους int/float/double και κάτι άλλο, γιατί το HP/MP είναι Double? βλέπω μερικούς που το κάνουν (βασικά όταν πάει το ΗΠ 0.5 τότε ο παίχτης θεωρείτε Dead, μάλλον για αυτό. αλλά θα μπορούσε να είναι int και να θέσουμε σαν dead 1hp, ) νομίζω float-double είναι το σωστό γιατί υποτίθεται ότι υπάρχουν κατάρες που κατεβάζουν ζωή, φτάνεις 1hp σταματάς εκεί (σκοπός της κατάρας δεν είναι να σε ρίξει)
Timonkaipumpa Δημοσ. 3 Οκτωβρίου 2012 Δημοσ. 3 Οκτωβρίου 2012 Int για το xp? Και όταν έχεις μεγάλα lvl, με 1.000.000 xp points, τι θα κάνεις;
Latency Δημοσ. 3 Οκτωβρίου 2012 Μέλος Δημοσ. 3 Οκτωβρίου 2012 άκυρο , είχα την εντύπωση ότι ήταν int ... http://trac.l2jserver.com/browser/trunk/L2_GameServer_T1/java/net/sf/l2j/gameserver/model/base/Experience.java?rev=2019
Latency Δημοσ. 3 Οκτωβρίου 2012 Μέλος Δημοσ. 3 Οκτωβρίου 2012 θα το αλλάξω, ώστε να είμαι μέσα με int, άρα στα μεγάλα level 80~k exp δεν βιάζομαι ..., τι λέτε για αυτά που έχω κάνει μέχρι τώρα (δεν επέλεξα seters & geters γιατί υπάρχουν ένα σορό προϋποθέσεις για να αλλάξει ένα stats και είναι πιο άνετο-περιγραφικό με συναρτήσεις ) http://codepaste.net/2h77mr
defacer Δημοσ. 3 Οκτωβρίου 2012 Δημοσ. 3 Οκτωβρίου 2012 Βάζουμε "πάντα" int γιατί δεν έχει κανένα νόημα να κάνεις οικονομία 2 bytes (θα είχε νόημα μόνο το 1980 στον ZX81 με το 1Kb ram). Δεν κερδίζεις απολύτως τίποτα και απλά αφήνεις ανοιχτό το ενδεχόμενο να έχεις πρόβλημα στο μέλλον. απλά δεν έχω δει ποτέ μου να το χρησιμοποιούν short σε διάφορα παραδείγματα στο Internet, ακόμα και παιχνίδια που δίνουν Source ήπως γίνεται λόγο συνήθειας-άγνοιας? έχουμε συνηθίσει τους int/float/double Απλή λογική: ή όλοι αυτοί έχουν μεγαλύτερη άγνοια από σένα (που είσαι τελείως νέος) ή κάτι άλλο συμβαίνει. Για τον κώδικα... δεν πρόκειται να πας πουθενά έτσι, αλλά πιθανότατα χρειάζεται να ανακαλύψεις μόνος σου γιατί. Για να δώσω λίγο food for thought: Πές ότι ο παίχτης τρώει poison το οποίο σημαίνει πως κάθε μονάδα χρόνου (ο,τι κι αν σημαίνει αυτό) τρώει 5 poison damage. Πώς θα το υλοποιήσεις; Τώρα πες ότι έχει 25% poison resist και συμβαίνει το ίδιο. Πώς θα το υλοποιήσεις; Tο σχόλιο με τις συναρτήσεις vs properties είναι τελείως λάθος, δείχνει ότι έρχεσαι από κάποια γλώσσα του στυλ C και κατά πάσα πιθανότητα αυτό που ήθελες να πεις είναι "το κάνω έτσι γιατί έτσι έχω συνηθίσει". Λάθος προσέγγιση. H C# γι' αυτή τη δουλειά έχει properties και συ πρέπει να τις χρησιμοποιήσεις. Αν δεν το κάνεις απλά θα κουράζεσαι για να λύσεις manually προβλήματα που έχουν ήδη ενδεδειγμένη λύση. Και τέλος, οι properties υλοποιούνται με functions. Το μόνο που αλλάζει είναι η σύνταξη στο source. 2
Latency Δημοσ. 3 Οκτωβρίου 2012 Μέλος Δημοσ. 3 Οκτωβρίου 2012 όσον αφορά αυτό Λάθος προσέγγιση. H C# γι' αυτή τη δουλειά έχει properties και συ πρέπει να τις χρησιμοποιήσεις. Είσαι λάθος, καμιά προσέγγιση δεν είναι λάθος, απλά όπως είπα δεν έχεις απλά seters/geters χωρίς κάποιον έλεγχο. όσον αφορά αυτό Πές ότι ο παίχτης τρώει poison το οποίο σημαίνει πως κάθε μονάδα χρόνου (ο,τι κι αν σημαίνει αυτό) τρώει 5 poison damage. Πώς θα το υλοποιήσεις; Τώρα πες ότι έχει 25% poison resist και συμβαίνει το ίδιο. Πώς θα το υλοποιήσεις; Δεν πάω για κάτι μεγάλο όπως τα MMORPGs που έχουν 100 Stats (resist wind, fire, earth, dark, posion resists...), σκοπός μου δεν είναι να βάλω resists. θα είναι κάτι απλό, όταν σε βαράει το τέρας θα χάνεις κάποια ζωή τελεία και παύλα, δεν θα μπω στην διαδικασία να "Calculate Received DMG" απλά θα βάλω 1-2 Poisons για να υπάρχουν, δεν θα υπάρχει αντίδοτο. ΥΓ: δεν έχω ασχοληθεί με Threads, μήπως γνωρίζεις πως θα γίνεται να παίζεις κανονικά και από πίσω ταυτόχρονα να τρέχει ένας κώδικας που σου κατεβάζει ζωή? (Poison) λέω να το κάνω με BackgroundWorker > // δεν θυμάμαι την υπογραφή void DoWork(...., ....) { While(ElapsedSeconds < PoisonSeconds) { // Decrease HP & Whatever must be } } το παραπάνω πρέπει να τρέχει μόνο του αλλιώς θα κρατάει όλο το πρόγραμμα, δεν θα γίνεται Draw/Update ...τπτ Απλή λογική: ή όλοι αυτοί έχουν μεγαλύτερη άγνοια από σένα (που είσαι τελείως νέος) ή κάτι άλλο συμβαίνει. σε έχω δει κατά καιρούς να απαντάς έτσι και στο έχω ξαναπει, μίλα πιο ευγενικά και 2ον, πόσες μεταβλητές θα έχεις φορτωμένες στην μνήμη παράλληλα? 100-1000? ναι, δεν υπάρχει λόγος για short (1000*4 = 4ΜΒ, so what;) @IHateLove
defacer Δημοσ. 3 Οκτωβρίου 2012 Δημοσ. 3 Οκτωβρίου 2012 Σου δίνω κάποιες συμβουλές/κατευθύνσεις. Αν επιλέξεις να μου κλείσεις την πόρτα στη μούρη χωρίς να το σκεφτείς καν όπως μόλις έκανες -- κάτι που φυσικά είναι δικαίωμά σου -- τότε απλά θα σταματήσω να το κάνω. Σκέψου τι είναι καλύτερο για σένα και πράξε ανάλογα. Υπό τις συγκεκριμένες συνθήκες το τελευταίο πράγμα που έχω να πω είναι ότι η νοοτροπία που βλέπω στο τελευταίο post σου δε θα σε βοηθήσει να πας μπροστά. Λες "είμαι λάθος γιατί καμία προσέγγιση δεν είναι λάθος", κάτι το οποίο δε σημαίνει και πολλά. Θα μπορούσες καλύτερα να πεις "καμία προσέγγιση δε σε εμποδίζει να έχεις το επιθυμητό αποτέλεσμα" και θα συμφωνήσω. Απλώς με κάποιες θα το κάνεις σαν πελαργός που λέει και ο Γκουσγκούνης ενώ με άλλες θα χτυπιέσαι χωρίς λόγο. Μιλάμε για μια γλώσσα την οποιά εσύ πρωτογνωρίζεις τώρα και γω τη χρησιμοποιώ επαγγελματικά εδώ και χρόνια. Ίσως θα ήταν καλύτερα αντί για στεγνή άρνηση να ρωτούσες "γιατί δηλαδή είναι λάθος; έχεις κάποιο παράδειγμα;". Αυτό είναι που θα είχα κάνει εγώ στη θέση σου, αλλά what do I know. σε έχω δει κατά καιρούς να απαντάς έτσι και στο έχω ξαναπει, μίλα πιο ευγενικά και 2ον, πόσες μεταβλητές θα έχεις φορτωμένες στην μνήμη παράλληλα? 100-1000? ναι, δεν υπάρχει λόγος για short (1000*4 = 4ΜΒ, so what;) Δηλαδή πώς πρέπει να πω "αυτό το ενδεχόμενο ακούγεται τόσο απίθανο που δε χρειάζεται να είσαι μάντης για να καταλάβεις ότι μάλλον κάτι άλλο συμβαίνει"? Είμαι ανοιχτός σε αντιπροτάσεις. Το δεύτερο μισό δεν το κατάλαβα καθόλου. Σχετικά με BackgroundWorker που λες, ξέχασέ το (τελείως λάθος προσέγγιση ). Το παιχνίδι υποτίθεται πως είναι real time ή turn based? 1
Latency Δημοσ. 3 Οκτωβρίου 2012 Μέλος Δημοσ. 3 Οκτωβρίου 2012 Σου δίνω κάποιες συμβουλές/κατευθύνσεις. Αν επιλέξεις να μου κλείσεις την πόρτα στη μούρη χωρίς να το σκεφτείς καν όπως μόλις έκανες -- κάτι που φυσικά είναι δικαίωμά σου -- τότε απλά θα σταματήσω να το κάνω. Σκέψου τι είναι καλύτερο για σένα και πράξε ανάλογα. δεν σου κλείνω την πόρτα για την ώρα, απλά σου λέω φέρσου πιο ευγενικά μεγάλος είσαι, ξέρεις ότι μια πόρτα μπορεί να κλείσει και σε άτομα που μπορεί να σε βοηθήσουν, πάνω απ'όλα σεβασμός. ΥΓ: βλέπω ότι σε μερικά πράγματα είσαι λίγο "απόλυτος" να το πω? υποστηρίζεις κάτι που έχεις μάθει και τα άλλα είναι λάθος τακτική...
hawkpilot Δημοσ. 3 Οκτωβρίου 2012 Δημοσ. 3 Οκτωβρίου 2012 Με το μπαρδόν που παρεμβαίνω, αλλά έχω απορία: θεωρείς μικρής ή άνευ σημασίας τα χαρακτηριστικά get/set και τον έλεγχο που σου προσφέρουν? ... Είσαι λάθος, καμιά προσέγγιση δεν είναι λάθος, απλά όπως είπα δεν έχεις απλά seters/geters χωρίς κάποιον έλεγχο. ...
defacer Δημοσ. 3 Οκτωβρίου 2012 Δημοσ. 3 Οκτωβρίου 2012 δεν σου κλείνω την πόρτα για την ώρα, απλά σου λέω φέρσου πιο ευγενικά Με συγχωρείς πολύ, αλλά αυτό είναι κλείσιμο πόρτας: Είσαι λάθος, καμιά προσέγγιση δεν είναι λάθος, απλά όπως είπα δεν έχεις απλά seters/geters χωρίς κάποιον έλεγχο. Αν δεν είναι κλείσιμο πόρτας και υπάρχει κάποιο επιχείρημα εδώ ευχαρίστως να το συζητήσουμε. Επίσης κλείσιμο πόρτας είναι αυτό: Δεν πάω για κάτι μεγάλο όπως τα MMORPGs που έχουν 100 Stats (resist wind, fire, earth, dark, posion resists...), σκοπός μου δεν είναι να βάλω resists. θα είναι κάτι απλό, όταν σε βαράει το τέρας θα χάνεις κάποια ζωή τελεία και παύλα, δεν θα μπω στην διαδικασία να "Calculate Received DMG" απλά θα βάλω 1-2 Poisons για να υπάρχουν, δεν θα υπάρχει αντίδοτο. Με άλλα λόγια: "δεν έκατσα να το σκεφτώ αυτό που είπες, αποφάσισα ότι δε με ενδιαφέρει". Πιστεύεις ότι στο είπα γιατί με ενδιαφέρει αν το υποθετικό game σου θα έχει poison ή γιατί στα πλαίσια της προσπάθειας να απαντήσει κανείς σ' αυτά τα ερωτήματα θα βγάλει χρήσιμα συμπεράσματα; μεγάλος είσαι, ξέρεις ότι μια πόρτα μπορεί να κλείσει και σε άτομα που μπορεί να σε βοηθήσουν, πάνω απ'όλα σεβασμός. Πραγματικά πιστεύω ότι δεν έδειξα έλλειψη σεβασμού, αν θέλεις κάνε μου μια αντιπρόταση για να το βελτιώσω. Από την πλευρά σου, μήπως το πήρες λίγο προσωπικά; Κάνω κριτική στις προσεγγίσεις σου, οι οποίες είναι βασισμένες στις γνώσεις σου, οι οποίες θα βελτιωθούν. Δεν κατακρίνω εσένα προσωπικά. ΥΓ: βλέπω ότι σε μερικά πράγματα είσαι λίγο "απόλυτος" να το πω? υποστηρίζεις κάτι που έχεις μάθει και τα άλλα είναι λάθος τακτική... Κάνεις λάθος, αν μου φέρεις αντίρρηση ή αν ανατρέξεις σε παλιότερα threads θα δεις ότι πάντα παραθέτω επιχειρήματα. Όταν λέω "το Α είναι καλύτερο από το Β" υπάρχουν πάντα κριτήρια τα οποία μπαίνουν στη ζυγαριά και καταλήγω στο ότι το Α είναι καλύτερο γι' αυτό και γι' αυτό το λόγο. 1
Latency Δημοσ. 3 Οκτωβρίου 2012 Μέλος Δημοσ. 3 Οκτωβρίου 2012 Σχετικά με BackgroundWorker που λες, ξέχασέ το (τελείως λάθος προσέγγιση ). Το παιχνίδι υποτίθεται πως είναι real time ή turn based? τι εννοείς? ούτε εγώ ξέρω, δεν έχω κάποια σχέδια, προχωράω και ότι βγει σαν 1ο στόχο έχω να το τελειώσω σαν offline rpg μετά αφού θα είναι έτοιμος ο σκελετός "σχεδόν" ίσως το κάνω online όσο αφορά το BWorker τι προτείνεις? πάντως τα Threads κρατάνε το πρόγραμμα σε αναμονή, γιατί συμβαίνει? δεν υποτίθεται ότι δημιουργείται ένα Thread και τρέχει χωριστά? το έχω δοκιμάσει και κρατάει το Draw/Update Πίσω Με το μπαρδόν που παρεμβαίνω, αλλά έχω απορία: θεωρείς μικρής ή άνευ σημασίας τα χαρακτηριστικά get/set και τον έλεγχο που σου προσφέρουν? προσωπικά μου είναι πιο εύκολες οι συναρτήσεις γιατί είναι πιο περιγραφικές, σε ένα παιχνίδι υπάρχουν πόλλα πράγματα όπως Set Health (ότι βάλεις τόσο θα έχει) Increase Helth (εδώ αυξάνεται, κάτι που γίνεται όταν βάζεις ένα Potion πχ, HP = HP + PoitionBonusPerSec) Decrease Helth (το ανάποδο του πάνω) όλα αυτά έχουν επίσης 10 συνθήκες μέσα, αν είναι ζωντανός, αν είναι σε event, αν είναι ολυμπιαδα, αν είναι combat Mode (μπορεί να θες κάποια ποτιον να τα απενεργοποιήσεις όταν είναι combat mode) i be back in 5, θα το κάνω με seters/geters να δείτε τι εννοώ...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα