Videogames Laboratory

O συναρπαστικός κόσμος της ανάπτυξης βιντεοπαιχνιδιών

Αρχείο για Ιουλίου, 2009

Debugging κώδικα με τη Visual C# 2008 Express Edition (μέρος 1ο)

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 28, 2009

Πριν προχωρήσουμε σε περισσότερο σύνθετα παραδείγματα παιχνιδιών, καλό θα ήταν να κάνουμε σήμερα μια παύση και να αναφερθούμε λίγο σε μερικά εργαλεία που μας παρέχει το περιβάλλον της Visual C# 2008 EE, πάνω στο οποίο βασίζεται το XNA Game Studio, για debugging κώδικα. Είναι βασικό για κάθε προγραμματιστή να έχει καλή γνώση του περιβάλλοντος στο οποίο αναπτύσσει μια εφαρμογή και ιδιαίτερα την υποστήριξη για debugging που του προσφέρει. Χρόνος που δαπανάται για τον εντοπισμό ενός σφάλματος, πολλά από τα οποία είναι ανόητες παραλήψεις εκ μέρους του προγραμματιστή (πιστέψτε με, έχω μεγάλη εμπειρία σε αυτό!), είναι χρόνος που αφαιρείται από την ανάπτυξη κώδικα. Οπότε ο χρόνος που σπαταλάμε στο debugging πρέπει να είναι το δυνατόν σύντομος.

Διαβάστε την συνέχεια του άρθρου »

Δημοσιεύθηκε στο .NET, C#, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 2 σχόλια »

Game Career Guide από το περιοδικό Game Developer

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 24, 2009

Το Game Developer είναι από τα πιο δημοφιλή περιοδικά στο χώρο της βιομηχανίας ανάπτυξης βιντεοπαιχνιδιών, με νέα, συνεντεύξεις από άτομα του χώρου, postmortem παιχνιδιών, παρουσίαση νέων εργαλείων και τεχνικών κλπ (αν δεν είστε συνδρομητές θα ήταν καλό να γίνετε, μπορείτε να το λαμβάνετε μέσω Internet σε ηλεκτρονική μορφή με ελάχιστα δολάρια).

Αυτό το μήνα διαθέτει δωρεάν ένα οδηγό καριέρας με συμβουλές για άτομα που ενδιαφέρονται να ασχοληθούν με την βιομηχανία ανάπτυξης βιντεοπαιχνιδιών. Μπορείτε να τον διαβάσετε on-line ή και να τον κατεβάσετε σε pdf από τη διεύθυνση:

http://gamedeveloper.texterity.com/gamedeveloper/2009fall/


Καλή ανάγνωση!

Δημοσιεύθηκε στο Ανάπτυξη βιντεοπαιχνιδιών, Βιομηχανία βιντεοπαιχνιδιών | Leave a Comment »

Οδηγίες χρήσης του Code Repository

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 23, 2009

O darklynx ετοίμασε τις παρακάτω αναλυτικές οδηγίες για όσους επιθυμούν να χρησιμοποιήσουν code repository μέσω SVN για να βελτιώσουν και να επεκτείνουν το κώδικα των παραδειγμάτων των tutorials. Τον ευχαριστώ ιδιαίτερα για αυτό και για την γενικότερη προσπάθεια που έχει καταβάλει στο στήσιμο του project αυτού.

Θέλω να επισημάνω ότι αν κάποιος αναγνώστης δεν επιθυμεί να εμπλακεί στην διαδικασία αυτή, μπορεί και πάλι να βρει σε zip το κώδικα του κάθε tutorial στην ιστοσελίδα του Code Repository.

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

Θυμίζω ότι για να ανεβάσετε το δικό σας κώδικα στο Repository, πρέπει να έχετε δημιουργήσει ένα λογαριασμό στο Google (gmail) και να μας στείλετε το google email μαζί με το όνομα σας μέσω της φόρμας επικοινωνίας του blog.

Επίσης καλό θα ήταν να ενημερώνετε το σχετικό post του Videogames Laboratory Forum με ότι αλλαγές και προσθήκες έχετε κάνει στο Code Repository. Με τον τρόπο αυτό θα μπορούν οι ενδιαφερόμενοι να πληροφορηθούν γρήγορα για την κίνηση στο Repository.

Ακολουθούν λοιπόν οι οδηγίες χρήσης του Code Repository μέσω SVN:

Διαβάστε την συνέχεια του άρθρου »

Δημοσιεύθηκε στο Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 15 σχόλια »

Hello Pong: game over (μέρος 5ο)

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 23, 2009

Σήμερα θα ολοκληρώσουμε το Pong και την εισαγωγική σειρά tutorials αυτή, προσθέτοντας ηχητικά εφέ στο παιχνίδι και επιπλέον θα κάνουμε μια προσπάθεια να βελτιώσουμε λίγο την διαδικασία παιχνιδιού. Θα προσθέσουμε τρία ηχητικά εφέ (συμπεριλαμβάνονται στο αρχείο .zip του κώδικα), έναν ήχο σύγκρουσης που θα αναπαράγεται όταν η μπάλα αναπηδήσει από κάποια ρακέτα, έναν ήχο για όταν χάνει ο παίκτης ένα βαθμό (κερδίζει δηλαδή ο αντίπαλος-υπολογιστής) και έναν ήχο για όταν κερδίζει ο παίκτης ένα βαθμό.

Χρησιμοποιούμε ως βάση το κώδικα του 4ου μέρους του tutorial. Όπως κάθε αρχείο περιεχόμενου έτσι και τα ηχητικά εφέ (αρχεία wav ή mp3) θα πρέπει να προστεθούν στο project Content με το γνωστό πλέον τρόπο (δεξί κλικ πάνω στο όνομα του project, και από το μενού Add/Existing Item και επιλέγουμε τα 3 αρχεία ήχου). Αν όλα πήγαν καλά τα 3 αρχεία θα εμφανιστούν κάτω από το project Content.

Διαβάστε την συνέχεια του άρθρου »

Δημοσιεύθηκε στο C#, Pong, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 15 σχόλια »

Κώδικας για τα παιχνίδια του Videogames Laboratory

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 22, 2009

Στα πλαίσια των tutorial που δημοσιεύονται στο Videogames Laboratory δημιουργούμε μερικά απλά demo-παιχνίδια για επίδειξη των βασικών αρχών ανάπτυξης βιντεοπαιχνιδιών. Τα παιχνίδια αυτά, λόγω της πίεσης χρόνου αλλά και των μαθησιακών στόχων του blog δεν είναι πλήρη και βελτιστοποιημένα, ούτε περιέχουν τα γραφικά και το περιεχόμενο που τους αρμόζει.

Στο σημείο αυτό μπορούν να βοηθήσουν οι αναγνώστες του blog, με το να βελτιώνουν και να επεκτείνουν τα παιχνίδια αυτά με νέες λειτουργίες, λογική και περιεχόμενο έτσι ώστε να τα κάνουν περισσότερο λειτουργικά, ελκυστικά ή και ψυχαγωγικά. Ο αρχικός κώδικας παιχνιδιού συνοδεύει κάθε tutorial και ο καθένας μπορεί να τον αποκτήσει και να δουλέψει πάνω σε αυτό.

Για να μοιραστείτε το κώδικα που αναπτύσσετε και να βοηθήσετε και άλλους αναγνώστες, μετά από πρόταση του darklynx, δημιουργήθηκε ένας ειδικός χώρος, μια βάση δεδομένων για κώδικα (code repository) ο οποίος θα περιέχει όλο το κώδικα που αναπτύσσεται στα πλαίσια των tutorial του Videogames Laboratory από τους αναγνώστες του blog.

Για να ανεβάσετε κώδικα στο code repository θα πρέπει να ανοίξετε ένα λογαριασμό στο Google (αν δεν έχετε ήδη). Στην συνέχεια μπορείτε μέσω της φόρμας επικοινωνίας του blog να δηλώσετε συμμετοχή δίνοντας το google email σας και το όνομα σας. Έπειτα (και αφότου ο administrator της βάσης σας προσθέσει στη λίστα) θα μπορείτε να ανεβάζετε ελεύθερα το κώδικα στο repository και να το μοιραστείτε με άλλους χρήστες.

Θεωρώ σημαντική την συμμετοχή σας στην προσπάθεια αυτή για 2 λόγους:

Α) δεν υπάρχει καλύτερος (και σίγουρα πιο ευχάριστος) τρόπος να μάθεις προγραμματισμό από το να αναπτύσσεις βιντεοπαιχνίδια.

Β) είναι καιρός να δημιουργηθεί μια ενεργή κοινότητα (ερασιτεχνών αρχικά) δημιουργών βιντεοπαιχνιδιών στην Ελλάδα.

Ευελπιστώ το code repository να γίνει κόμβος σε μια τέτοια προσπάθεια. Αργότερα θα μπορείτε να ανεβάζετε εντελώς δικές σας δημιουργίες και να τις μοιράζεστε με τους υπόλοιπους δημιουργούς/παίκτες.

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

Γνωρίζω ότι πολλά άτομα ενδιαφέρονται για την ανάπτυξη βιντεοπαιχνιδιών στην Ελλάδα, να η ευκαιρία να το δείξουν έμπρακτα! Περιμένουμε τις συμμετοχές σας.

Videogames Laboratory Code Repository

Δημοσιεύθηκε στο Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 7 σχόλια »

Hello Pong: μέρος 4ο

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 17, 2009

Το ενδιαφέρον για την σειρά άρθρων πάνω στην ανάπτυξη ενός παιχνιδιού με τη χρήση του XNA Game Studio πέφτει με εκθετικό ρυθμό! Ελπίζω να οφείλονται οι διακοπές του καλοκαιριού για αυτό και όχι τα άρθρα τα ίδια! J Πάντως λαμβάνω πολύ εύστοχα και κριτικά σχόλια στα άρθρα και αυτό με ευχαριστεί πολύ.

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

Διαβάστε την συνέχεια του άρθρου »

Δημοσιεύθηκε στο C#, Pong, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 20 σχόλια »

Hello Pong: μέρος 3ο

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 13, 2009

Έχουμε θέσει μέχρι στιγμής τα θεμέλια για την δημιουργία του παιχνιδιού Pong με την βοήθεια του XNA Game Studio. Έχουμε αναγνωρίσει τα αντικείμενα του παιχνιδιού (ρακέτες και μπάλα) και τις μεταξύ τους αλληλεπιδράσεις, και τα έχουμε απεικονίσει στην οθόνη στην σωστή τους θέση ως sprites με τη χρήση ενός SpriteBatch. Σήμερα θα εισάγουμε κίνηση και αλληλεπίδραση στο παιχνίδι. Το κώδικα που έχουμε αναπτύξει μέχρι τώρα μπορείτε να τον βρείτε εδώ.

Όπως αναφέρθηκε και στα σχόλια του προηγούμενου άρθρου, το spritebatch δεν είναι ο μοναδικός τρόπος με τον οποίο μπορώ να απεικονίσω sprites στην οθόνη, αλλά είναι σίγουρα ο πιο απλός και πολύ αποδοτικός τρόπος. Τα sprites είναι απλές οντότητες που δεν επηρεάζονται από τριδιάστατους μετασχηματισμούς οπότε στις περισσότερες περιπτώσεις μπορούμε να αποφύγουμε τη χρήση vertex και pixel shaders για την απεικόνιση τους.

Διαβάστε την συνέχεια του άρθρου »

Δημοσιεύθηκε στο C#, Pong, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 4 σχόλια »

Hello Pong: Φτιάχνοντας ένα παιχνίδι σε 10 λεπτά, μέρος 2ο

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 6, 2009

Στο προηγούμενο άρθρο περιγράψαμε το σκελετό παιχνιδιού που φτιάχνει το XNA Game Studio όταν δημιουργήσουμε ένα καινούργιο project. Ο σκελετός αυτός περιέχει τις βασικές μεθόδους που θα χρησιμοποιήσουμε στο παιχνίδι, και είναι δυνατόν να τρέξει, παράγοντας μια ωραία, μπλε οθόνη. Σήμερα θα βασιστούμε στο σκελετό αυτό για να φτιάξουμε το Pong, ένα απλό παιχνίδι τένις.

Διαβάστε την συνέχεια του άρθρου »

Δημοσιεύθηκε στο C#, Pong, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 7 σχόλια »

Hello Pong: φτιάχνοντας ένα παιχνίδι σε 10 λεπτά, μέρος 1ο

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 3, 2009

Συνειδητοποίησα το εξής: σκοπός του blog αυτού είναι να δείξει μερικά πράγματα σχετικά με την ανάπτυξη βιντεοπαιχνιδιών (και μερικές αρχές τριδιάστατων γραφικών) και όχι να διδάξει προγραμματισμό ή κάποια γλώσσα προγραμματισμού. Για το λόγο αυτό, θα αναστρέψω την μέχρι τώρα προσέγγιση μου, εστιάζοντας στη δημιουργία παιχνιδιών αντί της εκμάθησης C#. Θεωρώ ότι οι αναγνώστες του blog έχουν κάποια γνώση σχετικά με το προγραμματισμό γενικότερα, αρκετή για να ξεκινήσουμε την ανάπτυξη βιντεοπαιχνιδιών. Ό,τι εξειδικευμένη γνώση χρειάζεται πάνω στην C# θα την εξηγώ στην πορεία.

Οπότε σήμερα θα πάρουμε μια βαθιά ανάσα και θα κάνουμε μια βουτιά στα βαθιά φτιάχνοντας ένα πλήρες παιχνίδι σε XNA Game Studio. Στο κλασσικό προγραμματισμό, συνηθίζεται το πρώτο πρόγραμμα που αναπτύσσει κάποιος σε μια γλώσσα προγραμματισμού να τυπώνει την φράση “Hello World!” στην οθόνη. Στο κόσμο της ανάπτυξης βιντεοπαιχνιδιών (ιδιαίτερα με το XNA Game Studio), το αντίστοιχο πρώτο παιχνίδι είναι το Pong (που είναι και το παιχνίδι που ξεκίνησε την βιομηχανία βιντεοπαιχνιδιών).

Διαβάστε την συνέχεια του άρθρου »

Δημοσιεύθηκε στο C#, Pong, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 5 σχόλια »

Σχόλια και χρήσιμα links

Δημοσιεύθηκε από Κώστας Αναγνώστου στο Ιουλίου 2, 2009

Αν και αρκετά άτομα διάβασαν τα άρθρα για την εισαγωγή στην C#/XNA, παρόλα αυτά δεν έλαβα κανένα σχολιασμό πάνω σε αυτά. Πράγμα που σημαίνει ότι ο τρόπος γραφής και το επίπεδο των άρθρων ήταν είτε α) πολύ απλοϊκά και έκαναν του αναγνώστες να βαρεθούν β) πολύ δύσκολα οπότε έκαναν τους αναγνώστες να μπερδευτούν γ) ικανοποιητικά οπότε τους ωφέλησαν σε κάτι.

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

Επίσης μπορείτε να προτείνετε θέματα και μελλοντικά άρθρα. Τι θα θέλατε να δείτε στο blog αυτό;

Και για να πούμε και κάτι σχετικό με την ανάπτυξη βιντεοπαιχνιδιών, είμαι της άποψης ότι ο δημιουργός βιντεοπαιχνιδιών δεν πρέπει μόνο να εστιάζει μόνο στο προγραμματισμό τους, αλλά να έχει μια πολύ καλή γνώση της βιομηχανίας ανάπτυξης και των τεχνολογιών που αναπτύσσουν και χρησιμοποιούν οι εταιρίες. Πρέπει δηλαδή να αναζητά άρθρα με postportems παιχνιδιών για να δει τι προβλήματα και εμπόδια συναντούν οι εταιρίες, να διαβάζει τεχνικές παρουσιάσεις παιχνιδιών. Όπως για παράδειγμα τη πολύ καλή παρουσίαση του Red Faction: Guerrilla (μέρος 1, μέρος 2) ή Mass Effect 2. Ή τη σειρά άρθρων της Guardian για την φυσική στα παιχνίδια. Γνωστοί δημιουργοί παρέχουν πολλές φορές εκ των έσω γνώση για παιχνίδια.

Πολύ καλό περιοδικό που δίνει μια εκ των έσω οπτική της βιομηχανίας είναι το Game Developer. Μπορείτε να γραφτείτε συνδρομητές και να το λαμβάνετε σε pdf μορφή με ελάχιστα δολάρια. Το Edge είναι ένα περιοδικό που θα πρέπει να διαβάζει ο δημιουργός βιντεοπαιχνιδιών, έστω την ιστοσελίδα του. Το Gamasutra επίσης, ιδιαίτερα τα features και τα expert blogs του.

Ο δημιουργός βιντεοπαιχνιδιών δεν ζει σε γυάλα, πρέπει να είναι ενημερωμένος για τις εξελίξεις και για το τι συμβαίνει της βιομηχανία, ιδίως αν έχει ποτέ βλέψεις να ασχοληθεί επαγγελματικά με αυτή. Tώρα με το Internet, αυτό είναι ευκολότερο από ποτέ!

Δημοσιεύθηκε στο Ανάπτυξη βιντεοπαιχνιδιών, Βιομηχανία βιντεοπαιχνιδιών, Γενικά | 4 σχόλια »