Videogames Laboratory

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

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

Σχεδιασμός βιντεοπαιχνιδιών

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

Λαμβάνω συχνά εκδηλώσεις ενδιαφέροντος από άτομα με γνώσεις στο προγραμματισμό που θα ήθελαν να λάβουν μέρος στην ανάπτυξη ενός παιχνιδιού. Το ίδιο συνέβη για το διαγωνισμό Imagine Cup. Δυστυχώς όμως ο προγραμματισμός και μόνο δεν αρκεί για να φτιάξεις ένα παιχνίδι. Πρέπει καταρχάς να υπάρχει μια καλή ιδέα για παιχνίδι πάνω στην οποία θα σχεδιαστεί το σύστημα του παιχνιδιού. Ο σχεδιασμός ενός παιχνιδιού δεν έχει σχέση με το προγραμματισμό του, ούτε καν με την δημιουργία του περιεχομένου του (γραφικά, ήχος, κίνηση κλπ).
Διαβάστε την συνέχεια του άρθρου »

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

Senses: Πρόσκληση για βελτίωση παιχνιδιού

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

Πριν λίγες μέρες ανέβηκε στο Videogames Laboratory forum ένα post για το παιχνίδι Senses του Σταύρου Κοκκινέα. Σύμφωνα με το δημιουργό του, το concept του παιχνιδιού είναι το εξής: «Ξεκινάτε σε ένα δωμάτιο όπου πρέπει να “φάτε” όλες τις πληροφορίες που υπάρχουν γύρω σας. Στη συνέχεια παίζετε τις 5 αισθήσεις (Αφή, Όσφρηση, Γεύση, Όραση και Ακοή) μέχρι να φτάσετε στο τελευταίο επίπεδο όπου μπορείτε πλέον να νιώσετε (Feel).». Είναι ένα ενδιαφέρον, experimental, παιχνίδι που κάνει μια προσπάθεια μίξης αφήγησης και δράσης. Έχει μερικά προβλήματα στο χειρισμό, που οφείλονται σε ένα μεγάλο βαθμό στην πλατφόρμα GameMaker στο οποίο κατασκευάστηκε, και ο βαθμός δυσκολίας του ίσως αποτρέψει μερικούς (όπως και ο χρόνος να ξεκινήσει το παιχνίδι!).

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

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

Β) Ο Σταύρος δεν έχει γνώσεις προγραμματισμού, για το λόγο αυτό βασίστηκε στη πλατφόρμα GameMaker. Γνωρίζω ότι το Videogames Laboratory παρακολουθούν πολλοί προγραμματιστές, που ίσως θα ενδιαφέρονταν να τον βοηθήσουν να αναπτύξει το ίδιο παιχνίδι σε κάποιο καλύτερο περιβάλλον. Το ΧΝΑ Game Studio είναι κατάλληλο για αυτό το παιχνίδι και οι γνώσεις που έχουμε αποκτήσει μέχρι στιγμής στα tutorial του blog είναι υπερ-αρκετές. Το Flash είναι μια άλλη πιθανή πλατφόρμα. Φυσικά ο προγραμματιστής είναι ελεύθερος να χρησιμοποιήσει οποιοδήποτε περιβάλλον με το οποίο νιώθει μεγαλύτερη οικειότητα.

Ο ενδιαφερόμενος/ενδιαφερόμενη ας επικοινωνήσει μαζί μου μέσω της φόρμας επικοινωνίας. Με το Imagine Cup δεν υπήρξε αποτέλεσμα, μόνο από μερικοί προγραμματιστές δήλωσαν ενδιαφέρον. Ίσως είναι καιρός να αρχίσουμε τη συνεργασία μεταξύ προγραμματιστών-καλλιτεχνών από μερικά απλά παιχνίδια (2-3 δημιουργών) και να προχωρήσουμε από εκεί. Η περίπτωση του Senses είναι μια καλή ευκαιρία.

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

Διαλέξεις μαθήματος «Τεχνολογίες Ψυχαγωγικού Λογισμικού»

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

Πριν λίγο καιρό ανέβασα στην ιστοσελίδα του βιβλίου «Βιντεοπαιχνίδια: Βιομηχανία και Ανάπτυξη», ως συνοδευτικό υλικό, τις παρουσιάσεις (σε Powerpoint) που χρησιμοποιώ για τις διαλέξεις του μαθήματος «Τεχνολογίες Ψυχαγωγικού Λογισμικού» στο Τμήμα Πληροφορικής του Ιονίου Πανεπιστημίου.

Οι διαλέξεις καλύπτουν θέματα όπως η Ιστορία και εξέλιξη των βιντεοπαιχνιδιών, η βιομηχανία βιντεοπαιχνιδιών σήμερα, τα είδη των παιχνιδιών, το προφίλ του χρήστη, διαθέσιμες πλατφόρμες παιχνιδιών, επιχειρηματικά μοντέλα και μάρκετινγκ, Internet και ψυχαγωγικό λογισμικό, διαδικτυακά παιχνίδια πολλών χρηστών (MMOGs), η οικονομία και παραοικονομία τους, εναλλακτικές εφαρμογές βιντεοπαιχνιδιών (serious games), ο κοινωνικός αντίκτυπος, θέματα εθισμού και βίας στα βιντεοπαιχνίδια. Επίσης παρουσιάζουν αρχές θεωρίας σχεδιασμού βιντεοπαιχνιδιών, τις φάσεις ανάπτυξης, την ομάδα ανάπτυξης και τις ειδικότητες που απαιτούνται για την ανάπτυξη βιντεοπαιχνιδιών. Τέλος εξετάζεται ο προγραμματισμός ψυχαγωγικού λογισμικού, διαθέσιμα εργαλεία, διαφορές για κάθε πλατφόρμα, οι μηχανές παιχνιδιών, η ανάπτυξη και διαχείριση ψηφιακού περιεχομένου.

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

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

Arkanoid: Σχεδιασμός πίστας

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

Κοιτάζοντας το πότε ανέβασα το τελευταίο άρθρο στο blog διαπιστώνω ότι έχει περάσει πάνω από ένας μήνας! Ακόμα περισσότερο έχουμε να ασχοληθούμε με το Arkanoid. Ήταν δύσκολες οι προηγούμενες εβδομάδες στο Πανεπιστήμιο με τις προθεσμίες για προτάσεις χρηματοδότησης και άρθρα σε περιοδικά να διαδέχονται η μία την άλλη. Και ενώ είχα γράψει το κώδικα για το σχεδιασμό πίστας στο Arkanoid δεν έβρισκα το χρόνο να γράψω το κείμενο. Τώρα όμως χαλάρωσαν λίγο τα πράγματα και επανερχόμαστε στην ενεργό δράση!

Είχαμε αφήσει το Arkanoid σε μια σχετικά πλήρη μορφή με ανίχνευση συγκρούσεων, κίνηση μπάλας και ρακέτας, καταγραφή σκορ και απώλειας ζωής του παίκτη. Επιπλέον είχαμε υλοποιήσει game state management με τις διάφορες οθόνες και καταστάσεις του παιχνιδιού (εισαγωγή, παιχνίδι, παύση, νίκη και αποτυχία παίκτη). Αυτό που λείπει είναι η δυνατότητα να σχεδιάζουμε τη πίστα του παιχνιδιού με περισσότερο φιλικό και εύχρηστο τρόπο, καθώς και η προσθήκη πολλών επιπέδων στο παιχνίδι.
Διαβάστε την συνέχεια του άρθρου »

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

Προγραμματίστε το δικό σας παιχνίδι

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

Ο αναγνώστης του Videogames Laboratory konsnos έγραψε ένα πολύ καλό και πολύ επεξηγηματικό άρθρο στο PC WORLD σχετικά με την ανάπτυξη του Pong, βασισμένος στο κώδικα του παιχνιδιού που αναπτύξαμε στη πρώτη σειρά tutorial. Αν για κάποιο λόγο σας φάνηκαν τα tutorial εκείνα δύσκολα ή δυσνόητα αξίζει να ρίξετε μια ματιά στο άρθρο αυτό καθώς ο συγγραφέας παρουσιάζει το θέμα ακόμα πιο απλά και κατανοητά.

Μπορείτε να βρείτε το σχετικό άρθρο εδώ.

ΥΓ: Υπάρχουν άλλες προτάσεις για το Videogames Laboratory Challenge #2;

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

Videogames Laboratory Challenge #2

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

Η περίοδος αυτή αποδεικνύεται η πιο πολυάσχολη του χρόνου με τις προθεσμίες αιτήσεων για χρηματοδότηση έρευνας στο Πανεπιστήμιο να πλησιάζουν ταχύτατα. Αυτό έχει αντίκτυπο και στο blog μιας ο διαθέσιμος ελεύθερος χρόνος μου έχει συρρικνωθεί. Μέχρι να βρω λοιπόν το χρόνο να ολοκληρώσω τη σειρά tutorial για το Arkanoid, σκέφτηκα να εμπλέξω τους αναγνώστες του blog με ένα Videogames Laboratory Challenge. Στην ουσία είναι το δεύτερο challenge μιας και το πρώτο αφορούσε την εκσφαλμάτωση ενός παιχνιδιού (και για το οποίο έλαβα ελάχιστες απαντήσεις δυστυχώς).

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

            for (int j = 0; j < numOfRows; j++)
            {
                for (int i = 0; i < bricksPerRow; i++)
                {
                    Rectangle rect = new Rectangle(i * (brickWidth + brickSpacing),
                                                   rowStart + j * (brickHeight + brickSpacing),
                                                   brickWidth, brickHeight);
                    bricks[j * bricksPerRow + i] = new Brick(rect, Color.Red, whiteTile);
                    numOfVisibleBricks++;
                }
            }

Σε ένα for-loop δηλαδή τοποθετούμε τα τουβλάκια, ανά τακτά διαστήματα, σε γραμμές και στήλες. Αυτός το τρόπος σχεδιασμού πίστας (level design) είναι πολύ δύσχρηστος και επιβάλλει στο σχεδιαστή της πίστας να συνεργάζεται άμεσα με το προγραμματιστή έτσι ώστε να του υποδεικνύει τι αλλαγές πρέπει να γίνουν στο σχέδιο της πίστας και πού (και να γίνεται πάλι compile ο κώδικας με κάθε αλλαγή). Επιπλέον είναι αρκετά δύσκολο να αλλάξεις το σχέδιο της πίστας σε κάτι άλλο από γραμμές με τουβλάκια. Από την άλλη είναι επιθυμητό ο σχεδιαστής να μην ασχολείται καθόλου με το κώδικα του παιχνιδιού, να σχεδιάζει με κάποιο τρόπο τη πίστα και να μεταφέρει το αποτέλεσμα στο προγραμματιστή για απεικόνιση (data-driven development), όπως γίνεται άλλωστε και στη βιομηχανία ανάπτυξης βιντεοπαιχνιδιών.

Η πρόκληση λοιπόν αφορά το εξής:

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

Αν ο τρόπος που προτείνετε είναι «καλύτερος» από αυτόν που έχω εγώ υπόψη (και σε λογικό επίπεδο δυσκολίας για ένα εισαγωγικό tutorial), θα γίνει υλοποίηση αυτού στο επόμενο tutorial (με τιμές και δάφνες στο άτομο που το πρότεινε). Σε κάθε περίπτωση μπορείτε και κάνετε την υλοποίηση οι ίδιοι και να ανεβάσετε το κώδικα στο Code Repository. Απορίες και διευκρινίσεις στα σχόλια του post.

Περιμένουμε τις συμμετοχές σας!

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

Διαγωνισμός Imagine Cup 2010

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

Ξεκίνησε και φέτος ο διεθνής διαγωνισμός της Microsoft Imagine Cup ο οποίος έχει 4 κατηγορίες: Ανάπτυξη Λογισμικού, Προγραμματισμό Βιντεοπαιχνιδιών, Διαχείριση Συστημάτων και Δικτύων και Δημιουργία Ψηφιακού Βίντεο. Σύμφωνα με τη Microsoft, σκοπός του διαγωνισμού είναι να βοηθήσει τους φοιτητές να βελτιώσουν τον κόσμο μέσω τεχνολογικών λύσεων. Φέτος είναι η έβδομη χρονιά του διαγωνισμού.

Κάθε χρονιά ο διαγωνισμός έχει διαφορετικό θέμα, φέτος είναι: «Φανταστείτε έναν κόσμο όπου η τεχνολογία μας βοηθάει να λύσουμε τα μεγαλύτερα προβλήματα που αντιμετωπίζει ο κόσμος μας σήμερα». Τα Ηνωμένα Έθνη έχουν προσδιορίσει τα προβλήματα αυτά σαν τους «Στόχους της Χιλιετίας». Περισσότερες πληροφορίες σχετικά με τους στόχους της χιλιετίας, μπορείτε να βρείτε εδώ.

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

Οι κατηγορίες του διαγωνισμού είναι 4:

  • Software Design – Σχεδίαση/κατασκευή λογισμικού
  • Digital Media – Δημιουργία Animation/video
  • Game Design – προγραμματισμός παιχνιδιού
  • IT Challenge – Ανάπτυξη IT συστημάτων

Ειδικότερα, στόχος της κατηγορίας Game Design είναι η ανάπτυξη ενός παιχνιδιού χρησιμοποιώντας τόσο το XNA Game Studio όσο και το Visual Studio. Είναι μια ευκαιρία για τους συμμετέχοντες που ασχολούνται με game development να κατασκευάσουν ένα παιχνίδι το οποίο συμβάλλει στην ενημέρωση του πληθυσμού για τα προβλήματα του πλανήτη. Μπορείτε να δείτε παραδείγματα τέτοιων παιχνιδιών, τα επονομαζόμενα serious games εδώ.

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

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

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

Arkanoid: Game State Management μέρος 2ο

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

Στο προηγούμενο tutorial σχεδιάσαμε το game state management του Arkanoid και το υλοποιήσαμε για την διαδικασία Update του παιχνιδιού. Σήμερα θα το υλοποιήσουμε και για την διαδικασία Draw, συμπληρώνοντας παράλληλα το παιχνίδι με Εισαγωγική οθόνη, λειτουργία Pause και οθόνη επιτυχίας ή αποτυχίας του παίκτη.
Διαβάστε την συνέχεια του άρθρου »

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

Arkanoid: Game State Management

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

Μέχρι στιγμής στο παιχνίδι Arkanoid (μέρος 1, μέρος 2) έχουμε υλοποιήσει την κλάση που εκπροσωπεί τα τουβλάκια (Brick) έχουμε τοποθετήσει τα τουβλάκια στην σωστή θέση, έχουμε υλοποιήσει κίνηση της μπάλας και της ρακέτας, συγκρούσεις μεταξύ των αντικειμένων του παιχνιδιού και αυξάνουμε και το σκορ του παίκτη. Το παιχνίδι είναι λειτουργικό, μπορεί να ελέγξει ο παίκτης τη μπάλα και να καταστρέψει τα τουβλάκια, αλλά δεν έχουμε ορίσει το πότε νικά και πότε χάνει ο παίκτης έτσι ώστε να σταματάμε το παιχνίδι και να του εμφανίζουμε το ανάλογο μήνυμα. Για να το κάνουμε λίγο πιο εύκολο και κομψό αυτό, θα κάνουμε ένα βήμα πίσω και θα υλοποιήσουμε στο παιχνίδι κάτι που ονομάζεται game state management (διαχείριση καταστάσεων παιχνιδιού;).
Διαβάστε την συνέχεια του άρθρου »

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

Arkanoid μέρος 2ο

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

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

Στο σημερινό άρθρο, για να το κρατήσουμε σε λογικό μέγεθος, θα προσθέσουμε στο παιχνίδι μόνο κίνηση της μπάλας και της ρακέτας, ανίχνευση συγκρούσεων (collision detection) και σκορ παίκτη.
Διαβάστε την συνέχεια του άρθρου »

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