Βιντεοπαιχνίδια: Βιομηχανία και Ανάπτυξη Ανάπτυξη βιντεοπαιχνιδιών II Κώστας Αναγνώστου Τμήμα Πληροφορικής Ιόνιο Πανεπιστήμιο
Τι θα δούμε σήμερα Τις ειδικότητες μιας ομάδας ανάπτυξης βιντεοπαιχνιδιών Τα εργαλεία που χρησιμοποιούνται για την ανάπτυξη βιντεοπαιχνιδιών
H ομάδα ανάπτυξης
Ανάπτυξη στις αρχές της βιομηχανίας Η ανάπτυξη ενός παιχνιδιού στις αρχές της βιομηχανίας βιντεοπαιχνιδιών ήταν σχετικά εύκολη υπόθεση απαιτούσε την έμπνευση και τις τεχνικές γνώσεις ενός και μόνο προγραμματιστή Το Space Invaders (Taito, 1978) αναπτύχθηκε εξολοκλήρου από ένα άτομο, σε μια περίοδο 12 μηνών
Ανάπτυξη στις αρχές της βιομηχανίας Από το 1994 και μετά, η κατάσταση στο χώρο της ανάπτυξης άλλαξε Εισήχθηκαν ειδικά κυκλώματα για επιτάχυνση τριδιάστατων γραφικών στις κονσόλες (και στο προσωπικό υπολογιστή) - GPUs Όλος ο σχεδιασμός παιχνιδιών άλλαξε από τις 2 στις 3 διαστάσεις Άρχισε ένας ανταγωνισμός μεταξύ των εταιρειών (Sony, Nintendo, Sega και αργότερα Microsoft) για την παραγωγή ολοένα και πιο μεγάλων και ρεαλιστικών κόσμων
Ανάπτυξη στις αρχές της βιομηχανίας Οι ομάδες ανάπτυξης άρχισαν να μεγαλώνουν σταδιακά και να δημιουργούνται διακριτοί ρόλοι και μεγάλη ειδίκευση ο καλλιτέχνης έπρεπε να είναι εξειδικευμένος στη τριδιάστατη μοντελοποίηση του κόσμου και των αντικειμένων του, στην δημιουργία υφών, στην δημιουργία κίνησης Ο προγραμματιστής έπρεπε να επικεντρωθεί στο προγραμματισμό σύνθετων αλγόριθμων και τεχνικών για γραφικά, τεχνητή νοημοσύνης, επικοινωνία μέσω δικτύου Άλλος έκανε το σχεδιασμό του παιχνιδιού, άλλος το testing
Η ομάδα ανάπτυξης Υπεύθυνος μιας ομάδας ανάπτυξης είναι ο παραγωγός (producer) του παιχνιδιού Αλλιώς είναι γνωστός ως project manager, project lead ή director Εξασφαλίζει ότι το παιχνίδι προοδεύει συμφώνα με το χρονοδιάγραμμα Συντονίζει της υποομάδες ανάπτυξης, το μάρκετινγκ, τις δημόσιες σχέσεις. Βρίσκεται σε επικοινωνία με τον εκδότη του παιχνιδιού Προσλαμβάνει νέα άτομα
Η ομάδα ανάπτυξης: Παραγωγός
Η ομάδα ανάπτυξης Μια ομάδα ανάπτυξης αποτελείται κυρίως από 3 υποομάδες Την ομάδα σχεδιασμού (game design) Την καλλιτεχνική ομάδα (art) Την ομάδα προγραμματισμού (programming)
Η ομάδα σχεδιασμού Αναλαμβάνει την σχεδίαση του εικονικού κόσμου του παιχνιδιού Τι μπορεί να κάνει ο παίκτης στο παιχνίδι Τι θα περιέχει ο εικονικός κόσμος Την ιστορία και το σενάριο Δημιουργεί ένα λειτουργικό κόσμο με καλά ορισμένους κανόνες και αλληλεπιδράσεις μέσα στον οποίο μπορεί να περιηγηθεί ο παίκτης Ο σχεδιαστής του παιχνιδιού δεν έχει είναι απαραίτητα καλλιτέχνης Γνωστοί σχεδιαστές παιχνιδιών είναι ο Shigeru Miyamoto (Donkey Kong και παιχνίδια με το Μάριο, η σειρά Zelda), Peter Molyneux (Black & White, Fable Ι και ΙΙ), Will Wright (Sims,Spore), Warren Spector (Deus Ex) και ο Sid Meir (Civilisation).
Η ομάδα σχεδιασμού Η ομάδα σχεδιασμού περιλαμβάνει Τον υπεύθυνο της ομάδας σχεδιασμού (lead designer) Το σχεδιαστή μηχανισμών παιχνιδιού (gameplay mechanics designer) Το σχεδιαστή επιπέδων (level designer) Το σχεδιαστή του interface Το συγγραφέα
H καλλιτεχνική ομάδα Αλλιώς ομάδα ανάπτυξης περιεχομένου Ο όρος «περιεχόμενο» παιχνιδιού (game assets) αναφέρεται σε οτιδήποτε βλέπουμε και ακούμε σε ένα παιχνίδι Από το 1994 και μετά η σημασία του καλλιτέχνη στην κατασκευή ενός παιχνιδιού ολοένα και αυξάνει Συχνά βλέπουμε 50 και άνω άτομα σε μια ομάδα να ασχολούνται με την ανάπτυξη του περιεχομένου του παιχνιδιού και μόνο
H καλλιτεχνική ομάδα Αποτελείται από πολλές ειδικότητες Υπεύθυνος καλλιτέχνης (lead artist) Concept artist Technical artist Σχεδιαστής τριδιάστατων μοντέλων (3D modeler) Σχεδιαστής υφών (texture artist) Σχεδιαστής κίνησης μοντέλων (animator) Σχεδιαστής εφέ (fx artist) Συνθέτης μουσικής Σχεδιαστής ήχου (sound designer) Αξίζει να αναφέρουμε Η νέα γενιά παιχνιδιών έχει τεράστιες απαιτήσεις σε περιεχόμενο Η πλειοψηφία των εργαζομένων σε μια ομάδα ανάπτυξης είναι πλέον καλλιτέχνες
H καλλιτεχνική ομάδα Γιώργος Νικόπουλος, Τμήμα Τεχνών Ήχου και Εικόνας
H καλλιτεχνική ομάδα Γιώργος Νικόπουλος, Τμήμα Τεχνών Ήχου και Εικόνας
H ομάδα προγραμματισμού Η ομάδα προγραμματισμού υλοποιεί το λογισμικό που ενώνει το σχέδιο του παιχνιδιού με το περιεχόμενο για να δημιουργήσει μια μοναδική εμπειρία για το παίκτη Υπεύθυνος προγραμματιστής (lead programmer) Προγραμματιστής γραφικών (graphics programmer) Προγραμματιστής μηχανής γραφικών (rendering engine programmer) Προγραμματιστής μηχανισμών παιχνιδιού (gameplay programmer) Προγραμματιστής εργαλείων (tools programmer) Προγραμματιστής δικτύου (network programmer) Προγραμματιστής ήχου (audio programmer) Προγραμματιστής τεχνητής νοημοσύνης (AI programmer) Προγραμματιστής interface (interface programmer)
Ανεξάρτητες ομάδες Ανάλογα με το μέγεθος μιας εταιρίας ανάπτυξης μπορεί να υποστηρίζονται και άλλες «ανεξάρτητες» ομάδες Research and Development Testing Marketing
Research and Development Η ομάδα αυτή αναπτύσσει τεχνολογία που χρησιμοποιείται από όλες τις ομάδες ανάπτυξης της εταιρίας Μηχανή γραφικών/παιχνιδιού Εργαλεία για τους σχεδιαστές καλλιτέχνες Εργαλεία για την διαχείριση ψηφιακού περιεχομένου (asset management) Υποστήριξη αυτών των εργαλείων
Case study, Rare’s R&D Η Rare διατηρεί 3-4 ομάδες ανάπτυξης, κάθε μία δουλεύει ένα διαφορετικό παιχνίδι τη φορά Κάθε ομάδα ανέπτυσσε την δική της τεχνολογία Κάθε χρονική στιγμή, 3-4 μηχανές γραφικών υπήρχαν ταυτόχρονα στην εταιρία Η Microsoft απαίτησε να χρησιμοποιηθεί τεχνολογία από όλες τις μηχανές για να παραχθεί μια κοινή Τα Kameo, Perfect Dark Zero και Forza 2 τρέχουν όλα με την ίδια μηχανή γραφικών και τεχνολογία Networking
Testing Η ομάδα ελέγχου καλής λειτουργίας ενός παιχνιδιού πιστοποιεί ότι το παιχνίδι δεν περιέχει σφάλματα Σφάλματα στο κώδικα Σφάλματα στο σχεδιασμό Επαναληπτική και επίπονη εργασία Ο tester δεν παίζει το παιχνίδι για ψυχαγωγία
Η ομάδα σαν ζωντανός οργανισμός Η αναφορά που κάναμε προηγούμενους αφορά σε ρόλους και όχι σε άτομα μιας ομάδας Συχνά ένα άτομα αναλαμβάνει περισσότερους το ενός ρόλους Σχεδιαστής μοντέλων και κίνησης Προγραμματιστής εργαλείων και δικτύου Ένα άτομο μπορεί να αλλάξει ρόλο ανάλογα με τις ανάγκες τις ομάδας Ανάπτυξη παιχνιδιών σημαίνει εξειδίκευση αλλά σημαίνει και ευελιξία
Εργαλεία ανάπτυξης
Εργαλεία ανάπτυξης βιντεοπαιχνιδιών Η ομάδα ανάπτυξης χρησιμοποιεί μια τεράστια ποικιλία από εργαλεία κατά την Ανάπτυξη Από χαρτί και μολύβι, μέχρι εξειδικευμένους scanner και development kits Κάθε υποομάδα χρησιμοποιεί διαφορετικά σετ εργαλείων Ορισμένες φορές υπάρχει επικάλυψη
Σχεδιαστές παιχνιδιού Οι σχεδιαστές χρησιμοποιούν εργαλεία για τον σχεδιασμό του κόσμου Μολύβι και χαρτί Word ή Excel Photoshop για διδιάστατα σχέδια Εξειδικευμένους editors που τους επιτρέπουν να σχεδιάσουν τον κόσμο οπτικά Γλώσσες Scripting
Σχεδιαστές παιχνιδιού
Καλλιτέχνες Οι καλλιτέχνες χρησιμοποιούν εργαλεία για την δημιουργία περιεχομένου Μολύβι και χαρτί Photoshop για διδιάστατα σχέδια και υφές Προγράμματα τριδιάστατης μοντελοποίησης (Maya, 3D Studio Max, ZBrush) Προγράμματα δημιουργίας shaders (Fx Composer) Διάφορους scanners, γραφίδες Εξειδικευμένα εργαλεία που παρέχει η ομάδα προγραμματισμού
Προγραμματιστές Η ομάδα προγραμματισμού αναπτύσσει την εφαρμογή του παιχνιδιού και τα εργαλεία Γλώσσα προγραμματισμού: C++, C#, Java ή Flash Actionscript Στις κονσόλες υπάρχουν ειδικά Software Development Kits Κάποιο IDE (Visual Studio για Windows/Xbox360) Κάποια βιβλιοθήκη γραφικών (API): DirectX για Windows και Xbox360, OpenGL για Windows, PS3, Wii
Development kit Για την ανάπτυξη ενός παιχνιδιού για PC, χρειαζόμαστε μόνο το PC. Για κονσόλα τα πράγματα διαφέρουν Πρέπει να αγοραστεί ειδικό κιτ ανάπτυξης παιχνιδιού (development kit – devkit) Κοστίζει αρκετά, >7000 ευρώ το ένα Το devkit είναι μια ειδική έκδοση της κονσόλας με ίδιες δυνατότητες Περιέχει σκληρό δίσκο για εξομοίωση DVD και διπλάσια RAM Η ανάπτυξη του κώδικα γίνεται στο PC και μέσω δικτύου μεταφέρεται στο devkit για να εκτελεστεί Rendering Networking Input/Output
Case study: Ανάπτυξη για το Xbox360 Για να αναπτύξουμε παιχνίδια στο Xbox360 χρειαζόμαστε Ένα Xbox360 devkit Μια ειδική βιβλιοθήκη προγραμματισμού την Xbox Development Kit (XDK) Visual Studio 2005/2008
Ερωτήσεις;