Δημοσιεύθηκε από Κώστας Αναγνώστου στο Νοεμβρίου 5, 2009
Ο αναγνώστης του Videogames Laboratory konsnos έγραψε ένα πολύ καλό και πολύ επεξηγηματικό άρθρο στο PC WORLD σχετικά με την ανάπτυξη του Pong, βασισμένος στο κώδικα του παιχνιδιού που αναπτύξαμε στη πρώτη σειρά tutorial. Αν για κάποιο λόγο σας φάνηκαν τα tutorial εκείνα δύσκολα ή δυσνόητα αξίζει να ρίξετε μια ματιά στο άρθρο αυτό καθώς ο συγγραφέας παρουσιάζει το θέμα ακόμα πιο απλά και κατανοητά.
Μπορείτε να βρείτε το σχετικό άρθρο εδώ.
ΥΓ: Υπάρχουν άλλες προτάσεις για το Videogames Laboratory Challenge #2;
Δημοσιεύθηκε στο C#, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Στο Τύπο | 1 σχόλιο »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Οκτωβρίου 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 σχόλια »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Οκτωβρίου 20, 2009
Ξεκίνησε και φέτος ο διεθνής διαγωνισμός της Microsoft Imagine Cup ο οποίος έχει 4 κατηγορίες: Ανάπτυξη Λογισμικού, Προγραμματισμό Βιντεοπαιχνιδιών, Διαχείριση Συστημάτων και Δικτύων και Δημιουργία Ψηφιακού Βίντεο. Σύμφωνα με τη Microsoft, σκοπός του διαγωνισμού είναι να βοηθήσει τους φοιτητές να βελτιώσουν τον κόσμο μέσω τεχνολογικών λύσεων. Φέτος είναι η έβδομη χρονιά του διαγωνισμού.
Κάθε χρονιά ο διαγωνισμός έχει διαφορετικό θέμα, φέτος είναι: «Φανταστείτε έναν κόσμο όπου η τεχνολογία μας βοηθάει να λύσουμε τα μεγαλύτερα προβλήματα που αντιμετωπίζει ο κόσμος μας σήμερα». Τα Ηνωμένα Έθνη έχουν προσδιορίσει τα προβλήματα αυτά σαν τους «Στόχους της Χιλιετίας». Περισσότερες πληροφορίες σχετικά με τους στόχους της χιλιετίας, μπορείτε να βρείτε εδώ.
Η χώρα μας έχει πετύχει στο παρελθόν σημαντικές διακρίσεις στο διαγωνισμό, με ομάδες να κατακτούν ακόμα και τη δεύτερη θέση στους παγκόσμιους τελικούς, οι οποίοι φέτος θα διεξαχθούν στην Πολωνία.
Οι κατηγορίες του διαγωνισμού είναι 4:
Ειδικότερα, στόχος της κατηγορίας Game Design είναι η ανάπτυξη ενός παιχνιδιού χρησιμοποιώντας τόσο το XNA Game Studio όσο και το Visual Studio. Είναι μια ευκαιρία για τους συμμετέχοντες που ασχολούνται με game development να κατασκευάσουν ένα παιχνίδι το οποίο συμβάλλει στην ενημέρωση του πληθυσμού για τα προβλήματα του πλανήτη. Μπορείτε να δείτε παραδείγματα τέτοιων παιχνιδιών, τα επονομαζόμενα serious games εδώ.
Δικαίωμα συμμετοχής έχουν ομάδες από 1 μέχρι 4 άτομα και έναν υπεύθυνο καθηγητή. Περισσότερες πληροφορίες για το διαγωνισμό μπορείτε να δείτε εδώ.
Αν έχετε κάποια ιδέα για παιχνίδι σχετικό με το θέμα του διαγωνισμού αλλά δεν είστε μέλος ομάδας ανάπτυξης μπορείτε να επικοινωνήσετε μαζί μου. Επιπλέον αν θέλετε να συμμετάσχετε στην ανάπτυξη ενός τέτοιου παιχνιδιού ακόμα και αν δεν έχετε κάποια συγκεκριμένη ιδέα, μπορείτε και πάλι να επικοινωνήσετε μαζί μου. Ίσως μπορέσουμε να συγκεντρώσουμε ικανό αριθμό ατόμων για να φτιάξουμε μια ομάδα ανάπτυξης βιντεοπαιχνιδιού για το διαγωνισμό αυτό.
Δημοσιεύθηκε στο XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Νέα | Leave a Comment »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Οκτωβρίου 6, 2009
Στο προηγούμενο tutorial σχεδιάσαμε το game state management του Arkanoid και το υλοποιήσαμε για την διαδικασία Update του παιχνιδιού. Σήμερα θα το υλοποιήσουμε και για την διαδικασία Draw, συμπληρώνοντας παράλληλα το παιχνίδι με Εισαγωγική οθόνη, λειτουργία Pause και οθόνη επιτυχίας ή αποτυχίας του παίκτη.
Διαβάστε την συνέχεια του άρθρου »
Δημοσιεύθηκε στο .NET, Arkanoid, C#, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 8 σχόλια »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Οκτωβρίου 2, 2009
Μέχρι στιγμής στο παιχνίδι Arkanoid (μέρος 1, μέρος 2) έχουμε υλοποιήσει την κλάση που εκπροσωπεί τα τουβλάκια (Brick) έχουμε τοποθετήσει τα τουβλάκια στην σωστή θέση, έχουμε υλοποιήσει κίνηση της μπάλας και της ρακέτας, συγκρούσεις μεταξύ των αντικειμένων του παιχνιδιού και αυξάνουμε και το σκορ του παίκτη. Το παιχνίδι είναι λειτουργικό, μπορεί να ελέγξει ο παίκτης τη μπάλα και να καταστρέψει τα τουβλάκια, αλλά δεν έχουμε ορίσει το πότε νικά και πότε χάνει ο παίκτης έτσι ώστε να σταματάμε το παιχνίδι και να του εμφανίζουμε το ανάλογο μήνυμα. Για να το κάνουμε λίγο πιο εύκολο και κομψό αυτό, θα κάνουμε ένα βήμα πίσω και θα υλοποιήσουμε στο παιχνίδι κάτι που ονομάζεται game state management (διαχείριση καταστάσεων παιχνιδιού;).
Διαβάστε την συνέχεια του άρθρου »
Δημοσιεύθηκε στο .NET, Arkanoid, C#, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 2 σχόλια »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Οκτωβρίου 1, 2009
Το Videogames Laboratory κλείνει σήμερα ένα χρόνος ζωής! Ξεκίνησε πριν ακριβώς από ένα χρόνο με σκοπό να παρουσιάζει θέματα που αφορούν την ανάπτυξη βιντεοπαιχνιδιών. Είχε κάποια βρεφικά προβλήματα, λόγω του τεράστιου φόρτου εργασίας που προκάλεσε η συγγραφή του βιβλίου και η δουλειά στο Πανεπιστήμιο, αλλά από το καλοκαίρι έχει βρει το ρυθμό του, θέλω να ελπίζω, με τις σειρές άρθρων που παρουσιάζει σχετικά με την δημιουργία απλών (αρχικά) βιντεοπαιχνιδιών.
Έχω δεχτεί κατά καιρούς διάφορες προτάσεις-παρατηρήσεις να παρουσιάζω θέματα περισσότερο προχωρημένα, σχετικά με τα τριδιάστατα γραφικά και τις σύγχρονες μεθόδους απεικόνισης. Όμως πιστεύω ακράδαντα ότι τα βιντεοπαιχνίδια είναι κάτι περισσότερο από τα γραφικά που απεικονίζουν, είναι ολόκληρα συστήματα τα οποία πρέπει να κατανοήσεις και να χτίσεις σταδιακά έτσι ώστε να φτάσεις σε κάτι λειτουργικό και ψυχαγωγικό. Κατά τη γνώμη μου η δημιουργία του ταπεινού Pong και Arkanoid έχει να διδάξει περισσότερα από ένα tutorial για το πώς εφαρμόζουμε parallax mapping σε ένα τριδιάστατο μοντέλο (όχι ότι δεν θα το δούμε και αυτό στο μέλλον). Σκοπός μου είναι περάσουμε και σε πιο σύνθετα παιχνίδια με τριδιάστατα γραφικά, αφότου όμως έχουν γίνει κατανοητές οι βασικές αρχές ανάπτυξης βιντεοπαιχνιδιών.
Το Code Repository είναι ένα άλλο μεγάλο κεφάλαιο του Videogames Laboratory το οποίο πιστεύω ότι θα μπορέσουμε να αξιοποιήσουμε ακόμα περισσότερο στο μέλλον. Προς το παρόν οι αναγνώστες του blog, μετά από σχετική εγγραφή, μπορούν να βελτιώνουν και να ανεβάζουν την δική τους έκδοση ενός βιντεοπαιχνιδιού που αναπτύσσουμε στα πλαίσια των tutorial. Ήδη υπάρχουν άτομα που βελτιώνουν και κάνουν προσθήκες στο Pong και Arkanoid. Αυτό που ελπίζω να γίνει στο μέλλον είναι να συγκεντρωθεί ένας ικανός αριθμός ατόμων, τα οποία επιθυμούν να αναπτύσσουν βιντεοπαιχνίδια, έτσι ώστε να μπορέσουμε να αναπτύξουμε ένα μεγαλύτερο παιχνίδι συνεργατικά, δηλαδή κάποιος να αναλάβει τα γραφικά, κάποιος την φυσική, κάποιος τον ήχο, κάποιος το gameplay κλπ.
Παράλληλα δημιουργήθηκε και ένα forum, συνοδευτικό του Videogames Laboratory, το οποίο έχει ως σκοπό την μεγαλύτερη ελευθερία στην συζήτηση πάνω σε θέματα που αφορούν τα παιχνίδια και τις τεχνικές που μελετάμε στο blog, όπως και άλλα θέματα που αφορούν την ανάπτυξη βιντεοπαιχνιδιών γενικότερα.
Αρχίζουμε λοιπόν το δεύτερο χρόνο ζωής του blog, με ακόμα μεγαλύτερη συμμετοχή και διάθεση για ανάπτυξη βιντεοπαιχνιδιών θέλω να ελπίζω.
Αν έχετε προτάσεις για βελτίωση του Videogames Laboratory, ή για κάποια κατεύθυνση που θα θέλατε να πάρει ή κάποιο στοιχείο που νομίζετε ότι του λείπει θα ήθελα να τις ακούσω (στα σχόλια ή απευθείας).
Δημοσιεύθηκε στο Νέα | 3 σχόλια »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Σεπτεμβρίου 24, 2009
Ξεκινήσαμε με το προηγούμενο άρθρο τη δεύτερη σειρά tutorial πάνω στην ανάπτυξη βιντεοπαιχνιδιών, εστιάζοντας στο παιχνίδι Arkanoid αυτή τη φορά. Το άρθρο βγήκε αναγκαστικά μεγάλο διότι έπρεπε να ορίσουμε ένα νέο αντικείμενο το οποίο θα αναπαριστά το τουβλάκι στο παιχνίδι, καθώς και την συμπεριφορά του (απεικόνιση και έλεγχος συγκρούσεων). Με βάση τη κλάση αυτή δημιουργήσαμε και απεικονίσαμε τις σειρές με τα τουβλάκια στην οθόνη. Επιπλέον ορίσαμε και απεικονίσαμε τη ρακέτα και την μπάλα.
Στο σημερινό άρθρο, για να το κρατήσουμε σε λογικό μέγεθος, θα προσθέσουμε στο παιχνίδι μόνο κίνηση της μπάλας και της ρακέτας, ανίχνευση συγκρούσεων (collision detection) και σκορ παίκτη.
Διαβάστε την συνέχεια του άρθρου »
Δημοσιεύθηκε στο .NET, Arkanoid, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 4 σχόλια »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Σεπτεμβρίου 14, 2009
Ήρθε η ώρα να ξεσκονίσουμε τα πληκτρολόγια μας και να αρχίσουμε τη δεύτερη σειρά tutorial ανάπτυξης βιντεοπαιχνιδιού. Αυτή τη φορά θα ασχοληθούμε με το πολύ γνωστό Arkanoid (Taito, 1986). Στο παιχνίδι αυτό ο παίκτης χειρίζεται μια ρακέτα και προσπαθεί να οδηγήσει μια μπάλα έτσι ώστε να καταστρέψει σειρές από «τουβλάκια» στο πάνω μέρος της οθόνης.

Διαβάστε την συνέχεια του άρθρου »
Δημοσιεύθηκε στο .NET, Arkanoid, C#, XNA Game Studio, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός | 3 σχόλια »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Σεπτεμβρίου 1, 2009
Αποφάσισα να δώσω μια δεύτερη ευκαιρία στο host του forum για μερικές μέρες πριν το μεταφέρω σε άλλο host. Παράλληλα δημιούργησα και ένα poll (στην δεξιά στήλη του blog) στο οποίο μπορούν οι χρήστες του forum να καταγράφουν την εμπειρία τους από την χρήση του. Αν τα αρνητικά σχόλια είναι πολλά, τότε θα αναζητηθεί άλλος host.
Μέχρι τότε μπορείτε να στέλνετε τις ερωτήσεις, τα σχόλια σας, νέα από την βιομηχανία και την ανάπτυξη βιντεοπαιχνιδιών σας στο Videogames Laboratory forum ως συνήθως.
Δημοσιεύθηκε στο Forum, Βιομηχανία βιντεοπαιχνιδιών, Νέα | 3 σχόλια »
Δημοσιεύθηκε από Κώστας Αναγνώστου στο Αυγούστου 30, 2009
Τελικά φαίνεται ότι η υπηρεσία freeforums.org που επέλεξα για να κάνω host το Videogames Laboratory forum δεν είναι και πλέον αξιόπιστη… παρατήρησα αρκετά προβληματάκια με αποκορύφωμα σήμερα που δεν δίνει πρόσβαση στο forum με τίποτα.
Αν έχετε καμιά προτάση για κάποια πιο αξιόπιστη (και δωρεάν) υπηρεσία hosting για forum θα ήθελα να την ακούσω.
Δημοσιεύθηκε στο Forum, Νέα | 5 σχόλια »