Πρώτη κυκλοφορία του open source multiplayer game engine Ambient

Μετά από ένα χρόνο ανάπτυξης, παρουσιάζεται η πρώτη κυκλοφορία της νέας μηχανής παιχνιδιών ανοιχτού κώδικα Ambient. Η μηχανή παρέχει χρόνο εκτέλεσης για τη δημιουργία παιχνιδιών για πολλούς παίκτες και εφαρμογών 3D που μεταγλωττίζονται σε μια αναπαράσταση WebAssembly και χρησιμοποιούν το WebGPU API για απόδοση. Ο κωδικός είναι γραμμένος σε Rust και διανέμεται με την άδεια MIT.

Ένας βασικός στόχος στην ανάπτυξη του Ambient είναι η παροχή εργαλείων που απλοποιούν την ανάπτυξη παιχνιδιών για πολλούς παίκτες και κάνουν τη δημιουργία τους όχι πιο δύσκολη από έργα για έναν παίκτη. Ο κινητήρας στοχεύει αρχικά στη δημιουργία ενός καθολικού χρόνου εκτέλεσης που υποστηρίζει την ανάπτυξη παιχνιδιών και εφαρμογών σε οποιεσδήποτε γλώσσες προγραμματισμού για τις οποίες είναι δυνατή η μεταγλώττιση σε ενδιάμεσο κώδικα WebAssembly. Ωστόσο, η πρώτη έκδοση υποστηρίζει μόνο την ανάπτυξη Rust προς το παρόν.

Βασικά χαρακτηριστικά του νέου κινητήρα:

  • Διαφανής υποστήριξη δικτύωσης. Η μηχανή συνδυάζει λειτουργίες πελάτη και διακομιστή, παρέχει όλα τα απαραίτητα στοιχεία για τη δημιουργία λογικής πελάτη και διακομιστή και συγχρονίζει αυτόματα την κατάσταση διακομιστή μεταξύ των πελατών. Ένα κοινό μοντέλο δεδομένων χρησιμοποιείται στην πλευρά του πελάτη και του διακομιστή, το οποίο απλοποιεί τη μεταφορά κώδικα μεταξύ του backend και του frontend.
  • Εκτέλεση κάθε λειτουργικής μονάδας στο δικό της απομονωμένο περιβάλλον, επιτρέποντάς σας να περιορίσετε την επιρροή αναξιόπιστου κώδικα. Η κατάρρευση μιας λειτουργικής μονάδας δεν συντρίβει ολόκληρη την εφαρμογή.
  • Αρχιτεκτονική προσανατολισμένη στα δεδομένα. Παροχή ενός μοντέλου δεδομένων που βασίζεται σε ένα σύστημα στοιχείων που μπορεί να χειριστεί κάθε μονάδα WASM. Χρησιμοποιώντας το σχέδιο σχεδίασης ECS (Entity Component System). Αποθήκευση των δεδομένων όλων των στοιχείων σε μια κεντρική βάση δεδομένων στον διακομιστή, η κατάσταση της οποίας αναπαράγεται αυτόματα στον πελάτη, ο οποίος από την πλευρά του μπορεί να επεκτείνει τα δεδομένα λαμβάνοντας υπόψη την τοπική κατάσταση.
  • Δυνατότητα δημιουργίας λειτουργικών μονάδων Ambient σε οποιαδήποτε γλώσσα προγραμματισμού που μεταγλωττίζεται στο WebAssembly (προς το παρόν υποστηρίζεται μόνο το Rust).
  • Δημιουργία γενικών εκτελέσιμων αρχείων ως εξόδου που μπορούν να εκτελεστούν σε Windows, macOS και Linux και να λειτουργούν τόσο ως πελάτης όσο και ως διακομιστής.
  • Δυνατότητα να ορίσετε τα δικά σας στοιχεία και «έννοιες» (συλλογές στοιχείων). Τα έργα που χρησιμοποιούν τα ίδια στοιχεία και έννοιες επιτρέπουν τη φορητότητα και την κοινή χρήση δεδομένων, ακόμη και αν τα δεδομένα δεν έχουν σχεδιαστεί ειδικά για χρήση σε συγκεκριμένα έργα.
  • Υποστήριξη για τη μεταγλώττιση πόρων σε διάφορες μορφές, συμπεριλαμβανομένων των .glb και .fbx. Δυνατότητα λήψης μέσω ροής πόρων μέσω του δικτύου - ο πελάτης μπορεί να λάβει όλους τους απαραίτητους πόρους κατά τη σύνδεση στον διακομιστή (μπορείτε να ξεκινήσετε την αναπαραγωγή χωρίς να περιμένετε να φορτωθούν όλοι οι πόροι). Υποστηρίζει μορφές μοντέλων FBX και glTF, διάφορες μορφές ήχου και εικόνας.
  • Ένα προηγμένο σύστημα απόδοσης που χρησιμοποιεί τη GPU για να επιταχύνει την απόδοση και υποστηρίζει αποκοπή από την πλευρά της GPU και αλλαγές επιπέδου λεπτομερειών. Χρησιμοποιεί φυσική απόδοση (PBR) από προεπιλογή, υποστηρίζει κινούμενα σχέδια και σκιώδεις χάρτες.
  • Υποστήριξη για προσομοίωση φυσικών διεργασιών με βάση τη μηχανή PhysX.
  • Ένα σύστημα για τη δημιουργία διεπαφών χρήστη παρόμοιο με το React.
  • Ένα ενοποιημένο σύστημα εισόδου που είναι ανεξάρτητο από την τρέχουσα πλατφόρμα.
  • Χωρικό ηχοσύστημα με plug-in φίλτρα.

Η ανάπτυξη βρίσκεται ακόμα στο στάδιο της άλφα έκδοσης. Μεταξύ των λειτουργιών που δεν έχουν ακόμη υλοποιηθεί, μπορούμε να σημειώσουμε τη δυνατότητα εκτέλεσης στον Ιστό, ένα API πελάτη, ένα API για διαχείριση πολλαπλών νημάτων, μια βιβλιοθήκη για τη δημιουργία διεπαφής χρήστη, ένα API για τη χρήση των δικών σας shaders, υποστήριξη ήχου, φόρτωση και αποθήκευση Στοιχεία ECS (Entity Component System), επαναφόρτωση πόρων εν κινήσει, αυτόματη κλιμάκωση διακομιστή, πρόγραμμα επεξεργασίας για συλλογική δημιουργία χαρτών παιχνιδιών και σκηνών παιχνιδιού.



Πηγή: opennet.ru

Προσθέστε ένα σχόλιο