Πως φτιάχνεται ένα παιχνίδι; Πρόκειται για μια ερώτηση που έχει δημιουργηθεί σε όλους όσους έχουν ασχοληθεί με τα παιχνίδια αρκετό καιρό. Ειδικά πλέον με την δωρεάν διανομή σύγχρονων μηχανών γραφικών όπως η Unreal Engine, η Unity και η Source Engine (υπάρχουν και άλλες, μην με φάτε) η παραγωγή ενός παιχνιδιού έχει γίνει ευκολότερη από ποτέ. Αυτό βέβαια εκτός από τα θετικά του, φέρνει και μερικά αρνητικά αλλά αυτό μπορεί να γίνει ξεχωριστό θέμα οπότε δεν θα αναφερθώ παραπέρα.

Σήμερα λοιπόν για όποιον δεν το κατάλαβε ακόμα, είμαι εδώ για να σας λύσω όλες τις απορίες που πιθανότατα θα προκύψουν σχετικά με το πως φτιάχνονται τα βιντεοπαιχνίδια και πως μπορείτε εσείς να ξεκινήσετε να φτιάχνετε ένα. Δεν πρόκειται να σας γράψω κάποιο αναλυτικό step-by-step tutorial καθώς κάτι τέτοιο δεν μπορεί να υπάρξει. Η παραγωγή ενός παιχνιδιού διαφέρει από τίτλο σε τίτλο γιατί πολύ απλά το κάθε παιχνίδι έχει τις δικές του απαιτήσεις. Σε αυτό βέβαια εξαιρούνται οι κλώνοι του Flappy Bird και οποιουδήποτε Flappy Bird, που είχαν τα 5 λεπτά της δημοσιότητας τους, οπότε με χαρά θα αποδεχτώ το γεγονός ότι σε ένα χρόνο από τώρα θα έχουν διαγραφτεί μια για πάντα από τη μνήμη μας (και ελπίζω και από την μνήμη του κινητού σας). Χωρίς λοιπόν να φλυαρώ περαιτέρω, ας ξεκινήσουμε.

Σημείωση: Το συγκεκριμένο editorial πρόκειται για το πρώτο από τα τρία μέρη αυτής της σειράς. Σήμερα θα αναφερθώ στα πράγματα που χρειάζεται να έχουμε ετοιμάσει πρωτού καν ξεκινήσουμε να φτιάχνουμε ένα παιχνίδι (Pre – Production είναι ο επίσημος όρος που θα χρησιμοποιούμε από εδώ και πέρα).

Όλα τα παιχνίδια ξεκινάνε με μία ιδέα. Εδώ τα πράγματα είναι σχετικά απλά διότι μια ιδέα δεν είναι τίποτα άλλο από μία σκέψη που μπορεί να είχες ενώ ήσουν στην τουαλέτα και δεν έβρισκες κάποιο περιοδικό να διαβάσεις ή το κινητό σου είχε μείνει από μπαταρία (true story). Εντάξει, για να είμαστε πιο δίκαιοι, η ιδέα σου μπορεί να έχει έρθει και από λιγότερο ακραίες περιστάσεις της ζωής σου όπως για παράδειγμα από μία συνομιλία που είχες με ένα φίλο σου την Ανάσταση ενώ ήσασταν έξω από την εκκλησία επειδή δεν σας ενδιέφερε καθόλου να ακούσετε τι λέει ο παππάς. Παρεμπιπτόντως, έτσι ακριβώς ξεκίνησε η ιδέα του πρώτου μεγάλου project μιας indie ομάδας που έχω μαζί με ένα φίλο μου. Όπως και να έχει, όλοι μας μπορεί να είχαμε ιδέες για ωραία παιχνίδια κατά καιρούς αλλά δεν σημαίνουν τίποτα εάν δεν δοκιμάσουμε να την εφαρμόσουμε. Οπότε για αρχή, αρπάξτε ένα χαρτί και ένα μολύβι (είμαι παραδοσιακός τύπος – not) και να είστε έτοιμοι να σημειώσετε την ιδέα που σας καρφώθηκε στο μυαλό στις 3 η ώρα τα μεσάνυχτα επειδή εκείνο το βράδυ φάγατε πολλά σουβλάκια και δεν σας παίρνει ο ύπνος (επίσης true story). Συνοψίζοντας λοιπόν, εάν έχετε μια ιδέα για παιχνίδι, το πρώτο πράγμα που έχετε να κάνετε είναι να την σημειώσετε και να αρχίσετε να αναπτύσσετε στο μυαλό σας τους μηχανισμούς του παιχνιδιού έτσι ώστε να έχετε μια σχετικά καθαρή καλλιτεχνική και τεχνική εικόνα για το πως θα μοιάζει και θα παίζει το παιχνίδι σας. Προσωπικά όταν μου έρθει μια ιδέα, πιάνω χαρτί και μολύβι και σημειώνω λέξεις κλειδιά που θα μου κατέβουν στο μυαλό εκείνη τη στιγμή. Σε αυτό το στάδιο επίσης μπορείς να δεις πρακτικά το πόσο ενδιαφέρουσα φαίνεται η ιδέα σου στους άλλους απλά ρωτώντας τους φίλους σου (αρκεί να μην είναι άσχετοι με τα video-games). Μην φοβάστε να λέτε τις ιδέες και σκέψεις σας ανοιχτά με τη δικαιολογία ότι μπορεί να σας κλέψουν την ιδέα σας καθώς κανείς δεν θα μπει στον κόπο να την φτιάξει.

Προχωρώντας στο επόμενο στάδιο του Pre – Production έχουμε την παραγωγή ενός Game Design Document (GDD εν συντομία από εδώ και πέρα). Αυτό το «μαγικό» έγγραφο πρόκειται για ένα word αρχείο (ή pdf άμα έχετε αυτοκτονικές τάσεις) το οποίο θα πρέπει να περιέχει όλες τις λεπτομέρειες του παιχνιδιού σας. Στόχος αυτού του εγγράφου είναι να σας θυμίζει πράγματα, στοιχεία και λεπτομέριες για το παιχνίδι σας που μπορεί να ξεχάσετε με το πέρασμα του καιρού κατά τη διάρκεια παραγωγής του. Επίσης, σας βοηθάει απίστευτα στο να οργανώσετε τη σκέψη σας και να καταγράψετε ακριβώς πως θέλετε να μοιάζει το παιχνίδι σας από καλλιτεχνική άποψη, τι μηχανισμούς θα έχει ή ακόμα και με πόσα είδη εμποδίων ή εχθρών θα έρθει αντιμέτωπος ο παίκτης. Εκτός από τις παραπάνω χρησιμότητες, εάν κάποιος άλλος διαβάσει (εκτός από εσένα που το έγραψες) το GDD θα πρέπει να είναι σε θέση να καταλάβει πως θα είναι το παιχνίδι σε γενικές γραμμές. Αυτό είναι ιδιαίτερα σημαντικό σε ομάδες που δεν δουλεύουν όλοι στον ίδιο χώρο και η συνάντηση των μελών από κοντά είναι δύσκολη. Είναι αλήθεια ότι για πολύ μικρά παιχνίδια (συνήθως mobile) μπορεί να μην χρειαστεί κάποιος να φτιάξει ένα GDD αλλά κάτι τέτοιο δεν θα το συνιστούσα σε καμία περίπτωση καθώς ο εγκέφαλος μας μπορεί να ξεχάσει εύκολα μικρά και ασήμαντα πραγματάκια που σε τελική ανάλυση αυτα κάνουν την διαφορά σε ένα παιχνίδι. Όσον αφορά τη δομή του GDD , είναι κάτι καθαρά προσωπικό θέμα (εκτός εάν μιλάμε για μεγάλη εταιρία που έχει ήδη ένα συγκεκριμένο τρόπο δομής του) καθώς θέλετε να έχετε ένα έγγραφο που θα μπορείτε να βρίσκετε αυτό που ψάχνετε όταν το χρειάζεστε. Εάν πάλι δεν θέλετε να ξοδέψετε πολύ χρόνο στο να σκεφτείτε τη δομή του GDD του παιχνιδιού σας, μπορείτε πολύ εύκολα να κάνετε μια αναζήτηση στο Google και να κατεβάσετε έτοιμα templates. Κάτι που θα ήθελα επίσης να επισημάνω είναι ότι δεν χρειάζεται να γράψετε όλο το document πρωτού ξεκινήσετε την παραγωγή. Ο τρόπος που εγώ συνιστώ να δουλεύετε με το GDD είναι να γράψετε σύντομα στην αρχή τα βασικά δομικά στοιχεία του παιχνιδιού ώστε να θέσετε τις βάσεις του παιχνιδιού και καθώς ξεκινάτε τις εργασίες παραγωγής, να προσθέτετε τις διάφορες λεπτομέρειες. Προσωπικά πιστεύω πως είναι καλύτερο το GDD να εξελίσσεται κατά τη διάρκεια της παραγωγής του παιχνιδιο. Προσέξτε όμως να μην αρχίσετε να αλλάζετε το βασικό κορμό του παιχνιδιού κάθε 2 μέρες γιατί κινδυνεύετε να καταλήξετε με ένα εντελώς διαφορετικό (και πολλές φορές ανούσιο) παιχνίδι στο τέλος.

Αφού έχουμε ετοιμάσει λοιπόν το Game Design Document, ήρθε η ώρα να ξεκινήσουμε τις δημιουργικές μας μηχανές. Μιλάω για το Concept Art του παιχνιδιού και για το Prototype του. Το Concept Art ενός παιχνιδιού πρόκειται για τις εικόνες – σκίτσα που κάνουμε εμείς (ή ο Illustrator της ομάδας) με στόχο την καλύτερη οπτική απεικόνιση του παιχνιδιού. Με απλά λόγια, πρωτού ξεκινήσετε να φτιάχνετε το ίδιο το παιχνίδι θα πρέπει να έχετε μία πρώτη εικόνα για το πως θα μοιάζει το παιχνίδι σας. Αυτό δεν χρειάζεται να είναι κάποιο τέλειο σχέδιο καθώς δεν θα χρησιμοποιηθεί κάπου στο παιχνίδι. Μόλις τελείωσουμε και με αυτό το στάδιο, προχωράμε στα πιο βαριά πράγματα. Μιλάω βέβαια για την ανάπτυξη του πρώτου Prototype του παιχνιδιού. Το Prototype είναι ένα λειτουργικό demo με την πιο βασική λειτουργικότητα (functionality) του παιχνιδιού σας. Με λίγα λόγια, πρόκειται για μια απλή και βασική αναπαράσταση για το πως θα χειρίζεστε το παιχνίδι. Εδώ βέβαια θα χρειαστείτε τις πρώτες γνώσεις (βασικά πράγματα ακόμη) από προγραμματισμό. Η γλώσσα προγραμματισμού ποικίλει ανάλογα με την μηχανή γραφικών που θα χρησιμοποιήσετε (ή μπορεί να μην υπάρχει) οπότε δεν θα αναφερθώ ξεχωριστά για τη καθεμία (maybe another time). Όταν φτιάχνετε το Prototype του παιχνιδιού σας, προσπαθήστε να προγραμματίσετε μόνο τις βασικές και αναγκαίες λειτουργίες που χρειάζεται το παιχνίδι, καθώς σε αυτή τη φάση μας ενδιαφέρει να δούμε ότι το παιχνίδι «στέκει» έστω και με τα βασικά χαρακτηριστικά του. Κάτι άλλο εξίσου σημαντικό είναι να μην αφιερώσετε χρόνο στα γραφικά. Σε αυτό το στάδιο της ανάπτυξης του παιχνιδιού σας δεν σας ενδιαφέρει πόσο ωραίο φαίνεται το παιχνίδι. Με αυτό θα ασχοληθούμε αργοτέρα… Τέλος, μην ξοδέψετε πάρα πολύ χρόνο στη κατασκευή του prototype για να μην μείνετε πίσω στα κανονικά στάδια της παραγωγής του παιχνιδιού.

Και αφού τελείωσαμε την ανάλυση των πιο σημαντικών σταδίων του Pre – Production, θα ήθελα να σας παραθέσω μερικές χρήσιμες συμβουλές:

1. Μην ξεκινήσετε να φτιάξετε το επόμενο Call of Duty ή WoW για πρώτο σας παιχνίδι. Ειδικά εάν δεν έχετε καμία ιδέα από CG (Computer Graphics) και Game Development (αν και μετά από αυτή τη σειρά άρθρων θα έχετε) το καλύτερο που μπορείτε να κάνετε είναι να ξεκινήσετε να φτιάχνετε πολλά μικρά παιχνιδάκια και σταδιακά να τα εξελίσετε σε πολυπλοκότητα. Έτσι θα μάθετε τις δυσκολίες με τις οποίες θα έρθετε αντιμέτωποι καθώς επίσης θα μάθετε σταδιακά να τις αντιμετωπίζετε. Για αρχή στοχεύετε στο να βγάζετε ένα παιχνίδι κάθε 1-2 μήνες και σε ένα με δύο χρόνια θα έχετε μάθει πολύ περισσότερα πράγματα από ότι θα μαθαίνατε παλεύοντας να φτιάξετε έναν τεράστιο τίτλο με μηδενική εμπειρία και καθόλου βάσεις.

2. Φτιάξτε μία ομάδα και δικτυωθείτε! Μία ομάδα μπορεί να αποτελείτε από 2 και πάνω άτομα. Για αρχή προσπαθήστε να κρατήσετε τον αριθμό των μελών της ομάδας μικρό και δώστε έμφαση στην οργάνωση των καθηκόντων και της ιεραρχίας. Αυτό θα σας βοηθήσει να ολοκληρώσετε τα projects σας σε λιγότερο χρόνο καθώς και θα σας βοηθήσει να αναπτύξετε τα skills της συνεργατικότητας και επικοινωνίας που θα τα χρειαστείτε ούτως ή άλλως σε οποιοδήποτε τομέα και αν καταλήξετε να εργάζεστε (εξαιρούνται οι νεκροθάφτες). Επίσης με χαρά σας ενημερώνω πως τα τελευταία 2 χρόνια έχουν δημιουργηθεί μικρές κοινότητες Ελλήνων Game Developers, οι περισσότερες εκ των οποίων έχουν ενεργά groups στο Facebook (R.I.P. Forums), και οργανώνουν ανά τακτικά χρονικά διαστήματα, συναντήσεις στο κέντρο της Αθήνας. Ευκαιρία λοιπόν, να έρθετε σε μία από αυτές και να γνωριστούμε και από κοντά.

Μερικά links για να σας κατευθύνω:

https://www.facebook.com/groups/ggdevs/?fref=ts

https://www.facebook.com/groups/unity3dellinikikoinotita/

https://www.facebook.com/groups/1437342983208694/

3. Συμμετέχετε σε Game Jams. Τα Game Jams είναι διαγωνισμοί παραγωγής παιχνιδιών που περιορίζονται σε χρόνο. Με απλά λόγια, μαζεύεις την ομάδα σου, κλείνεστε για 2-3 μέρες και βγάζετε ένα τελικό παιχνίδι με βάση το θέμα που θα σας δωθεί. Πρόκειται για μία απίστευτη εμπειρία από την οποία θα μάθετε πολλά νέα πράγματα, θα δοκιμάσετε τα όρια σας και θα γνωρίσετε νέο κόσμο. Όλα αυτά εάν είστε διατεθειμένοι να θυσιάσετε τον ύπνο σας για μερικές μέρες… Παρακάτω σας παραθέτω μερικά links από τα μεγαλύτερα Game Jams:

http://globalgamejam.org/ – Το μεγαλύτερο game jam που γίνεται ταυτόχρονα σε όλο το κόσμο μία φορά το χρόνο

http://ludumdare.com/ – Το πιο γνωστό online game jam που πραγματοποιείται κάθε μερικούς μήνες

http://www.hellenicgamejam.com/ – Το αντίστοιχο Ελληνικό Game Jam

Ελπίζω να κάλυψα τις περισσότερες απορίες σας πάνω στα αρχικά στάδια παραγωγής ενός παιχνιδιού. Για οποιαδήποτε παράλειψη, απορία ή πρόταση μπορείτε να αφήσετε το σχόλιο σας παρακάτω ή να επικονωνήσετε μαζί μου μέσω emai εδώ: aggelos.tsiflas@gmail.com

  • Θα ήθελα τα σχόλια σας για ένα παιχνίδι που έφτιαξα στα πρόθυρα εργασίας στην σχολή
    http://aggeloshook.eu/index.php/gamelist/item/2-choose-game

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

    • Angelo Tsiflas

      Ο καθένας πιστεύω πάει ανάλογα με τη σχέση του με τους υπολογιστές. Εννοείται πως υπάρχουν και πιο απλές μηχανές γραφικών όπως το Construct,το Game Maker και το RPG Maker απλά δεν τα ανέφερα επειδή τα ξέρει λιγότερος κόσμος. Πλέον βέβαια δεν είναι καθόλου δύσκολο κάποιος να ξεκινήσει να προγραμματίζει στη Unity με C# καθώς υπάρχει άφθονο documentation και πολλά πληρέστατα video tutorials που εξηγούν τα πράγματα πολύ καλά. Για να μην μακρυγορώ, θεωρώ πως εάν κάποιος έχει θέληση μπορεί να μάθει τα πάντα και να παρουσιάσει πολύ καλή δουλειά ακόμα και μόνος του. Σε αυτή τη σειρά editorials θα αναφερθώ στο πως μπορεί κάποιος να κάνει κάτι τέτοιο.

      ΥΣ: Είδα το παιχνίδι σου και για να πω την αλήθεια δεν κατάφερα να περάσω τα 3-4 lvl γιατί και για κάποιο λόγο το shop δεν δούλευε. Εάν θες αναλυτικό feedback μπορούμε να τα πούμε με email.

  • Petros Kitsaras

    Πολύ ωραίο το άρθρο και εγώ έχω αρχίσει να φτιάχνω παιχνιδάκια 🙂 You could say its my hobby ^^