Το προφίλ μας στο Google Plus
0

Indie games και ανάπτυξη παιχνιδιών

Indie Games. Ή αλλιώς independent video games. Ή πιο σωστά, video games από independent developers. Κατά πάσα πιθανότητα έχετε ήδη παίξει κάποιο παιχνίδι που κατατάσσεται σε αυτή την κατηγορία — Minecraft ή Braid κανείς; Πόσοι από εσάς όμως έχετε ακούσει τον όρο;

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

Δημιουργήθηκε από τον Σουηδό προγραμματιστή Markus 'Notch' Persson και έκανε πάταγο στη διεθνή αγορά φτάνοντας --και ξεπερνώντας, θα λέγαμε-- σε πωλήσεις παιχνίδια από μεγάλες εταιρείες παραγωγής παιχνιδιών.

Δημιουργήθηκε από τον Σουηδό προγραμματιστή Markus “Notch” Persson και έκανε πάταγο στη διεθνή αγορά φτάνοντας –και ξεπερνώντας, θα λέγαμε– σε πωλήσεις παιχνίδια από μεγάλες εταιρείες παραγωγής παιχνιδιών.

Τα πιο ολοκληρωμένα πακέτα λογισμικού
Η δημιουργία ενός παιχνιδιού εμπλέκει δραστηριότητες από πολλές ειδικότητες. Από προγραμματιστές, γραφίστες και animators, μέχρι μουσικούς παραγωγούς, ειδικούς σε marketing και δικηγόρους. Όλοι μαζί και ο καθένας ξεχωριστά προσφέροντας τις υπηρεσίες τους, διαμορφώνουν την ποιότητα του τελικού προϊόντος. Όσοι σας λένε ότι είναι εύκολη δουλειά η δημιουργία ενός παιχνιδιού, ενδέχεται να αναφέρονται σε παιχνίδια μικρά σε περιεχόμενο και κατά συνέπεια σε μέγεθος.

Αρχικά, πρέπει να επισημανθεί ότι τα video games θεωρούνται από τα πιο ολοκληρωμένα πακέτα λογισμικού που μπορεί να βρει κάποιος στην αγορά. Συνδυάζουν σενάριο, γραφικά δύο και τριών διαστάσεων, user interface, animations και μουσική, όλα αυτά περιπλεγμένα με κώδικα έτσι ώστε όλα μαζί να δίνουν μια ξεχωριστή, ολοκληρωμένη εμπειρία στον παίκτη. Μπορεί η δημιουργία ενός AAA (προφέρεται “triple A”) τίτλου να μην είναι εύκολη υπόθεση, στις μέρες μας όμως είναι αρκετά εύκολο να δημιουργήσει κάποιος ένα μικρό παιχνίδι.

Ως AAA χαρακτηρίζονται οι τίτλοι παιχνιδιών για τη δημιουργία των οποίων έχει δαπανηθεί ένας μεγάλος όγκος πόρων, όχι αποκλειστικά χρηματικών, και συνήθως είναι υψηλής ποιότητας. Τέτοια παιχνίδια τείνουν να λαμβάνουν υψηλές βαθμολογίες από τους κριτικούς του χώρου. Είναι σχεδόν αδύνατο να δημιουργηθούν από ένα μόνο άτομο, ενώ τα χρονοδιαγράμματά τους μπορούν να καλύψουν χρόνια. Άμεσο συμπέρασμα είναι ότι παιχνίδια σαν αυτά, κατά βάση, μπορούν να παραχθούν μόνο από μεγάλες εταιρείες, με μεγάλα κεφάλαια διαθέσιμα για την υλοποίησή τους.

Και κάπου εδώ, λοιπόν, μπαίνουν στο παιχνίδι (pun intended) τα indie games.

Κατασκευή παιχνιδιών, χωρίς τους μεγάλους
Επειδή δεν γίνεται τα χρήματα –ή η έλλειψη αυτών– να καταπιέσουν το μεράκι, ομάδες ατόμων μιμούνται αυτές τις μεγάλες εταιρείες, παράγοντας παιχνίδια σε μικρότερη κλίμακα. Οι εν λόγω ομάδες δρουν χωρίς τη βοήθεια μεγάλων εταιρειών ή χωρίς να βασίζονται στις χρηματοδοτήσεις τους. Τους αποδίδεται η ονομασία independent, ελληνιστί “ανεξάρτητες”, μιας και δεν υπάρχει καμία εξάρτηση από μεγαλύτερες εταιρείες. Δυστυχώς όμως, στην πορεία τους οι περισσότερες απ’ αυτές τις ομάδες έρχονται αντιμέτωπες με προβλήματα που μεγάλες εταιρείες (ή εκδότες παιχνιδιών) έχουν λυμένα εξ’ αρχής. Κυριότερα προβλήματα θεωρούνται το marketing και σαφώς η χρηματοδότηση.

Τα πάντα σήμερα είναι marketing. Το marketing, η προώθηση δηλαδή, μπορεί να κρίνει τη μοίρα ενός παιχνιδιού. Ευτυχώς το Διαδίκτυο είναι εξαιρετικά διαδεδομένο Στις Μέρες Μας (TM) και οι διαφημίσεις σε αυτό δίνουν και παίρνουν. Σε σημείο που έχει καταντήσει να είναι πιο αποδοτική η διαφήμιση σ’ αυτό, παρά όταν προβάλλεται στην τηλεόραση ή σε μια εφημερίδα. Είναι αρκετά εύκολο να διαφημιστεί κάποιος στο Internet, καθώς και να ρυθμίσει το μέγεθος της καμπάνιας του ανάλογα με τον οβολόν του.

Κάποιες ομάδες μπαίνουν στη διαδικασία να λύσουν το οικονομικό πρόβλημα της προσπάθειάς τους, κυνηγώντας χρηματοδότηση από το ευρύ κοινό. Ο αγγλικός όρος είναι crowdfunding. Πρόκειται για μια μέθοδο χρηματοδότησης στην οποία μεγάλος αριθμός ατόμων διαθέτουν μικρά ποσά έκαστος για την υλοποίηση του έργου. Υπάρχουν ουκ ολίγες πλατφόρμες για το σκοπό αυτό, με μεγαλύτερες το Kickstarter και το Indiegogo. Σε αυτές οι developers μπορούν να παρουσιάσουν την ιδέα τους και να ζητήσουν από τους χρήστες να υποστηρίξουν την προσπάθειά τους, προαγοράζοντας ουσιαστικά το τελικό προϊόν.

Kickstarter: Το μεγαλύτερο και πιο γνωστό site crowdfunding στο Διαδίκτυο. Φιλοξενεί πληθώρα από projects, με καινούργια να προστίθενται κάθε μέρα. Στην εικόνα βλέπουμε να έχει συγκεντρωθεί το ποσό των 36.000 (σχεδόν) δολαρίων. Σε αυτό συνέβαλαν 644 backers (υποστηρικτές), ενώ ο στόχος της εκστρατείας είναι να μαζευτούν τουλάχιστον 40.000 δολάρια. Απομένουν άλλες 27 ημέρες για τη λήξη της.

Kickstarter: Το μεγαλύτερο και πιο γνωστό site crowdfunding στο Διαδίκτυο. Φιλοξενεί πληθώρα από projects, με καινούργια να προστίθενται κάθε μέρα. Στην εικόνα βλέπουμε να έχει συγκεντρωθεί το ποσό των 36.000 (σχεδόν) δολαρίων. Σε αυτό συνέβαλαν 644 backers (υποστηρικτές), ενώ ο στόχος της εκστρατείας είναι να μαζευτούν τουλάχιστον 40.000 δολάρια. Απομένουν άλλες 27 ημέρες για τη λήξη της.

Άλλες φορές ζητούν τα χρήματα των παικτών εκ των προτέρων, βγάζοντας τα παιχνίδια τους σε Early Access. Ένα παιχνίδι σε Early Access είναι μεν playable, απλά δεν έχει να αποδώσει το 100% του περιεχομένου του ή της λειτουργικότητάς του. Για παράδειγμα, η Early Access έκδοση ενός FPS game, μπορεί να περιλαμβάνει μόνο μια πίστα και ένα μικρό αριθμό όπλων για να επιλέξει ο χρήστης. Παρόλο που ένα παιχνίδι στην κατάσταση αυτή μπορεί να παρουσιάζει έλλειψη περιεχομένου, η τιμή του εξακολουθεί να κυμαίνεται στα επίπεδα πώλησης ενός ολοκληρωμένου παιχνιδιού. Ο πρωταρχικός σκοπός του Early Access είναι να αποκτήσει η κατασκευάστρια ομάδα οικονομική ευχέρεια ώστε να είναι σε θέση να καλύψει κάποια από τα τρεχούμενα λειτουργικά της έξοδα.

Αν και ο όρος Early Access προέρχεται από την πλατφόρμα παιχνιδιών Steam της Valve, ουσιαστικά αναφέρεται σε όλα τα games που ενώ βρίσκονται ακόμα σε development στάδιο είναι διαθέσιμα για αγορά από το ευρύ κοινό.

Αν και ο όρος Early Access προέρχεται από την πλατφόρμα παιχνιδιών Steam της Valve, ουσιαστικά αναφέρεται σε όλα τα games που ενώ βρίσκονται ακόμα σε development στάδιο είναι διαθέσιμα για αγορά από το ευρύ κοινό.

Μία άλλη μέθοδος άξια αναφοράς που μάλιστα εμπίπτει και στις δύο προαναφερθείσες μεθόδους, είναι τα game bundles. Πολλά sites προσφέρουν “πακέτα” παιχνιδιών σε χαμηλές τιμές ή αφήνουν το χρήστη να ορίσει ο ίδιος πόσα χρήματα θέλει να δώσει. Βασίζονται στο ότι η χαμηλή τιμή θα προσελκύσει μεγαλύτερο αριθμό πωλήσεων και πολλές φορές το πετυχαίνουν. Ουκ ολίγες φορές όμως τα πακέτα αυτά περιλαμβάνουν μεγάλο αριθμό παιχνιδιών, με τους δημιουργούς τους να πρέπει να μοιραστούν το τελικό ποσό. Συνέπεια; Μηδαμινές αποδοχές σε σχέση με τον αριθμό των κομματιών που έχουν εν τέλει διατεθεί.

Ας δούμε τώρα καλύτερα πώς δημιουργείται ένα παιχνίδι.

Τα στάδια παραγωγής ενός παιχνιδιού
Η δημιουργία ενός παιχνιδιού ξεκινάει από τη φάση της σχεδίασης. Σε αυτή τη φάση οι game designers συγγράφουν το game design document, με τους concept artists να δουλεύουν σε στενή συνεργασία μαζί τους. Η δουλειά των τελευταίων είναι να χρησιμοποιήσουν την φαντασία τους, μεταφέροντας στο χαρτί τις σκέψεις των designers. Με τη διαδικασία αυτή το παιχνίδι αρχίζει να λαμβάνει μια πρώτη μορφή από άποψη περιεχομένου. Πολλές φορές στη φάση αυτή δημιουργούνται και κάποια prototypes του παιχνιδιού.

Τα game design documents είναι έγγραφα που περιλαμβάνουν, με εξουθενωτικές λεπτομέρειες, πληροφορίες για το παιχνίδι καθώς και τις λειτουργίες του. Περιλαμβάνουν από τις πιο γενικές έννοιες που μπορούν να υπάρχουν στο παιχνίδι (π.χ., την όλη ατμόσφαιρα που θα κυριαρχεί σε αυτό), μέχρι και την παραμικρή λεπτομέρεια στο gameplay (π.χ., τον τρόπο υπολογισμού της ζημιάς που θα πάθει μια μονάδα αν της επιτεθεί μια άλλη).

Prototypes ή game prototypes, ονομάζονται οι εκδόσεις των παιχνιδιών που σαν στόχο έχουν να τεστάρουν τη βιωσιμότητα μιας ιδέας. Συνήθως οι εκδόσεις αυτές χρησιμοποιούν “quick and dirty code”, λόγω των στενών χρονικών περιθωρίων που επιβάλλονται για την ολοκλήρωσή τους. Βασική τους δουλειά είναι να βοηθήσουν στην περαιτέρω οπτικοποίηση της ιδέας, υλοποιώντας τους βασικούς μηχανισμούς του παιχνιδιού.

Όταν η φάση της σχεδίασης φτάσει σε ένα ώριμο στάδιο, ξεκινάει η διαδικασία παραγωγής. Σε αυτή τη φάση δημιουργούνται ο κώδικας, καθώς και τα υπόλοιπα assets του παιχνιδιού (γραφικά, μουσική, animations, διάλογοι κ.λπ.). Η φάση αυτή απαιτεί το μεγαλύτερο ποσοστό του χρόνου της διαδικασίας παραγωγής.

Αμέσως μετά ξεκινάει η διαδικασία της δοκιμής του παιχνιδιού, μέχρι να ολοκληρωθεί στο 100% το περιεχόμενό του. Testing μέχρι τελικής πτώσεως και το παιχνίδι είναι έτοιμο προς release.

Ας σταθούμε περισσότερο στη δεύτερη φάση της διαδικασίας αυτής, μιας και μας αφορά περισσότερο (όντας προγραμματιστές).

Η πολύτιμη game engine
Πίσω από κάθε παιχνίδι κρύβεται μια μηχανή. Πρόκειται για τη λεγόμενη game engine, η οποία είναι υπεύθυνη για οτιδήποτε συμβαίνει στο σύστημα που τρέχει το εν λόγω παιχνίδι. Είναι μια συλλογή άλλων μηχανών (graphics engine, audio engine κ.ά.), οι οποίες λειτουργούν μεταξύ τους σε πλήρη εναρμόνιση. Μια game engine προσφέρει λειτουργίες που μπορεί να περιλαμβάνουν:

  • το rendering των γραφικών στην οθόνη (graphics)
  • την αναπαραγωγή της μουσικής και ηχητικών εφέ (audio)
  • την επικοινωνία πολλών υπολογιστών μεταξύ τους (networking)
  • το πόση ενέργεια θα χάσει o αντίπαλος στρατιώτης όταν θα τον χτυπήσει η σφαίρα που έφυγε από το δικό μας όπλο, όταν κάναμε κλικ με το ποντίκι μας (input)

Αυτό το τελευταίο είναι ευρύτερα γνωστό με τον όρο gameplay.

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

Lumberyard: Η νέα μηχανή δημιουργίας παιχνιδιών της Amazon. Είναι Open source -- και πολλά υποσχόμενη!

Lumberyard: Η νέα μηχανή δημιουργίας παιχνιδιών της Amazon. Είναι Open source — και πολλά υποσχόμενη!

Στο Διαδίκτυο κυκλοφορούν πολλές τέτοιες μηχανές και μάλιστα αρκετές από αυτές διατίθενται δωρεάν. Εφόσον η κάθε μία τους αποτελεί διαφορετικό λογισμικό, διαθέτουν διαφορετικές δυνατότητες και παρουσιάζουν διαφορετικές καμπύλες εκμάθησης. Συχνά έχουν διαφορετικές απαιτήσεις σε προγραμματιστικές γνώσεις, ενώ υποστηρίζουν και διαφορετικές γλώσσες προγραμματισμού. Πολλές εξάγουν τα παιχνίδια που δημιουργούνται με αυτές σε περισσότερες από μία πλατφόρμες (PC, Mac, Xbox, PS4, Android κ.ά.), απαιτώντας μόνο μικρές τροποποιήσεις ή προσθήκες στον κώδικα.

Πολλοί κατασκευαστές game engines δίνουν το πρόγραμμα της μηχανής δωρεάν προς χρήση, με την προϋπόθεση να εισπράξουν ποσοστό των χρημάτων από τις πωλήσεις του παιχνιδιού. Ακούγεται άσχημο; Ίσως και να είναι, αλλά συμβαίνει μόνο σε περίπτωση που τα έσοδα των πωλήσεων ξεπεράσουν ένα ορισμένο από την εταιρεία ποσό (π.χ., 100.000 δολάρια).

H Unreal Engine της Epic Games. Η μηχανή σχεδιάστηκε αρχικά για FPS games και έχει πολλούς και καλούς τίτλους στην πλάτη της. Πήρε το όνομά της από το παιχνίδι Unreal (γύρω στο '98, όσοι το θυμούνται).

H Unreal Engine της Epic Games. Η μηχανή σχεδιάστηκε αρχικά για FPS games και έχει πολλούς και καλούς τίτλους στην πλάτη της. Πήρε το όνομά της από το παιχνίδι Unreal (γύρω στο ’98, όσοι το θυμούνται).

Πέρα από τη μηχανή, οι προγραμματιστές πρέπει να γράψουν και τον κώδικα των λειτουργιών του παιχνιδιού (gameplay). Σε σύγκριση με τον κώδικα της μηχανής, ο κώδικας του gameplay είναι πιο εύκολος. Ουσιαστικά, χρησιμοποιεί το API της μηχανής για να συνδέσει την είσοδο του παίχτη (ποντίκι, πληκτρολόγιο, επιταχυνσιόμετρο κ.λπ.) με τη συμπεριφορά και την αλληλεπίδραση των assets που εμφανίζονται στην οθόνη όταν εκτελείται το παιχνίδι.

Στα επόμενα άρθρα θα δημιουργήσουμε από την αρχή ένα μικρό παιχνίδι. Θα στοχεύσουμε κυρίως σε mobile συσκευές.

Για να τρέχει το παιχνίδι μας στα κυριότερα λειτουργικά συστήματα των κινητών συσκευών με ένα codebase, θα το προγραμματίσουμε σε μια μηχανή που ακούει στο όνομα Unity. Υποστηρίζει τη δημιουργία scripts σε Boo (μια διάλεκτο της Python), σε UnityScript (θυμίζει πολύ Javascript αλλά χρησιμοποιεί classes) και σε C#. Εμείς θα χρησιμοποιήσουμε την τελευταία, ενώ προτείνεται η χρήση του Visual Studio (κατά την εγκατάσταση της μηχανής, παρέχεται δυνατότητα εγκατάστασής του). Αν δεν θέλει κάποιος να κατεβάσει τα αρκετά gigabytes του Visual Studio, μαζί με τη μηχανή εγκαθίσταται και το MonoDevelop, ένα εναλλακτικό IDE για συγγραφή κώδικα. Η μηχανή χρησιμοποιεί ακόμα την έκδοση 2 του Mono Project (έκδοση 3.5 του .NET framework — δυστυχώς), ενώ σε κάποιες πλατφόρμες λειτουργεί με Subset της έκδοσης αυτής.

Η μηχανή είναι αρκετά χρόνια στο προσκήνιο, βρίσκεται στην 5η έκδοσή της, ενώ οι χρήστες της πολλαπλασιάζονται μέρα με τη μέρα. Υπάρχουν εκδόσεις της για Windows και OS X, ενώ στα σκαριά βρίσκεται μια έκδοση που θα τρέχει σε Linux.

Η μηχανή είναι αρκετά χρόνια στο προσκήνιο, βρίσκεται στην 5η έκδοσή της, ενώ οι χρήστες της πολλαπλασιάζονται μέρα με τη μέρα. Υπάρχουν εκδόσεις της για Windows και OS X, ενώ στα σκαριά βρίσκεται μια έκδοση που θα τρέχει σε Linux.

Το documentation της μηχανής είναι εκτενέστατο. Είναι διαθέσιμο online, αλλά μας παρέχεται δυνατότητα να το αποκτήσουμε και offline κατά την εγκατάστασή της. Για να δημιουργήσουμε τα τελικά εκτελέσιμα αρχεία του παιχνιδιού χρειάζονται τα αντίστοιχα SDKs του λειτουργικού συστήματος που έχουμε ως στόχο.

Για παράδειγμα, δεν γίνεται να κάνουμε build για iOS σε μηχάνημα διαφορετικό από Mac. Το Hackintosh δεν θα δουλέψει στην συγκεκριμένη περίπτωση, γιατί το Xcode δεν είναι είναι διαθέσιμο (και δεν μπορεί να εγκατασταθεί) σε αυτό. Αν θέλουμε να κάνουμε build σε Windows Phone, θα χρειαστεί οπωσδήποτε το Windows Phone 8.1 SDK ή το Windows 10 SDK, ανάλογα με την έκδοση και το Visual Studio. Το δε build για Android γίνεται από παντού, απλά θα χρειαστεί το SDK του.

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

Τι ακολουθεί
Στα άρθρα μας θα εμβαθύνουμε περισσότερο στον προγραμματισμό και στις τεχνικές που αφορούν στη συγκεκριμένη μηχανή. Φιλική προειδοποίηση: το παιχνίδι θα περιέχει programmer art. Με τον όρο “programmer art” αναφερόμαστε σε γραφικά που χρησιμοποιούνται κατά τη διάρκεια της παραγωγής του κώδικα και είναι φτιαγμένα από τους ίδιους τους προγραμματιστές. Για παράδειγμα, τον παίχτη μπορεί να παριστάνει μια 3D κάψουλα χρώματος μπλε, ενώ ένα σπίτι μπορεί να είναι ένας απλός κύβος, χρώματος γκρι. Αν χρειαστούν ιδιαίτερα γραφικά θα καταφύγουμε σε πακέτα με δωρεάν assets, πληθώρα εκ των οποίων υπάρχουν στο Asset Store της Unity.

Τα assets του project θα είναι διαθέσιμα ανά πάσα στιγμή σε σελίδα στο GitHub (pull requests welcome). Για τη συνέχεια, μεταβείτε στο επόμενο άρθρο της σειράς μας.

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων