Βιντεοπαιχνίδια: Βιομηχανία και Ανάπτυξη Ανάπτυξη βιντεοπαιχνιδιών IV Κώστας Αναγνώστου Τμήμα Πληροφορικής Ιόνιο Πανεπιστήμιο.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Ανάπτυξη Μοντέλου Ρομποτικού Οχήματος Σταθερής Τροχιάς, για Αποθήκη Κέντρου Διανομής Λιανεμπορίου ή Υπηρεσιών Logistics Γκρέμος Αναστάσιος ΠΛΣ Διπλωματική.
Advertisements

Προσωπικές Πωλήσεις.
7.5.2 Αντικειμενοστραφής προγραμματισμός
Διαχείριση Έργου Οργάνωση, σχεδιασμός και προγραμματισμός έργων ανάπτυξης λογισμικού.
ΠΜΣ ΠΡΟΗΓΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Κατεύθυνση ΤΕΔΑ Τεχνολογίες Διαχείρισης Ασφάλειας Security Management Engineering Τμήμα Πληροφορικής ΠΑΝΕΠΙΣΤΗΜΙΟ.
Οι “multi-Διαστασεις” Των Multimedia
Κεφάλαιο 1ο: ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΤΩΝ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων Αρχιτεκτονικός Σχεδιασμός Λεπτομερής Σχεδιασμός Κωδικοποίηση Έλεγχος Παράδοση Συστήματος Λειτουργία - Συντήρηση.
Χαρακτηριστικά συνθετικής κίνησης 1 Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
H διαδικασία ανάπτυξης λογισμικού. Tι θα γνωρίσουμε •Τις φάσεις ανάπτυξης του λογισμικού. •Γιατί χρειάζεται να γίνει ανάλυση του προβλήματος. •Τι θα πρέπει.
Βιντεοπαιχνίδια: Βιομηχανία και Ανάπτυξη Ανάπτυξη βιντεοπαιχνιδιών II Κώστας Αναγνώστου Τμήμα Πληροφορικής Ιόνιο Πανεπιστήμιο.
Τμήμα Αρχειονομίας-Βιβλιοθηκονομίας Ιόνιο Πανεπιστήμιο
Torque Game Engine - #02 Κώστας Καρπούζης (kkarpou)
Σχεδιασμός ηλεκτρονικών υπηρεσιών μεγάλης κλίμακας και πολυπλοκότητας 24/10/2002.
Εικονική πραγματικότητα ένας τρισδιάστατος κόσμος!!!
ΗΛΕΚΤΡΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΤΕΣ ΚΑΙ ΚΙΝΗΜΑΤΟΓΡΑΦΟΣ
Τι είναι Ανάλυση Τι είναι Συστήματα Πληροφορικής
Διαδικασία ανάπτυξης Προσδιορισμός απαιτήσεων
ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ Παράγραφος 1.7. ΠΡΩΤΟΚΟΛΛΑ ΕΠΙΚΟΙΝΩΝΙΑΣ Είσαι εκεί; Εδώ είμαι Είσαι έτοιμος να λάβεις ένα μήνυμα; Είμαι έτοιμος Πάρε το πρώτο.
ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ
Τεχνολογίες και Εφαρμογές Πολυμέσων
ΠΟΛΥΜΕΣΑ Τα Πολυμέσα (Multimedia) είναι ο κλάδος της πληροφορικής τεχνολογίας που ασχολείται με τον συνδυασμό ψηφιακών δεδομένων πολλαπλών μορφών, δηλ.
Δεδομένα, Πληροφορίες και Ηλεκτρονικοί Υπολογιστές
ΠΟΛΥΜΕΣΑ. OI “MULTI-ΔΙΑΣΤΑΣΕΙΣ” ΤΩΝ MULTIMEDIA ΣΤΟ BLOG ΜΑΣ Τι είναι τα πολυμέσα? Τα Πολυμέσα (Multimedia) είναι ο κλάδος της πληροφορικής τεχνολογίας.
ΝΕΕΣ ΤΕΧΝΟΛΟΛΟΓΙΕΣ ΚΑΙ ΥΠΗΡΕΣΙΕΣ ΣΤΟ ΣΥΓΧΡΟΝΟ ΤΡΑΠΕΖΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΕΣ ΣΤΟ ΤΡΑΠΕΖΙΚΟ ΧΩΡΟ ΑΠΌ ΤΙΣ ΑΡΧΕΣ ΤΟΥ ΑΙΩΝΑ ΕΩΣ ΤΙΣ ΜΕΡΕΣ ΜΑΣ ΝΕΕΣ ΤΕΧΝΟΛΟΓΙΕΣ.
ΜΑΘΗΜΑ: ΔΙΑΧΕΙΡΗΣΗ ΕΦΟΔΙΑΤΙΚΗΣ ΑΛΥΣΙΔΑΣ.  E.R.P μπορούμε να πούμε ότι είναι ένα επιχειρησιακό εργαλείο ελέγχου, παρακολούθησης και συντονισμού των διαδικασιών.
ΕΙΣΑΓΩΓΗ ΣΤΑ ΓΕΩΓΡΑΦΙΚΑ ΣΥΣΤΗΜΑΤΑ ΠΛΗΡΟΦΟΡΙΩΝ
Μεθοδολογίες και Εργαλεία Ανάλυσης και Σχεδιασμού Π.Σ. Σπύρος Κοκολάκης ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ.
Τεχνολογία ΛογισμικούSlide 1 Σχεδιασμός Λογισμικού u Ανάπτυξη λύσης που ικανοποιεί τις απαιτήσεις λογισμικού.
Μοντέλα Συστημάτων Παρουσιάσεις των συστημάτων των οποίων οι απαιτήσεις αναλύονται.
Ανάπτυξη Πρωτοτύπου Λογισμικού
Τεχνολογία Λογισμικού
Telematics Επιμέλεια:Παγώνης Γεώργιος Writer: Patrick Dillon.
Διαχείριση Έργων Πληροφορικής
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Ανάπτυξη μεθοδολογίας για το συστηματικό θεμελιώδη μηχανοτρονικό σχεδιασμό. Εφαρμογή στην ανάπτυξη ευφυούς συστήματος για το σχεδιασμό ρομποτικών αρπαγών.
Ανάλυση Συστημάτων ( site) Υπευθ. Καθηγ.: Τσαλγατίδου Αφροδίτη.
Αξιολόγηση Εκπαιδευτικού Έργου της Σχολικής Μονάδας - Διαδικασία της Αυτοαξιολόγησης (ΑΕΕ) 2 ο Βήμα: Επιλογή και διαμόρφωση Σχεδίου Δράσης Σχολικοί Σύμβουλοι.
Σχεδιομελέτη προϊόντων με τη χρήση Η/Υ
Τεχνολογία ΛογισμικούSlide 1 Τεχνολογία Απαιτήσεων u Καθορίζει τι θέλει ο πελάτης από ένα σύστημα λογισμικού.
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
Στρατηγικό Μάνατζμεντ Τηλεπικοινωνιών Το Εσωτερικό Περιβάλλον της Επιχείρησης και η Αποστολή της.
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ.
Αρχές Τεχνολογίας Λογισμικού Εργαστήριο 1: Εισαγωγή.
Μέρος 1 Εισαγωγή στα Πληροφοριακά Συστήματα. 22/9/20162 Περιεχόμενα  Βασικές έννοιες Πληροφοριακών Συστημάτων  Απαιτήσεις των σύγχρονων επιχειρήσεων.
Βιομηχανική Πληροφορική Βολογιαννίδης Σταύρος Τεχνολογία Βιομηχανικού Λογισμικού, πρότυπα ποιότητας.
Βιομηχανική Πληροφορική Βολογιαννίδης Σταύρος Αρχιτεκτονική συστημάτων βιομηχανικού ελέγχου.
Ευχρηστία και επιχειρηματικά οφέλη Δρ. Π. Ζαχαριάς.
Προσωπικές Πωλήσεις. Προσωπικές πωλήσεις είναι η προβολή των αγαθών και των υπηρεσιών μέσω των πωλητών. Είναι η προσωπική προσπάθεια να παρακινήσει κάποιον.
Τεχνολογία Λογισμικού
Αναφορά προόδου ή κατάστασης
Επιχειρηματικός Σχεδιασμός
Χειρισμός Χρόνου και Μεθοδολογίες Προσομοίωσης
Παρουσίαση: Ευτυχία Γιαννάκη
ΔΙΟΙΚΗΣΗ ΟΛΙΚΗΣ ΠΟΙΟΤΗΤΑΣ
Δρ. Α. Ραφαηλίδης Τμ. Διοίκησης Επιχειρήσεων (Πάτρα) ΤΕΙ Δυτ. Ελλάδας
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Θέματα Σχεδίασης ΕΛ Πληροφορική και Εκπαίδευση 2005
Ανάπτυξη Μοντέλων Διακριτών Συστημάτων Μέρος Β
Επεξεργασία Κειμένου Διδακτική προσέγγιση των λογισμικών γενικής χρήσης Ζωγραφική Λογιστικά φύλλα Βάσεις δεδομένων.
Ανάλυση και σχεδιασμόσ πληροφοριακών συστημάτων
ΣΥΣΤΗΜΑ ΠΟΙΟΤΗΤΑΣ ΛΟΓΙΣΜΙΚΟΥ (QUALITY SYSTEM)
Οργάνωση & Διοίκηση Αθλητισμού
Πληροφοριακό σύστημα Πληροφοριακό Σύστημα μιας επιχείρησης/οργανισμού είναι ένα σύστημα που αποτελείται από ανθρώπους, διαδικασίες και εξοπλισμό (Υλικό,
Σύγχρονες μεθοδολογίες ανάπτυξης και διαχείρισης Πληροφοριακών Συστημάτων 2ο Κεφάλαιο.
ΚΥΚΛΟΣ ΖΩΗΣ ΑΝΑΠΤΥΞΗΣ ΣΥΣΤΗΜΑΤΟΣ
Κλειούσης Ε. Ελευθέριος
Β1. Β1 Β2 Close-to-market projects Τεχνική ωριμότητα Τεχνική διεργασία και «τελευταία λέξη της τεχνολογίας» Κλίμακα και αποτέλεσμα – Τέτοια ώστε.
Αξιολόγηση της επίδοσης ενός οργανισμού σε θέματα ασφάλειας
Διάταξη τίτλου Σχεδιασμός Πεδίου Εφαρμογής του Έργου.
Μεταγράφημα παρουσίασης:

Βιντεοπαιχνίδια: Βιομηχανία και Ανάπτυξη Ανάπτυξη βιντεοπαιχνιδιών IV Κώστας Αναγνώστου Τμήμα Πληροφορικής Ιόνιο Πανεπιστήμιο

Τι θα δούμε σήμερα Η αρχιτεκτονική ενός παιχνιδιού Ανάπτυξη λογισμικού ενός παιχνιδιού Τεχνολογίες λογισμικού για παιχνίδια

Αρχιτεκτονική ενός παιχνιδιού

Λειτουργίες που συνθέτουν ένα παιχνίδι Ένα παιχνίδι πρέπει να εκτελέσει μια πληθώρα λειτουργιών προκειμένου να δημιουργήσει και να αποδώσει τον εικονικό κόσμο στο παίκτη Γραφική απεικόνιση Καθορισμό ορατότητας Κίνηση Φυσική εξομοίωση Ήχος Αλληλεπίδραση Ανίχνευση συγκρούσεων Τεχνητή νοημοσύνη Επικοινωνία με το χρήστη (user interface) Δικτυακή επικοινωνία Διαχείριση δεδομένων Διαχείριση συμβάντων (events) Networking Input/Output

Γραφική απεικόνιση Η εικόνα είναι ο βασικός τρόπος με το οποίο ο χρήστης αντιλαμβάνεται το κόσμο Μετατροπή κάποιας αναπαράστασης του κόσμου (πολύγωνα) σε διδιάστατη εικόνα Αύξηση ρεαλισμού με χρήση σκιών, ανακλάσεων, φωτισμού Τεχνικές αύξησης λεπτομέρειας επιφάνειας, normal/parallax/displacement mapping Networking Input/Output

Κίνηση/Φυσική Εξομοίωση Κάνουν τον εικονικό κόσμο να μοιάζει ζωντανός! Η κίνηση μπορεί να καθοριστεί από τον καλλιτέχνη Μπορεί να υπολογιστεί και δυναμικά με εξομοίωση Networking Input/Output

Ήχος Ο ήχος συμπληρώνει την εικόνα ως μέσο αντίληψης του εικονικού κόσμου Η εικόνα μεταφέρει το τι γίνεται στο κόσμο Ο ήχος μεταφέρει το τι σημαίνει αυτό Μπορεί να δημιουργήσει ατμόσφαιρα Αποτελεί και στοιχείο παιχνιδιού

Ανίχνευση συγκρούσεων Τα αντικείμενα και χαρακτήρες του κόσμου αλληλεπιδρούν Διαστημόπλοια συγκρούονται Σφαίρες και ακτίνες laser εκτοξεύονται Κλειστοί χώροι περιορίζουν την κίνηση Κάθε σύγκρουση συνοδεύεται και από μια απόκριση (έκρηξη, σταμάτημα κίνησης, μείωση ζωής) Ακριβή διεργασία

Καθορισμός ορατότητας Σε ένα εικονικό κόσμο ο χρήστης έχει περιορισμένο οπτικό πεδίο Δεν φαίνεται κάθε στιγμή όλο το background, χαρακτήρες και αντικείμενα Καθορισμός του τι είναι ορατό μπορεί να επιταχύνει δραματικά το παιχνίδι (λογική και απεικόνιση)

Τεχνητή νοημοσύνη Ο εικονικός κόσμος γίνεται ποιο αληθοφανης και διασκεδαστικός με χαρακτήρες και αντιπάλους που παρουσιάζουν «νοημοσύνη» Στα παιχνίδια είναι περιορισμένη η «νοημοσύνη» των χαρακτήρων Κάθε είδος παιχνιδιού έχει διαφορετικές απαιτήσεις σε νοήμονα συμπεριφορά Από τους λιγότερο εξελιγμένους τομείς στα βιντεοπαιχνίδια

Τεχνητή νοημοσύνη Τρία στάδια κατά τον υπολογισμό νοήμων συμπεριφοράς Αίσθηση: ανίχνευση περιβάλλοντος Σκέψη: χρήση πληροφορίας περιβάλλοντος και εσωτερικής λογικής Δράση: αποτέλεσμα της σκέψης

Διεπαφή με το χρήστη Αλληλεπίδραση με το παιχνίδι Παθητική : απεικόνιση πληροφορίας Ενεργητική : παραμετροποίηση Η πολυπλοκότητας εξαρτάται από το παιχνίδι

Διαχείριση δεδομένων Ένα παιχνίδι βασίζεται σε αποδοτική διαχείριση δεδομένων για την λειτουργία του Πολύγωνα, υφές, κίνηση, ήχοι είναι όλα δεδομένα Πρέπει να υποστηρίζεται γρήγορη ανάγνωση και αποδοτική αναπαράσταση στην μνήμη Πολλά παιχνίδια υποστηρίζουν συνεχή ανάγνωση (streaming)

Αρχιτεκτονική παιχνιδιού Οι περισσότερες από τις λειτουργίες που αναφέραμε μπορούν να υλοποιηθούν ως ανεξάρτητες οντότητες με καλά καθορισμένη είσοδο και έξοδο Η αρχιτεκτονική ενός παιχνιδιού καθορίζει τις οντότητες αυτές και την μεταξύ τους αλληλεπίδραση

Άναρχη σχεδίαση Δεν υπάρχει διαχωρισμός στις λειτουργίες Μικρά παιχνίδια Ελάχιστες δυνατότητες επαναχρησιμοποίησης κώδικα Δύσκολο να εντοπιστούν σφάλματα Απεικόνιση Ήχος Κίνηση Συγκρούσεις Δεδομένα Τεχνητή νοημοσύνη Συμβάντα

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

Σχεδίαση με γράφο Ιεραρχική αρχιτεκτονική, παραλλαγή της σχεδίασης με οντότητες Διακριτά υποσυστήματα Περιορισμός της ενδοεπικοινωνίας με γράφο Διαχωρισμός σε υποσυστήματα υψηλού και χαμηλού επιπέδου Τα υψηλού επιπέδου υποσυστήματα μπορούν να επικοινωνήσουν με χαμηλού επιπέδου

Σχεδίαση σε επίπεδα Βασίζεται στην σχεδίαση με γράφο, εισάγοντας επιπλέον περιορισμού στην επικοινωνία Διαμοιράζει τις οντότητες σε επίπεδα Τα υψηλού επιπέδου υποσυστήματα μπορούν να επικοινωνήσουν μόνο με αμέσως χαμηλότερου επιπέδου Απαιτεί επιπλέον κώδικα για την σύνδεση των επιπέδων

Βρόγχος παιχνιδιού (game loop) Κάθε παιχνίδι περνά από μια σειρά συγκεκριμένων διαδικασιών προκειμένου να απεικονίσει κάθε καρέ παιχνιδιού Τα βήματα που πρέπει να πραγματοποιηθούν σε κάθε καρέ για την απεικόνιση του ονομάζεται βρόγχος παιχνιδιού ( game loop )

Βρόγχος παιχνιδιού (game loop) Η αρχικοποίηση πραγματοποιεί εργασίες απαραίτητες για την εκκίνηση του παιχνιδιού Το στάδιο της φόρτωσης μεταφέρει τα δεδομένα από το αποθηκευτικό μέσο στην μνήμη Το στάδιο της ανανέωσης (Λογική), υλοποιεί κίνηση, ανίχνευση συγκρούσεων, εξομοίωση Το στάδιο της απεικόνισης ζωγραφίζει τον εικονικό κόσμο στην οθόνη (ένα καρέ) Τα δύο τελευταία βήματα επαναλαμβάνονται μέχρι να κλείσουμε το παιχνίδι Για 60Ηz έχουμε 16.6 ms για να ανανεώσουμε τον κόσμο και ζωγραφίσουμε ένα καρέ Για 30Hz έχουμε 33.3 ms

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

Στάδιο της Απεικόνισης Οι λειτουργίες του προηγούμενου βήματος καθορίζουν ένα στιγμιότυπο του κόσμου. Το στάδιο της απεικόνισης το φωτογραφίζει και το δείχνει στην οθόνη. Προσδιορισμός ορατότητας Απεικόνιση σκηνικού Απεικόνιση αντικειμένων Απεικόνιση χαρακτήρα παίκτη Εφαρμογή επιπλέον εφέ Απεικόνιση διεπαφής Αναπαραγωγή ήχου

Βρόγχος παιχνιδιού Ο συνολικός αναλυτικότερος βρόγχος σε ψευδοκώδικα Αρχικοποίηση Φόρτωση περιεχόμενου Αρχή βρόγχου Λογική Έλεγξε είσοδο από χειριστήριο Έλεγξε μηνύματα μέσω δικτύου Ενημέρωση χαρακτήρα παίκτη Δημιουργία λίστας αντικειμένων/χαρακτήρων προς ανανέωση Ενημέρωση αντικειμένων με απλή λογική Ενημέρωση αντικειμένων με σύνθετη λογική (τεχνητή νοημοσύνη) Αποστολή μηνυμάτων μέσω δικτύου Ενημέρωση ήχου Απεικόνιση Δημιουργία λίστας ορατών αντικειμένων/χαρακτήρων Απεικόνιση ορατού σκηνικού Απεικόνιση ορατών αντικειμένων/χαρακτήρων Απεικόνιση χαρακτήρα παίκτη Εφαρμογή ειδικών εφέ Απεικόνιση διεπαφής Αναπαραγωγή ήχου Αν όχι έξοδος πήγαινε στην αρχή Αποδέσμευση πόρων Έξοδος Και όλα αυτά πρέπει να γίνουν μέσα σε 16.6 ms!!

Ανάπτυξη λογισμικού ενός παιχνιδιού

Περιοχές ανάπτυξης λογισμικού Η ομάδα ανάπτυξης λογισμικού ενός παιχνιδιού ασχολείται με 3 περιοχές: Κώδικα του παιχνιδιού Μηχανή του παιχνιδιού Βοηθητικά εργαλεία

Κώδικας παιχνιδιού Ο κώδικας του παιχνιδιού (game code) υλοποιεί την λογική του παιχνιδιού  τα στοιχεία παιχνιδιού (gameplay)  το χειρισμό του χαρακτήρα του παίκτη και της κάμερας  την τεχνητή νοημοσύνη και συμπεριφορά των αντιπάλων  πώς υπολογίζεται το σκορ του παίκτη  πως θα ανανεωθεί η ενέργεια του και το πώς θα αναβαθμίσει το χαρακτήρα του Ο κώδικας του παιχνιδιού είναι αυτό που υλοποιεί το όραμα του σχεδιαστή και δημιουργεί τον εικονικό κόσμο και τις αλληλεπιδράσεις του.

Μηχανή παιχνιδιού Μηχανή παιχνιδιού (game engine) ονομάζεται η εφαρμογή που αναλαμβάνει τη διεκπεραίωση των βασικών λειτουργιών ενός παιχνιδιού  απεικόνιση των γραφικών  αναπαραγωγή ήχου  φυσική εξομοίωση  κίνηση  είσοδο/έξοδο  επικοινωνία μέσω δικτύου  Δεν έχει γνώση της λογικής του παιχνιδιού, ούτε γνωρίζει το νόημα της αλληλεπίδρασης του με το χρήστη

Βοηθητικά εργαλεία Βοηθητικό εργαλείο είναι το λογισμικό που διευκολύνει και αυτοματοποιεί μια διαδικασία που αφορά την ανάπτυξη ενός παιχνιδιού  Χρήστες είναι συνήθως οι σχεδιαστές και οι καλλιτέχνες  Στα παιχνίδια τελευταίας γενιάς η ανάγκη για αποδοτικά και εύχρηστα εργαλεία είναι επιτακτική

Βοηθητικά εργαλεία Πολλές κατηγορίες βοηθητικών εργαλείων  Editors: τα προγράμματα αυτά βοηθούν στην σύνθεση του εικονικού κόσμου και των αλληλεπιδράσεων μέσα σε αυτό.  Επεκτάσεις (plugins): προσθήκη λειτουργικότητας σε έτοιμες εφαρμογές (Maya, 3D Studio και Zbrush)  Μετατροπείς: μετατρέπουν το περιεχόμενο που αναπτύσσουν οι σχεδιαστές και οι καλλιτέχνες με τα εργαλεία σε μορφή κατάλληλη για φόρτωση και χρήση στο παιχνίδι.  Αυτοματοποίηση: αυτοματοποίηση επαναληπτικών εργασίες που απαιτούν πολύ χρόνο να διεκπεραιωθούν.

Βοηθητικά εργαλεία Σχεδιασμός επιπέδου με κώδικα for each building in level { if building.id is in enemyBuildingsList { numEnemies = number of enemies in building for i = 1 to numEnemies { enemy = new Enemy; Setup(enemy); building.Add(enemy) at location X }

Βοηθητικά εργαλεία

Software engineering για παιχνίδια

Τεχνολογία λογισμικού Η μείωση του κόστους και του οικονομικού ρίσκου είναι αυτά που χαρακτηρίζουν την ανάπτυξη λογισμικού ενός παιχνιδιού σήμερα.  Προβλέψιμη ανάπτυξη βιντεπαιχνιδιών  Κινείται στα πλαίσια χρονοδιαγράμματος, του προϋπολογισμού και της ποιότητας που έχουν οριστεί.  Οι εταιρίες στρέφονται στην υιοθέτηση μεθόδων τεχνολογίας λογισμικού (software engineering)

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

Οι 3 συνιστώσες της ανάπτυξης Η ανάπτυξη ενός παιχνιδιού χαρακτηρίζεται από 3 συνιστώσες:  ο χρόνος που απαιτείται για την ανάπτυξη  το κόστος ανάπτυξης  η ποιότητα του παραγόμενου παιχνιδιού

Οι 3 συνιστώσες της ανάπτυξης Βασικό αξίωμα ανάπτυξης λογισμικού  Οι 3 συνιστώσες δεν είναι ανεξάρτητες μεταξύ τους  Για να καταφέρω να βγει το παιχνίδι για την περίοδο των Χριστουγέννων, θα πρέπει είτε να προσλάβω αρκετούς προγραμματιστές, είτε να ρίξω την ποιότητα  Ποιοτικά παιχνίδια, με μικρό κόστος και εμπρόθεσμα είναι πρακτικά αδύνατο να κατασκευαστούν!

Κύκλος ζωής του λογισμικού Τα στάδια ανάπτυξης του λογισμικού ενός παιχνιδιού είναι  Προσδιορισμός και ανάλυση απαιτήσεων (requirement analysis)  Σχεδίαση (software design)  Ανάπτυξη κώδικα (coding)  Έλεγχος (testing)  Παράδοση/Υποστήριξη (delivery/support) Στην θεωρία, τα στάδια αυτά μπορούν να εγγυηθούν προβλέψιμη ανάπτυξη και τήρηση χρονοδιαγραμμάτων και προϋπολογισμού

Αστάθμητοι παράγοντες Η ανάπτυξη ενός παιχνιδιού επηρεάζεται από πολλούς αστάθμητους παράγοντες  Μη τήρηση ημερομηνίας παράδοσης  Ακύρωση παιχνιδιού  Το παιχνίδι δεν είναι διασκεδαστικό  Το παιχνίδι έχει τεχνικά προβλήματα  Αλλαγές στην αγορά  Παραιτήσεις προσωπικού Το οικονομικό ρίσκο που ενέχει η ανάπτυξη ενός παιχνιδιού δεν αφήνει περιθώρια για αστάθμητους παράγοντες!

Μεθοδολογίες ανάπτυξης Μια μεθοδολογία ανάπτυξης καθορίζει το πώς θα οργανώσει μια εταιρία το ανθρώπινο δυναμικό και τους πόρους της ώστε να αναπτύξει με επιτυχία ένα έργο  Προσπαθεί να μειώσει το δυνατό περισσότερο την αβεβαιότητα και το οικονομικό ρίσκο που ενέχει η ανάπτυξη του παιχνιδιού Κυριότερες μεθοδολογίες που συναντούμε στην βιομηχανία βιντεοπαιχνιδιών  Άναρχη ανάπτυξη  Μεθοδολογία του καταρράκτη  Επαναληπτική ανάπτυξη  Ευέλικτη ανάπτυξη

Άναρχη ανάπτυξη (code and fix) Έλλειψη αρχικού σχεδιασμού του κώδικα του παιχνιδιού  Απευθείας στην υλοποίηση αντιμετωπίζοντας τα προβλήματα καθώς εμφανίζονταν.  Χαμηλής ποιότητας κώδικα και αυξημένο κόστος  παρατεταμένες περιόδους διόρθωσης σφαλμάτων κατά την Beta φάση του παιχνιδιού  η τελική ποιότητα του παραγόμενου παιχνιδιού είναι αμφίβολη.  Κατάλληλο μόνο για πολύ μικρές ομάδες και παιχνίδια

Μέθοδος του καταρράκτη (waterfall) Εκ των προτέρων συνολικός σχεδιασμός της ανάπτυξης με πλήρη περιγραφή κάθε βήματος, της υλοποίησης και των αποτελεσμάτων του.  Καταγράφει προβλήματα και τρόπους αντιμετώπισης τους  δίνει μια εποπτική εικόνα του έργου και της ανάπτυξης του  τήρηση του χρονοδιαγράμματος, στην έγκαιρη αντιμετώπιση προβλημάτων και στην παράδοση ενός ποιοτικού προϊόντος (θεωρητικά)  είναι ευαίσθητο σε μεγάλες αλλαγές στις συνθήκες ανάπτυξης!

Αστάθμητοι παράγοντες (ξανά) Η ανάπτυξη ενός παιχνιδιού κάθε άλλο παρά από σταθερότητα χαρακτηρίζεται  Μη τήρηση ημερομηνίας παράδοσης  Ακύρωση παιχνιδιού  Το παιχνίδι δεν είναι διασκεδαστικό  Το παιχνίδι έχει τεχνικά προβλήματα  Αλλαγές στην αγορά  Παραιτήσεις προσωπικού

Μέθοδος του καταρράκτη (waterfall)

Επαναληπτική μέθοδος (iterative) Θέτει μικρότερους στόχους (παραδοτέα) που απαιτούν μικρότερο χρόνο υλοποίησης (μέχρι 2 μήνες).  Στο τέλος της περιόδου ανάπτυξης αξιολογείται η πρόοδος του έργου  αναπροσαρμόζονται οι στόχοι και σχεδιάζεται η επόμενη σύντομη περίοδος ανάπτυξης Σχεδιασμός Υλοποίηση Έλεγχος καλής λειτουργίας Αξιολόγηση Ανάλυση - Προδιαγρα φές

Ευέλικτη ανάπτυξη (agile) Η ευέλικτη μεθοδολογία είναι μια φιλοσοφία ανάπτυξης που εμφανίστηκε προς το τέλος του ’90. Δίνει έμφαση σε  Ανθρώπους και μεταξύ τους αλληλεπιδράσεις αντί για διεργασίες και εργαλεία  Λογισμικό που να λειτουργεί αντί λεπτομερή τεκμηρίωση  Συνεργασία με τον πελάτη αντί σε διαπραγματεύσεις για συμβόλαια  Απόκριση σε αλλαγή αντί για προσκόλληση σε σχέδιο Διακήρυξη της ευέλικτης ανάπτυξης (2001)

Ευέλικτη ανάπτυξη (agile)  Μια ευέλικτη μεθοδολογία ξεκινά την ανάπτυξη αμέσως χωρίς λεπτομερές σχέδιο  το προσαρμόζει αργότερα ανάλογα την αποκτηθείσα εμπειρία αλλά και εξωγενής παράγοντες.  Μόνο η αρχή και ο στόχος (ένα πετυχημένο παιχνίδι, στη ώρα του) είναι γνωστά, τα ενδιάμεσα στάδια καθορίζονται στην πορεία προς το στόχο.  Δυο ευέλικτες μεθοδολογίες που γνωρίζουν ανάπτυξη τα τελευταία χρόνια είναι η Scrum και η Extreme Programming

Scrum Mεθοδολογία οργάνωσης και διοίκησης της ομάδας ανάπτυξης ενός παιχνιδιού (λογισμικού γενικότερα), χρησιμοποιώντας επαναληπτικές, αυξητικές διεργασίες.

Ερωτήσεις;