Videogames Laboratory

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

Αρχείο για την κατηγορία ‘Ανάπτυξη βιντεοπαιχνιδιών’

Δημιουργώντας το Arkanoid μέρος 1ο

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

Ήρθε η ώρα να ξεσκονίσουμε τα πληκτρολόγια μας και να αρχίσουμε τη δεύτερη σειρά tutorial ανάπτυξης βιντεοπαιχνιδιού. Αυτή τη φορά θα ασχοληθούμε με το πολύ γνωστό Arkanoid (Taito, 1986). Στο παιχνίδι αυτό ο παίκτης χειρίζεται μια ρακέτα και προσπαθεί να οδηγήσει μια μπάλα έτσι ώστε να καταστρέψει σειρές από «τουβλάκια» στο πάνω μέρος της οθόνης.

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

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

Videogames Laboratory Forum

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

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

Τα θέματα του forum δεν περιορίζονται στα αντικείμενα που παρουσιάζουμε στο Videogames Laboratory φυσικά, υπάρχει χώρος για συζητήσεις πάνω σε API γραφικών, αλγόριθμους και τεχνικές ανάπτυξης, μηχανές παιχνιδιών, ανάπτυξη τριδιάστατων μοντέλων και διδιάστατων χαρακτήρων/περιεχομένου, μουσική και ήχο στα παιχνίδια. Προγραμματιστές και καλλιτέχνες μπορούν εξίσου να συμβάλλουν στο forum αυτό, η στόχευση δεν είναι αποκλειστικά προγραμματιστική. Και, καθώς η συμμετοχή μεγαλώνει, ευελπιστώ στο μέλλον να προσθέσω και νέα θέματα, ανάλογα με τη ζήτηση.

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

Ας αρχίσει η συζήτηση πάνω στην ανάπτυξη βιντεοπαιχνιδιών λοιπόν!

Δημοσιεύθηκε στο Forum, Ανάπτυξη βιντεοπαιχνιδιών, Νέα | 3 σχόλια »

Ποια γλώσσα είναι η καλύτερη για τη ανάπτυξη παιχνιδιών;

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

Σε σχετικά forum, επικές είναι οι μάχες που διεξάγονται με αφορμή το ποια γλώσσα είναι η καλύτερη για την ανάπτυξη βιντεοπαιχνιδιών. Τελευταία, με την αυξανόμενη δημοτικότητα του XNA Game Studio, επίθεση δέχεται η C#/.NET, ως μια αργή γλώσσα που δεν μπορεί να υποστηρίξει «σοβαρά» παιχνίδια.

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

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

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

Squash the bugs

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

Η καρδιά του Αυγούστου, με το περισσότερο κόσμο στις παραλίες και το μυαλό όλων στις διακοπές, δεν είναι η κατάλληλη εποχή για θεωρίες και μεγάλα κείμενα. Γι αυτό σκέφτηκα να φτιάξω ένα απλό παιχνιδάκι, απλά για διασκέδαση. Βασιζόμενος στο Pong που αναπτύξαμε σε προηγούμενα tutorial ξεκίνησα να φτιάχνω το Squash. Για όσους δεν το ξέρουν, το Squash είναι ένα παιχνίδι με ρακέτες, σε ένα κλειστό δωμάτιο, στο οποίο και οι δύο παίκτες βρίσκονται στην ίδια πλευρά του γηπέδου.

Ήταν εύκολη η μετατροπή του Pong σε Squash, απλά μετέφερα τη ρακέτα του υπολογιστή στα αριστερά, έδωσα στις ρακέτες διαφορετικό χρώμα ώστε να ξεχωρίζουν και άλλαξα λίγο το τεστ σύγκρουσης της μπάλας με τη ρακέτα του υπολογιστή. Επιπλέον άλλαξα και τη λογική υπολογισμού σκορ.

Κάτι πρέπει να πήγε στραβά όμως κατά τη διαδικασία μετατροπής, γιατί όταν έτρεξα το παιχνίδι είδα αυτό:

Με τις γνώσεις που αποκτήσαμε στα προηγούμενα tutorial πάνω στο debugging, μήπως θα μπορούσατε να βρείτε τι πήγε στραβά; Αναζητάμε λάθη προγραμματιστικά και όχι σχεδιασμού. Το παιχνίδι βασίζεται στο Pong και έχει τις σχεδιαστικές ατέλειες του, δεν είναι όμως αυτό το πρόβλημα. Ο κώδικας του παιχνιδιού είναι διαθέσιμος στο Code Repository, σε zip μορφή προς το παρόν.

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

Καλό debugging!

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

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

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

Συνεχίζουμε την περιήγηση μας στις δυνατότητες για εκσφαλμάτωση (debugging) κώδικα που μας παρέχει η Visual C# 2008 Express Edition πάνω στην οποία βασίζεται το XNA Game Studio. Στο προηγούμενο tutorial είχαμε μιλήσει για τα breakpoints ως μηχανισμούς που μας επιτρέπουν να σταματάμε τη ροή του προγράμματος σε οποιοδήποτε σημείο και να βλέπουμε τις τιμές των μεταβλητών του. Σήμερα θα δούμε επιπλέον μηχανισμούς που μας παρέχει η C#/.NET για το σκοπό αυτό όπως το αντικείμενο Debug (με τη μέθοδο Assert, και την έξοδο στο παράθυρο Output) και τα Exceptions.
Διαβάστε την συνέχεια του άρθρου »

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

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