Κωδικοποίηση για το Hytale: Το API, η τεκμηρίωση και το οικοσύστημα Java Plugin

By HytaleCharts Team Category: technical 8 min read

Ένα κρίσιμο ερώτημα αντηχεί στους προγραμματιστές Discords: Πού είναι η τεκμηρίωση του API; Αυτός ο οδηγός καλύπτει όλα όσα γνωρίζουμε για την ανάπτυξη για το Hytale.

Όσο πλησιάζει η έναρξη της Early Access, ένα κρίσιμο ερώτημα αντηχεί στα Discords των προγραμματιστών: Πού είναι η τεκμηρίωση του API; Χωρίς να υπάρχει ακόμα δημόσιο docs.hytale.com, οι προγραμματιστές που επιθυμούν να δημιουργήσουν το επόμενο μεγάλο δίκτυο διακομιστών πετούν στα τυφλά. Ωστόσο, η επιβεβαίωση της αρχιτεκτονικής "Legacy Engine" παρέχει έναν σημαντικό οδικό χάρτη για όσους ξέρουν πού να ψάξουν. Για τους προγραμματιστές και τους ιδιοκτήτες διακομιστών που σχεδιάζουν να καταχωρίσουν τα έργα τους στο hytalecharts.com αμέσως μετά την έναρξη λειτουργίας, η κατανόηση των τεχνικών περιορισμών του API τώρα είναι η διαφορά μεταξύ της έναρξης λειτουργίας την 1η ημέρα και της έναρξης λειτουργίας την 30ή ημέρα. Εδώ είναι ο οριστικός οδηγός για την τεχνική πραγματικότητα του οικοσυστήματος προγραμματιστών του Hytale. Η αρχιτεκτονική: Java Server, C# Client Το πιο ζωτικό κομμάτι της τεχνικής πληροφορίας είναι ο γλωσσικός διαχωρισμός. Η Legacy Engine λειτουργεί σε ένα μοντέλο κοινής πηγής για τον διακομιστή. Server-Side (Java): Η λογική του διακομιστή είναι γραμμένη σε Java. Εδώ συμβαίνουν τα δύσκολα: κανόνες παιχνιδιού, οικονομία, δεδομένα παικτών και αλληλεπιδράσεις στον κόσμο. Client-Side (C#): Ο πελάτης του παιχνιδιού εκτελείται σε C#. Ενώ ο πελάτης είναι κλειστού κώδικα για να αποτρέψει την εξαπάτηση, ο διακομιστής είναι "κοινής χρήσης", που σημαίνει ότι οι ιδιοκτήτες του διακομιστή θα έχουν πιθανότατα πρόσβαση ανάγνωσης στον κώδικα του διακομιστή για να καταλάβουν πώς να συνδεθούν σε αυτόν. Επιπτώσεις για Devs: Αν είστε προγραμματιστής πρόσθετων του Minecraft που χρησιμοποιείται το Spigot ή το Paper, είστε τυχεροί. Οι δεξιότητές σας σε Java είναι άμεσα μεταβιβάσιμες. Αν μαθαίνατε C++ εν αναμονή της μηχανής που τώρα ακυρώθηκε, πρέπει να γυρίσετε αμέσως πίσω στη Java. Η διάκριση μεταξύ "plugin" και "scripting" Οι επίσημες αναρτήσεις στο blog έχουν αποσαφηνίσει μια κρίσιμη διάκριση στο modding API που πολλοί παραβλέπουν: τη διαφορά μεταξύ Game Logic και Game Behavior. Προσθήκες διακομιστή (αρχεία Java .jar) Αυτά είναι τα ισχυρά εργαλεία. Σύμφωνα με τον τεχνικό διευθυντή Slikey, τα server plugins επιτρέπουν "βαθιές τροποποιήσεις" στο σύστημα. Μπορείτε να δημιουργήσετε μίνι παιχνίδια, προσαρμοσμένες οικονομίες και σύνθετες εντολές χρησιμοποιώντας Java. Status: Εξαιρετικά ισχυρό. Εδώ θα γίνει η ανάπτυξη του backend σας. Οπτικό Scripting (Συμπεριφορές) Για τις συμπεριφορές του παιχνιδιού (π.χ. πώς επιτίθεται ένα τέρας ή πώς λειτουργεί ένα προσαρμοσμένο αντικείμενο), το Hytale δεν χρησιμοποιεί scripting βασισμένο σε κείμενο (όπως η Lua). Αντ' αυτού, χρησιμοποιεί ένα Visual Scripting node-based system παρόμοιο με το Unreal Engine Blueprints. Γιατί; Οι προγραμματιστές υποστηρίζουν ότι το text scripting αναγκάζει τους σχεδιαστές να μάθουν προγραμματισμό. Το οπτικό scripting ενδυναμώνει τους σχεδιαστές ενώ αφήνει τους προγραμματιστές να επικεντρωθούν στο backend της Java. Κατάσταση: Υποχρεωτική εκμάθηση. Οι προγραμματιστές που αρνούνται να αγγίξουν τους οπτικούς κόμβους θα δυσκολευτούν να δημιουργήσουν προσαρμοσμένες οντότητες. Το κενό "API": Πώς να προετοιμαστείτε χωρίς έγγραφα Χωρίς να υπάρχει επίσημο Javadoc ή wiki, πώς προετοιμάζεστε; Μελετήστε το ECS Pattern "Flecs": Οι αναρτήσεις στο blog επιβεβαιώνουν ότι η μηχανή χρησιμοποιεί ένα Entity Component System (ECS) που ονομάζεται "Flecs". Ενώ η υλοποίηση της Hytale είναι προσαρμοσμένη, η έννοια του ECS είναι καθολική. Απομακρύνεται από την αντικειμενοστραφή σκέψη (κληρονομικότητα) και στρέφεται προς την προσανατολισμένη στα δεδομένα σκέψη (συστατικά). Παλαιός τρόπος (Minecraft): class Zombie extends Monster Νέος τρόπος (Hytale): Η οντότητα ID 101 έχει PositionComponent, HealthComponent, AIComponent. Μάθετε τα σχήματα JSON: Τα "στοιχεία δεδομένων" για τα μπλοκ, τα αντικείμενα και το UI καθοδηγούνται από το JSON. Εξοικειωθείτε με πολύπλοκες δομές JSON, καθώς πιθανότατα με αυτόν τον τρόπο θα ορίσετε στατικά δεδομένα χωρίς να αγγίζετε κώδικα Java. Διαμορφώστε ένα περιβάλλον Java 21: Αν και η ακριβής έκδοση της Java δεν έχει επιβεβαιωθεί, η σύγχρονη Java (21+) είναι το βιομηχανικό πρότυπο για τις επιδόσεις. Βεβαιωθείτε ότι το IDE σας (IntelliJ ή Eclipse) είναι έτοιμο για μια ροή εργασίας βασισμένη σε Java. Το πλεονέκτημα του "κοινόχρηστου κώδικα" Το μοντέλο διακομιστή "Shared Source" είναι ένα μοντέλο που αλλάζει το παιχνίδι. Υπονοεί ότι κατά τη λήψη του αποκλειστικού λογισμικού διακομιστή, μπορείτε να λάβετε τον πηγαίο κώδικα (ή τον αποσυμπιλήσιμο bytecode) για το ίδιο το jar του διακομιστή. Στρατηγική: Την ημέρα της εκτόξευσης, μην εκτελείτε απλώς τον διακομιστή. Αποσυμπιέστε τον. (Εάν επιτρέπεται από την EULA). Η ανάγνωση του επίσημου κώδικα του διακομιστή θα είναι ο γρηγορότερος τρόπος για να κατανοήσετε το API πριν γραφτούν τα επίσημα έγγραφα. Συμπεράσματα: Να είστε έτοιμοι να τεκμηριώσετε Οι πρώτες εβδομάδες της Early Access θα καθοριστούν από την ανακάλυψη της κοινότητας. Δεδομένου ότι η επίσημη τεκμηρίωση θα είναι πιθανότατα αραιή ή θα εξελίσσεται, οι προγραμματιστές που θα τεκμηριώνουν τα ευρήματά τους -και θα τα μοιράζονται σε πλατφόρμες όπως το hytalecharts.com- θα γίνουν οι de facto ηγέτες του οικοσυστήματος. Το API έρχεται και μιλάει Java. Μιλάτε άπταιστα;