Videogames Laboratory

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

Αρχείο για την κατηγορία ‘Προγραμματισμός’

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 σχόλια »

Οδηγίες χρήσης του 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 σχόλια »

Εισαγωγή στη C#/.NET μέρος 3ο

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

Είχαμε ξεκινήσει σε προηγούμενα άρθρα μια εισαγωγή στην C# και στο .NET ως υπόβαθρο για την μετέπειτα χρήση του XNA Game Studio. Αρκετούς μήνες μετά συνεχίζουμε την περιήγηση μας στο κόσμο της C#.

Στο προηγούμενο άρθρο ως γνωριμία με την C# και το περιβάλλον του Visual C# Express 2008, είχαμε δημιουργήσει ένα απλό πρόγραμμα που εμφάνιζε μια πρόταση σε ένα παράθυρο. Σήμερα συνεχίζουμε με το πώς αναπαριστά και διαχειρίζεται η C# δεδομένα. Σκοπός αυτού του άρθρου δεν είναι η πλήρης και εξονυχιστική παρουσίαση της γλώσσας, μιας και κάτι τέτοιο θα μπορούσε να γίνει μόνο στα πλαίσια ενός βιβλίου.

Σε γενικές γραμμές η C#, όσον αφορά τις μεταβλητές και τους τύπους δεδομένων της, δεν διαφέρει δραματικά από γλώσσες όπως η Java και η C++. Κάποιος με εμπειρία σε άλλες (σχετικά σύγχρονες) γλώσσες θα βρεθεί σε ένα οικείο περιβάλλον κατά την ανάπτυξη ενός προγράμματος σε C#. Ξεκινάμε με μια γρήγορη ανασκόπηση των τύπων δεδομένων που υποστηρίζει η C#.

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

Δημοσιεύθηκε στο .NET, C#, Προγραμματισμός | Leave a Comment »

Εισαγωγή στην OpenGL: μέρος 6o (πραγματικά τελευταίο)

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

Τελικά είχαμε λίγο χρόνο πριν τις εξετάσεις και κατάφερα να στριμώξω ακόμα ένα εργαστήριο για το μάθημα Γραφικά με Υπολογιστές, σχετικά με τα συστήματα σωματιδίων αυτή τη φορά. Μιας και τέλειωσε το εξάμηνο αυτό είναι όντως το τελευταίο μέρος της εισαγωγής στην OpenGL.



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

Δημοσιεύθηκε στο OpenGL, Προγραμματισμός | 2 σχόλια »