Σύστημα στοιχείων οντότητας

Τι είναι το Entity-Component-System;

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

Ο προγραμματισμός ECS είναι μια μέθοδος εγγραφής κώδικα που παρέχει υψηλή απόδοση από προεπιλογή.

Αυτό το σύστημα αποτελείται από τρεις όρους.

  1. Οντότητα
  2. Συστατικό
  3. σύστημα

Ας μάθουμε αναλυτικά αυτήν την έννοια:

Σε αυτό το σεμινάριο Entity-Component System, θα μάθετε:

Τι είναι μια οντότητα;

Μια οντότητα είναι ένα διακριτό αντικείμενο που αντιπροσωπεύει έναν ηθοποιό σε έναν προσομοιωμένο χώρο. Δεν έχει πραγματικά δεδομένα ή συμπεριφορά. Αυτό το στοιχείο δίνει σε μια οντότητα τα δεδομένα της. Είναι συνήθως ένα αντηρίδιο ή λεξικό.

Για παράδειγμα, εάν προσομοιώνουμε το σύμπαν ενός παιχνιδιού Minecraft, όλα τα ορατά, απτά «πράγματα» στο σύμπαν του παιχνιδιού όπως μετρούνται σε οντότητες.

Τι είναι ένα Component;

Ένα στοιχείο είναι μια μοναδική συμπεριφορά που αποδίδεται σε μια οντότητα. Το όνομα ενός στοιχείου θα πρέπει ιδανικά να επικοινωνεί τη συμπεριφορά που θα παρουσιάσει η οντότητα. Ωστόσο, το ίδιο το στοιχείο δεν έχει καμία συμπεριφορά. Είναι επαναχρησιμοποιήσιμες μονάδες που συνδέονται με οντότητες. Το στοιχείο παρέχει εμφάνιση, συμπεριφορά και λειτουργικότητα.

Όλη η λογική υλοποιείται χρησιμοποιώντας στοιχεία που σας βοηθούν να ορίσετε διαφορετικούς τύπους αντικειμένων αναμειγνύοντας και διαμορφώνοντας στοιχεία.

Τι είναι το Σύστημα;

Ένα σύστημα θα επαναλάβει πολλά στοιχεία για να εκτελέσει χαμηλό επίπεδο

λειτουργίες όπως απόδοση γραφικών, εκτέλεση φυσικής

υπολογισμούς ή εύρεσης διαδρομής. Προσφέρει παγκόσμια εμβέλεια, διαχείριση και υπηρεσίες για κατηγορίες εξαρτημάτων.

Ωστόσο, τα συστήματα δεν είναι προαιρετικά, αλλά μπορούμε να τα χρησιμοποιήσουμε για να διαχωρίσουμε τη λογική και τα δεδομένα. Σας βοηθά επίσης να χειρίζεστε τα λογικά στοιχεία, να λειτουργούν ως δοχεία δεδομένων.

Παραδείγματα

  • Βαρύτητα (Velocity) – Σας βοηθά να επιταχύνετε την ταχύτητα λόγω της βαρύτητας
  • Προσθέτει ταχύτητα στη θέση
  • Ορίζει την είσοδο μιας οντότητας που ελέγχεται από bot σύμφωνα με έναν πράκτορα AI
  • Render (Θέση, Sprite) – Σχεδιάζει sprites
  • Το Player Control (Input Player) σάς βοηθά να ρυθμίσετε την είσοδο της οντότητας που ελέγχεται από τη συσκευή αναπαραγωγής σύμφωνα με ένα χειριστήριο.

Σύνθεση

Μια σύνθεση είναι ένα στοιχείο που θα μπορούσατε να συνδέσετε περισσότερα στοιχεία για να προσθέσετε πρόσθετη εμφάνιση, συμπεριφορά ή λειτουργικότητα. Μπορείτε επίσης να ενημερώσετε τις τιμές των στοιχείων για να διαμορφώσετε την οντότητα.

Πλεονέκτημα του ECS

Ακολουθούν τα πλεονεκτήματα της χρήσης ECS στον προγραμματισμό:

  • Μπορείτε να δημιουργήσετε συντομότερο και λιγότερο περίπλοκο κώδικα.
  • Πολύ ευέλικτη συμπεριφορά έκτακτης ανάγκης.
  • Παρέχει μια αρχιτεκτονική για ανάπτυξη 3D και VR.
  • Επιτρέπει τη δημιουργία σεναρίων βάσει συμπεριφοράς από μη τεχνικούς.
  • Σας βοηθά να χωρίσετε τις μονολιθικές τάξεις σας.
  • Εύκολη απόρριψη και συνεκτικότητα.
  • Μια εύκολη επιλογή για δοκιμή και κοροϊδία μονάδας.
  • Σας επιτρέπει να δημιουργήσετε μια εφαρμογή VR όσον αφορά την πολυπλοκότητα.
  • Αντικαταστήστε τα εξαρτήματα με εξαρτήματα που γελοιοποιούνται κατά το χρόνο εκτέλεσης.
  • Σας βοηθά να επεκτείνετε νέες δυνατότητες.
  • Το ECS είναι μια φιλική μέθοδος για παράλληλη επεξεργασία και πολλαπλή επεξεργασία,
  • Σας βοηθά να διαχωρίσετε δεδομένα από συναρτήσεις που ενεργούν σε αυτά
  • Παρέχετε καλύτερη ευελιξία κατά τον ορισμό αντικειμένων με ανάμειξη με επαναχρησιμοποιήσιμα μέρη.
  • Προσφέρει καθαρό σχεδιασμό χρησιμοποιώντας τις μεθόδους αποσύνδεσης, ενθυλάκωσης, σπονδυλοποίησης και επαναχρησιμοποίησης.

Μειονεκτήματα της χρήσης ECS

Ακολουθούν ορισμένα μειονεκτήματα της χρήσης ECS

  • Όχι τόσο συγκεκριμένα όσο άλλα μοτίβα όπως το MVC.
  • Δύσκολο να εφαρμοστεί σωστά, εύκολο στην κακή χρήση Τα καλά εξαρτήματα απαιτούν περισσότερη σκέψη σχετικά με το σχεδιασμό
  • Το ECS απαιτεί τη σύνταξη πολλών μικρών συστημάτων που συνδυάζονται με δυνητικά τεράστιους αριθμούς οντοτήτων, οι οποίες αναπτύσσουν τον κίνδυνο να γράψουν πολύ αναποτελεσματικό κώδικα
  • Οι περισσότεροι άνθρωποι δεν έχουν καν ακούσει ποτέ για αυτό το μοτίβο.

Παράδειγμα συστήματος στοιχείων οντότητας

Ας δούμε το παράδειγμα ενός κουνελιού:

Δείτε το διακεκομμένο πλαίσιο γύρω από αυτά τα εξαρτήματα. Αυτή είναι η οντότητα λαγουδάκι – τίποτα άλλο από ένα δοχείο εξαρτημάτων. Μπορείτε επίσης να ορίσετε οντότητες ως συνάθροιση οποιουδήποτε υποσυνόλου στοιχείων.

Μπορείτε να δείτε την παραπάνω εικόνα. Είναι μια από τις οντότητες λαγουδάκι – τίποτα περισσότερο από ένα δοχείο εξαρτημάτων. Μπορείτε να ορίσετε οντότητες ως συνάθροιση οποιουδήποτε υποσυνόλου στοιχείων, όπως το Carrot:

Ροή δεδομένων σε ECS:

Η συμπεριφορά του συστήματος είναι το μοντέλο ECS που αλλάζει από τη μια κατάσταση στην άλλη.

Ας καταλάβουμε χρησιμοποιώντας αυτό το παράδειγμα:

Συμπεριφορές: «Ένα κουνελάκι που κάθεται σε ένα δέντρο πέφτει λόγω της βαρύτητας».

Πώς να εφαρμόσετε την παραπάνω συμπεριφορά;

Μπορείτε να το κάνετε με τιμή z μεγαλύτερη από 0 η οποία μειώνεται με την πάροδο του χρόνου στο 0.

Συμπεριφορά: «Τα ζωντανά όντα γερνούν».

Ας δούμε πώς μπορείτε να εφαρμόσετε αυτήν τη συμπεριφορά;

Μπορείτε να το κάνετε έτσι ώστε τα Living Components να έχουν ηλικιακή αξία, η οποία αυξάνεται με την πάροδο του χρόνου.

Περίληψη:

  • Το Entity-Component-System (ECS) είναι ένα αρχιτεκτονικό μοτίβο.
  • Μια οντότητα είναι ένα διακριτό αντικείμενο που αντιπροσωπεύει έναν ηθοποιό σε έναν προσομοιωμένο χώρο.
  • Ένα στοιχείο είναι μια μοναδική συμπεριφορά που αποδίδεται σε μια οντότητα.
  • Ένα σύστημα θα επαναλάβει πολλά στοιχεία για να εκτελέσει λειτουργίες χαμηλού επιπέδου, όπως απόδοση γραφικών, εκτέλεση υπολογισμών φυσικής ή εύρεση διαδρομής.
  • Μια σύνθεση είναι ένα στοιχείο που θα μπορούσατε να συνδέσετε περισσότερα στοιχεία για να προσθέσετε πρόσθετη εμφάνιση, συμπεριφορά ή λειτουργικότητα.
  • Χρησιμοποιώντας το μοτίβο ECS, μπορείτε να δημιουργήσετε συντομότερο και λιγότερο περίπλοκο κώδικα.
  • Δεν ορίζεται τόσο συγκεκριμένα όσο άλλα μοτίβα όπως το MVC.
  • Η συμπεριφορά του συστήματος είναι το μοντέλο ECS που αλλάζει από τη μια κατάσταση στην άλλη.