Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια

Delicate Sound of Development

Journal για creative & non-creative δραστηριότητες. Development and more...:)
Αποκλειστική συνέντευξη με τον Κώστα "Bad Sector" Μιχαλόπουλο, προγραμματιστή στο παιχνίδι Theseis

Γνωρίσαμε το παιχνίδι Theseis της track7games στο προηγούμενο post

Ο Κώστας Μιχαλόπουλος, γνωστός και ως Bad Sector στην σκηνή των Ελλήνων προγραμματιστών, είναι μέλος της ομάδας ανάπτυξης του παιχνιδιού και μας μιλάει για τον ίδιο, την πορεία του στον χώρο του game development, για το παιχνίδι Theseis και όχι μόνο...

[SG] Πες μας λίγα πράγματα για σένα. Πώς και σε ποια ηλικία αναμίχθηκες με το προγραμματισμό παιχνιδιών; Σου αρέσει μόνο αυτό το είδος προγραμματισμού ή ασχολείσαι και με άλλα; Λίγα λόγια για σένα από την DemoScene Era, μέχρι σήμερα.

[Κώστας] Με προγραμματισμό ασχολούμαι απο περίπου 7 ετών, όταν πρωτοεμφανίστηκε υπολογιστής στο σπίτι και στην αρχή κάπως κρυφά απο τους γονείς μου. Απο την αρχή προσπάθησα να φτιάξω παιχνίδια σε GWBasic και Turbo Pascal σε έναν PC/XT με μια ATI κάρτα που υποστήριζε CGA και Hercules (αλλάζοντας έναν διακόπτη στο πίσω μέρος). Τα παιχνίδια αυτά, φυσικά, ήταν πολύ απλοϊκά, όπως για παράδειγμα το "Spider" όπου είχες έναν ASCII χαρακτήρα που κατά την τότε φαντασία μου θύμιζε αράχνη και τον μετακινούσες με τα βελάκια στην οθόνη αποφεύγοντας άλλους χαρακτήρες.

Γενικότερα μου αρέσει πολύ το game development σαν είδος προγραμματισμού και αυτό είναι που με ενδιαφέρει περισσότερο απο κάθε άλλο είδος, αφού περιλαμβάνει ένα μεγάλο εύρος πεδίων στον τομέα. Ένας game developer μπορεί να ασχοληθεί με πολλά διαφορετικά θέματα, όπως γραφικά, ήχος, ανάπτυξη συστημάτων, scripting, βάσεις δεδομένων (κυρίως σε ΜΜΟ, αλλά και σε πιο κλασσικά παιχνίδια), networking, και φυσικά γενικό optimization (σε μεγαλύτερες ομάδες προγραμματιστών συχνά ένας προγραμματιστής αναλαμβάνει το optimization κώδικα που έχουν γράψει άλλοι).

Την demoscene πρωτογνώρισα το 1999 περίπου και το 2001 πήγα στο πρώτο μου demoparty, το Digital Nexus 2001 σαν μέλος των "Nasty Bugs", το demogroup που ιδρύσαμε μαζί με ένα άλλο παιδί, τον Μιχάλη "Optimus" Κάργα. Εκεί λάβαμε μέρος στον διαγωνισμό demo (όπου πρωτοείδαμε πόσο καλοί είναι οι ASD - κάτι που το γνώρισε πρόσφατα και ο υπόλοιπος demoκόσμος με την σειρά βραβείων που έχουν κερδίσει σε παγκόσμια demoparties και οργανώσεις της σκηνής) με το demo Atsou, το οποίο ήταν βασικά εφφέ που είχε γράψει ο Optimus σε μια μικρή VGA βιβλιοθήκη που είχα γράψει και του είχα στείλει λίγο παλιότερα, τα οποία μετά ένωσα σε ένα "demo" και χρησιμοποίησα μια εικόνα που είχα φτιάξει για ένα ελληνικό diskmag που σκόπευα να φτιάξω (μέχρι τότε ο Optimus χρησιμοποιούσε την γνωστή εικόνα απο τον τίτλο του Doom 1).

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

[SG] Στο Theseis θεωρείς τον εαυτό σου game engine developer ή game developer;

[Κώστας] Κατ'εμέ game developers είναι όλοι όσοι ασχολούνται για την ανάπτυξη ενός παιχνιδιού, είτε είναι προγραμματιστές, είτε καλλιτέχνες, είτε μουσικοί. Αν έχεις συνεισφέρει στην γενικότερη εμπειρία του παιχνιδιού, είσαι game developer. Προσωπικά, λοιπόν, θεωρώ τον εαυτό μου game developer :-)

[SG] Με τι εργαλεία δουλέψατε για τον σχεδιασμό των οπτικών στοιχείων ώστε να παράγετε το φοβερό αποτέλεσμα πιστής αντιγραφής αληθινών περιοχών (όπως αυτές που βλέπουμε στα screenshots στο Μοναστηράκι);

[Κώστας] Τα εργαλεία είναι διάφορα και τις λεπτομέρειες τις γνωρίζουν οι καλλιτέχνες της εταιρίας, αλλά γενικότερα χρησιμοποιούμε τα "standard" εργαλεία που χρησιμοποιούν οι εταιρίες του χώρου, όπως το 3D Studio και το Photoshop.

[SG] Χρησιμοποιείτε κάποια 3rd party engine ή έχετε σχεδιάσει εκ του μηδενός δική σας; Πώς γινόταν η κατανομή εργασιών ανάμεσα στα μέλη της ομάδας για τον σχεδιασμό της;

[Κώστας] Η μηχανή είναι εκ του μηδενός δική μας. Οι εργασίες κατανέμονται με έναν πολύ απλό τρόπο: έχουμε μια λίστα με τις εργασίες που πρέπει να γίνουν και όταν κάποιος τελειώσει σε ότι δουλεύει, επιλέγει την επόμενη. Έτσι ο καθένας δουλεύει σε αυτό που τον βολεύει περισσότερο. Φυσικά γίνεται κάθε φορά μια μικρή συννενόηση σχετικά με το τι περίπου θα ασχοληθεί ο καθένας.

Αυτά είναι εύκολα ζητήματα όταν οι προγραμματιστές είναι μόνο τρεις :-).

[SG] Ποιές τεχνολογίες έχετε κάνει integrate και πώς την έχετε προδιαγράψει για platform independence. Ποιες σχεδιαστικές επιλογές κάνατε για να το πετύχετε(Για παράδειγμα, endianess ανάμεσα σε XBOX και PC);

[Κώστας] Σχεδόν τα πάντα, με εξαίρεση κάποιες βασικές βιβλιοθήκες για φόρτωμα εικόνων, είναι γραμμένα εκ νέου απο εμάς. Η ανάπτυξη έγινε κυρίως σε PC, αλλά κάποιοι απο εμάς είχαμε (και έχουμε) πρόσβαση σε big endian μηχανήματα (βασικά κάποια παλιά μηχανήματα της SGI) και φροντίσαμε τα διάφορα κομμάτια της μηχανής να δουλεύουν ανεξαρτήτως endianess δοκιμάζοντας τα εκεί.

[SG] Ποιες τεχνολογίες χρησιμοποιήσατε για την ανάπτυξη του παιχνιδιού στον τομέα των γραφικών; Με τι κριτήρια τις επιλέξατε;


[Κώστας] Τα περισσότερα απο τα κομμάτια της μηχανής είναι ανεξάρτητα απο συγκεκριμένες τεχνολογίες. Τώρα χρησιμοποιούμε Direct3D 9, αλλά εύκολα η μηχανή μετατρέπεται έτσι ώστε να δουλέυει με OpenGL (για την ακρίβεια ήδη υπάρχει ένα μεγάλο μέρος ενός OpenGL implementation του backend για το σύστημα γραφικών).

[SG] Υπήρξε σημείο που χρειάστηκε να κατατεθεί όλη η ενέργεια της ομάδας για την επίλυση κάποιου προγραμματιστικού προβλήματος; Αν ναι τι φύσης ήταν αυτό (Memory Management, Multithreading,…) και τι αποκόμισες από αυτήν την εμπειρία;

[Κώστας] Όσο είμαι στην εταιρία, δεν έχει χρειαστεί κάτι τέτοιο. Συνήθως όλοι δουλεύουν σε όλα, χωρίς ιδιαίτερα προβλήματα.

[SG] Πώς χειριστήκατε την τεχνητή νοημοσύνη στο παιχνίδι; Χρησιμοποιήσατε κάποια scripting language;

[Κώστας] Χρησιμοποιούμε την γλώσσα UndeadScript που ξεκίνησα να σχεδιάζω πριν 4 χρόνια για την δική μου μηχανή, Undead, αλλά εξελίχθηκε σε αυτόνομη μηχανή για scripting. Μια και εγώ προσωπικά είμαι υπεύθυνος για το όλο θέμα με το scripting, προτίμησα να χρησιμοποιήσω μια βιβλιοθήκη που μου είναι πολύ οικεία :-).

Για όσους ενδιαφέρονται, η σελίδα της UndeadScript είναι http://www.slashstone.com/more/uscript (σημειώστε πως η σελίδα για την ώρα δεν παίζει σε IE6)

[SG] Έχεις μπροστά σου έναν νέο game developer. Τι θα τον συμβούλευες; Υπάρχει η τέλεια συνταγή σε αυτά που πρέπει να μάθει σχετικά με game development; Κοινώς, να μάθει γραφικά πρώτα και μετά να προχωρήσει στο game development ή θα μάθει γραφικά στην πορεία του game development;

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

Υπάρχει μια γενική παρεξήγηση στο game development όμως. Ένα παιχνίδι δεν αρχίζει και τελειώνει στα γραφικά, αλλά έχει πολύ περισσότερα πράγματα πίσω. Προσωπικά θα πρότεινα να ασχοληθεί κάποιος με την ανάπτυξη ενός απλού παιχνιδιού, όπως το pong, ώστε να κατανοήσει την ροή ενός παιχνιδιού.

Τα γραφικά, αν και είναι ένα απο τα σημαντικότερα κομμάτια του παιχνιδιού (ένα άλλο είναι το interaction -events, handlers, scripting, κλπ- που χωρίς αυτό έχεις απλά έναν renderer και τίποτα περισσότερο), αλλά είναι επίσης κι ένα κομμάτι που αλλάζει πολύ γρήγορα. Το 1996 με πάνω κάτω ίδιο τρόπο έφτιαχναν το interaction με σήμερα, αλλά το 90% των μεθόδων γραφικών έχει αλλάξει, με τα απολύτως βασικά να μένουν τα ίδια (και κανείς δεν εγγυάται πως ούτε αυτά δεν θα αλλάξουν στο μέλλον).

Αν κάποιος μόλις ξεκινάει να μαθαίνει game development, του προτείνω να μάθει τα απολύτως απαραίτητα όσο αφορά τα γραφικά, γιατί στην αρχή θα τον απασχολούν άλλα θέματα (υπάρχει κόσμος για παράδειγμα, που δυσκολεύεται στο timing). Στην αρχή θα πρέπει να ασχοληθεί με την ανάπτυξη απλών παιχνιδιών που θα τον απασχολήσουν το πολύ έναν μήνα, με τα πρώτα να μην τον απασχολήσουν πάνω απο μια εβδομάδα.

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

[SG] Τo XNA το έχεις χρησιμοποιήσει; Πώς σου έχει φανεί; Σε κάποιο μελλοντικό σας project, θα εξετάζατε την επιλογή της πλατφόρμας XNA, για την υλοποίησή του;

[Κώστας] Έχω δοκιμάσει την πρώτη έκδοση πριν λίγους μήνες, ανεξάρτητα απο την Track7 Games. Μου φάνηκε αρκετά ενδιαφέρον για σχετικά νέους στον χώρο, αλλά προσωπικά δεν θα το χρησιμοποιούσα αφού έχω αναπτύξει πολύ κώδικα σε άλλες γλώσσες για τον ίδιο σκοπό. Το μοναδικό δέλεαρ είναι το XBLA, το οποίο όμως δέχεται και σε πιο συμβατικές γλώσσες (C++). Για ένα "fun project", αν είχα XBox360 και αν δεν χρειαζόταν ετήσια συνδρομή, ίσως το χρησιμοποιούσα.

Όσο αφορά την Track7 Games, για την ώρα το Theseis είναι το σημαντικότερο project.

[SG] Μία ερώτηση φιλοσοφικού περιεχομένου τώρα: Είναι ο προγραμματισμός τέχνη;
Φυσικά! :-)

[Κώστας] Γνωρίζεις οτι οι ζωγράφοι της Ιταλικής Αναγέννησης χρησιμοποιούσαν μαθηματικά γραμμών για να αποδώσουν την προοπτική. Ο Leon Battista Alberti, ένας διάσημος καλλιτέχνης της εποχής, πρωτοχρησιμοποίησε την θεωρία του Ευκλείδη για τα παρόμοια τρίγωνα ώστε να αποδώσει μέσω μαθηματικών την προοπτική, την ίδια τεχνική που χρησιμοποιείται σήμερα για απόδοση τρισδιάστατων γραφικών στους υπολογιστές.

[SG] Γνωρίζουμε ότι είστε ένα βήμα πριν από την έκδοση του τίτλου που περιμένει  ολόκληρη η Ελληνική κοινότητα των gamers (και όχι μόνο), με αγωνία. Ευχαριστούμε, για τον χρόνο σου και τώρα μία τελευταία ερώτηση…. Πότε θα δούμε το Theseis στα ράφια :);

[Κώστας] ASAP! ;-)

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

 

Share
Posted: Παρασκευή, 18 Ιανουαρίου 2008 1:14 μμ από το μέλος Aggelos Biboudis
Δημοσίευση στην κατηγορία: ,

Σχόλια:

Χωρίς Σχόλια

Έχει απενεργοποιηθεί η προσθήκη σχολίων από ανώνυμα μέλη