Videogames Laboratory

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

Νεο blog πανω σε Γραφικα με Υπολογιστη

Posted by Kostas Anagnostou στο Μαρτίου 2, 2013

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

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

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

Interplay of Light

Posted in Γενικά | Δεν επιτρέπεται σχολιασμός στο Νεο blog πανω σε Γραφικα με Υπολογιστη

Γιατι τοση ησυχια;

Posted by Kostas Anagnostou στο Μαρτίου 8, 2012

Οι τακτικοι αναγνωστες του blog αυτου, ιδιως αν δεν παρακολουθουν το αδερφο Thinkinggamer’s blog, θα βρηκαν παραξενη την ελλειψη ενημερωσης για αρκετους τωρα μηνες. Ο βασικος λογος για αυτο ειναι η αλλαγη τοπου διαμονης και δουλειας του συγγραφεα.

Απο το Νοεμβριο εχω επιστρεψει οικογενειακως στην Αγγλια και εργαζομαι ως graphics programmer στην Blitz Games Studios στο Leamington Spa. Η αλλαγη περιβαλλοντος, καθως και οι απαιτησεις της νεας δουλειας δεν μου αφηνουν χρονο να ασχοληθω με το blog αυτη τη περιοδο οποτε αναγκαστηκα εχει μεινει στασιμο.

Τον επομενο καιρο, και αναλογα με το φορτο εργασιας, θα σκεφτω αν θα το συνεχισω και με ποια μορφη, αν θα ειναι περισσοτερο game development η graphics programming, XNA Games Studio η καποια αλλη πλατφορμα/API.

Σχολια και προτασεις ευπροσδεκτα οπως παντα.

Καλο game development!

Posted in Γενικά | 5 Σχόλια »

Not for Sale! Τώρα και σε Windows Phone 7

Posted by Kostas Anagnostou στο Ιουνίου 14, 2011

Το τελευταίο καιρό απόκτησα πρόσβαση σε ένα μηχάνημα με DirectX 11 κάρτα γραφικών. Οπότε δεν έχασα την ευκαιρία να δοκιμάσω λίγο Windows Phone 7 προγραμματισμό, κάνοντας μεταφορά εκεί το παιχνίδι Not for Sale! που αναπτύσσουμε στα πλαίσια του blog αυτού. Είναι αλήθεια ότι cross-platform ανάπτυξη βιντεοπαιχνιδιών με το XNA είχα δοκιμάσει και στο παρελθόν μεταξύ Windows και Xbox360, αλλά μια μεταφορά σε ένα smartphone έχει μεγαλύτερο ενδιαφέρον λόγω των ιδιαίτερων δυνατοτήτων και απαιτήσεων της πλατφόρμας. Το παιχνίδι το έχει κάνει ήδη μεταφορά σε XNA 4.0, για Windows, o αναγνώστης του blog darklynx, οπότε ξεκινάμε με βάση αυτό.

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

Posted in .NET, C#, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Not for Sale!, Windows Phone 7, XNA Game Studio | 5 Σχόλια »

Not for Sale! Κάτι σαν postmortem

Posted by Kostas Anagnostou στο Ιουνίου 6, 2011

Πριν μερικές εβδομάδες προσκαλεσα ενδιαφερόμενα άτομα να συμμετάσχουν στην ανάπτυξη του Not for Sale!. Το είχα οραματιστεί ως μια συνεργατική ανάπτυξη στην οποία κάθε μέλος της ομάδας θα αναλάμβανε ένα υποσύστημα του παιχνιδιού. Το πλάνο ήταν να εξομοιώσουμε «πραγματικές» συνθήκες ανάπτυξης ενός βιντεοπαιχνιδιού, τουλάχιστον ως προς τα χρησιμοποιούμενα εργαλεία.

Εκτοτε, επισκέφτηκαν το blog κάτι λιγότερο από 2000 άτομα. Τα email συμμετοχών που έλαβα για την ανάπτυξη ήταν 4, εκ των οποίων τα 2 αναμενόμενα. Δηλαδή στην ουσία το 1 τοις χιλίοις των αναγνωστών του blog, που θα περίμενα ότι ενδιαφέρονται για την ανάπτυξη βιντεοπαιχνιδιών μιας και το διαβάζουν, ενδιαφέρθηκαν να συμμετάσχουν στην ανάπτυξη του Not for Sale!. Αυτό μου φάνηκε λίγο παράξενο για να είμαι ειλικρινής, οπότε για να καταλάβω τι συνέβει και να καθορίσω την τύχη ανάλογων προσπαθειών στο μέλλον, έφτιαξα το παρακάτω poll. Αν οι επιλογές δεν καλύπτουν κάποιον/α μπορεί ελεύθερα να εκφραστεί στα σχόλια.

 

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

Posted in C#, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Not for Sale!, XNA Game Studio | 9 Σχόλια »

Not for Sale! Το επόμενο βήμα

Posted by Kostas Anagnostou στο Μαΐου 12, 2011

Τους τελευταίους μήνες παρουσιάστηκε στο Videogames Laboratory blog μια σειρά από άρθρα πάνω στην ανάπτυξη ενός space shoot’em up με το όνομα Not for Sale!. Σκοπός του tutorial αυτού ήταν να δούμε περισσότερο σύνθετες τεχνικές ανάπτυξης βιντεοπαιχνιδιών, τεχνικές που ως ένα βαθμό χρησιμοποιούνται και σε εμπορικά παιχνίδια. Πιστεύω ότι φτάσαμε το παιχνίδι σε ένα καλό επίπεδο με διαχείριση εχθρών, ανίχνευση συγκρούσεων, επεκτάσιμο σύστημα εφέ και εκρήξεων. Μένουν όμως πολλά να γίνουν ακόμα πριν να μπορέσουμε να το χαρακτηρίσουμε ολοκληρωμένο παιχνίδι.

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

Η ανάπτυξη θα οργανωθεί σε πρότυπα εταιριών ανάπτυξης, χρησιμοποιώντας όσο γίνεται ανάλογα εργαλεία. Για τον διαμοιρασμό κώδικα θα χρησιμοποιήσουμε το Google Code (svn) που ήδη χρησιμοποιούμε για τα tutorial. Για καταγραφή και διαχείριση σφαλμάτων θα χρησιμοποιήσουμε κάποιο bug tracking εργαλείο. Τα μέλη της ομάδας θα κρατάνε ημερολόγιο ανάπτυξης με την πρόοδο τους. Για την ανάπτυξη καθαυτή θα χρησιμοποιήσουμε το XNA Game Studio 4.0. Μόνο αναψυκτικά και φρούτα ή σοκολάτες δεν θα προσφέρουμε!

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

Με μια πρώτη καταγραφή διακρίνω τα παρακάτω υποσυστήματα στο παιχνίδι:

  • Σύστημα εφέ. Θα περιλαμβάνει τα πάντα από εκρήξεις μέχρι οποιοδήποτε άλλο εφέ (βροχή μετεωριτών, λάμψη από πυροβολισμούς κλπ).
  • Audio manager για αναπαραγωγή εφέ και μουσικής.
  • Σύστημα tile map για την τοποθέτηση του κυλιόμενου φόντου. Θα χρησιμοποιηθεί κανονικό tile map και όχι το απλοϊκό που χρησιμοποιείται τώρα. Προτείνεται η χρήση του Tiled Editor ο οποίος υποστηρίζεται από το XNA.
  • Bonus system που θα αναβαθμίζει το παίκτη ανάλογα (είτε σε όπλα, είτε σε ασπίδα, ζωή κλπ)
  • Animation συστημα για τους εχθρούς έτσι ώστε να κινούνται σε «κύματα» και να έχουν διακριτές κινήσεις
  • Αναβαθμίσιμο weapon system για το παίκτη
  • Level editor για το σχεδιασμό της πίστας. Αυτό μπορεί να βασίζεται στο Tiled Editor ή μπορεί να είναι ξεχωριστό εργαλείο.
  • Σύστημα για την φόρτωση και παραμετροποίηση περιεχομένου μέσω xml αρχείων. Αυτό θα συνδέεται με το Level Editor.

Ότι λείπει μπορούμε να το συμπληρώσουμε στην πορεία.

Όσον αφορά τα γραφικά του παιχνιδιού μπορούμε να χρησιμοποιήσουμε τα υπάρχοντα. Ακόμα καλύτερα αν κάποιος τα καταφέρνει σε pixel art και θέλει να συνεισφέρει ακόμα καλύτερα. Το ίδιο ισχύει και για τον ήχο/μουσική. Επίσης θα χρειαστεί και ο ρόλος του Level Designer, ένα άτομο που θα τοποθετήσει τους εχθρούς σε συγκριμένα σημεία στη πίστα και θα ορίσει Hit Points, όπλα παίκτη και τα bonus που θα εμφανίζονται και πως αυτά θα αναβαθμίζουν το παίκτη. Αυτά θα ορίζονται όλα μέσω του Level Editor.

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

Οπότε για να ολοκληρώσω το κάλεσμα, όποια/όποιος ενδιαφέρεται να συμμετάσχει στην ανάπτυξη ας επικοινωνήσει μαζί μου μέσω του contact form με τα στοιχεία της/του και το υποσύστημα/τομέα με τον οποίο θα ήθελε να ασχοληθεί. Όλοι είναι ευπρόσδεκτοι με έναν όρο: όποιος συμφωνήσει να συμμετάσχει στην ανάπτυξη παρακαλώ να το εννοεί. Είναι πολύ άσχημο, και για τα υπόλοιπα μέλη, να ξεκινήσει κάποιος την ανάπτυξη και μετά να τα παρατήσει ή να μην διορθώνει bugs που εμποδίζουν την πρόοδο των υπόλοιπων κλπ. Αυτή είναι και η έννοια της «ιδιοκτησίας» ενός υποσυστήματος. Επίσης καλό θα ήταν αυτός που θα εμπλακεί με την ανάπτυξη να έχει κάποιο επίπεδο γνώσης προγραμματισμού (αντικειμενοστραφούς). Δεν είναι απαραίτητη η γνώση του ΧΝΑ ή της C# αλλά το πως ορίζονται οι κλάσεις, πως δουλεύει η κληρονομικότητα κλπ πρέπει να τα κατέχει.

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

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

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

Posted in .NET, C#, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Not for Sale!, XNA Game Studio | 4 Σχόλια »

Not for Sale! σε XNA 4.0

Posted by Kostas Anagnostou στο Απρίλιος 26, 2011

Είχα εδώ και καιρό υποσχεθεί ανακοινώσεις σχετικά με την ανάπτυξη του Not for Sale! οι οποίες ακόμα έρχονται. Ελπίζω μέσα στις επόμενες μέρες να καταφέρω να ανεβάσω το σχετικό post.

Κάτι σχετικό, ο αναγνώστης του Videogames Laboratory darklynx είχε την ευγενή καλοσύνη να μετατρέψει το project του παιχνιδιού σε XNA 4.0 και να το ανεβάσει στο Code Repository. Τον ευχαριστώ πολύ για την προσπάθεια του αυτή. Οδηγίες για τη χρήση του Code Repository μπορείτε να βρείτε εδώ και εδώ.

Εν αναμονή των ανακοινώσεων λοιπόν, καλό game coding!

Posted in .NET, C#, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Not for Sale!, XNA Game Studio | 3 Σχόλια »

Not for Sale! Εκρήξεις και particle systems

Posted by Kostas Anagnostou στο Μαρτίου 4, 2011

Έχει περάσει πολύς καιρός από το προηγούμενο άρθρο στη σειρά tutorial ανάπτυξης του Not for Sale! Και ενώ ο κώδικας για το συγκεκριμένο άρθρο είναι έτοιμος εδώ και καιρό, δεν μπορούσα να βρω χρόνο για να γράψω το κείμενο. Ούτε τώρα βρήκα, αλλά για να μην κάθεται ο κώδικας τον ανεβάζω με μερικά σύντομα σχόλια για την λειτουργία του. Διαβάστε τη συνέχεια του άρθρου »

Posted in .NET, C#, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Not for Sale!, XNA Game Studio | 6 Σχόλια »

Not for Sale! Ανίχνευση συγκρούσεων

Posted by Kostas Anagnostou στο Δεκέμβριος 8, 2010

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

Posted in .NET, C#, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Not for Sale!, XNA Game Studio | 8 Σχόλια »

Not for Sale! Βροχή από σφαίρες

Posted by Kostas Anagnostou στο Οκτώβριος 20, 2010

Συνεχίζουμε μετά από ένα καλό διάλλειμα την ανάπτυξη του παιχνιδιού Not for Sale!. Γνωρίζω ότι τα άρθρα έχουν αραιώσει περισσότερο από ότι θα ήθελα, το καλοκαίρι ήταν από πλευράς δουλειάς πολύ γεμάτο και το φθινόπωρο μπήκε και αυτό δυναμικά. Παρεμπιπτόντως χάρηκα που γνώρισα αρκετούς από τους αναγνώστες του blog στο 3ο HGDC και τα καλά σας λόγια σχετικά με το Videogames Laboratory με εξέπληξαν και με ευχαρίστησαν πολύ. Χαίρομαι που υπάρχει κοινό που βρίσκει το blog έστω και λίγο χρήσιμο, και αυτό με παρακινεί να συνεχίζω την ενασχόληση μου με αυτό.

Στο σημερινό tutorial θα προσθέσουμε στο παιχνίδι την δυνατότητα να ρίχνει ο παίκτης και οι εχθροί ακτίνες laser. Για να το υλοποιήσουμε αυτό χρειαζόμαστε 2 στοιχεία, μια κλάση Bullet που θα αντιπροσωπεύει μια ακτίνα laser στο παιχνίδι (ανεξαρτήτως αν είναι του παίκτη ή του εχθρού), και μια κλάση BulletManager η οποία θα διαχειρίζεται τις ακτίνες laser. Και με αυτό εννοώ ότι θα επιτρέπει την προσθήκη μιας ακτίνα laser, θα ανανεώνει την θέση της, θα ελέγχει (στο επόμενο tutorial) συγκρούσεις, θα την απεικονίζει και θα την καταστρέφει όταν αυτή βγει εκτός οθόνης.

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

Posted in .NET, C#, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Not for Sale!, XNA Game Studio | 6 Σχόλια »

Not for Sale! Παίκτης και εχθροί μέρος 2ο

Posted by Kostas Anagnostou στο Ιουλίου 2, 2010

Συνεχίζουμε με το δεύτερο μέρος του tutorial προσθήκης παίκτη και εχθρών στο παιχνίδι Not for Sale! Στο πρώτο μέρος είχαμε ορίσει μια ιεραρχία από κλάσεις η οποία άρχιζε με τη κλάση GameEntity, από την οποία κληρονομούν όλα τα αντικείμενα του παιχνιδιού, και κατέληγε στις κλάσεις FighterShip και CargoShip οι οποίες αποτελούν τα πρότυπα για τα δυο είδη εχθρικών διαστημοπλοίων που έχουμε στο παιχνίδι και τη κλάση PlayerShip για το διαστημόπλοιο του παίκτη.

Σημείωση: επειδή με κάποια σατανική συνέργια του Word και του WordPress εγινε overwrite το πρώτο μέρος του tutorial, το έχω ανεβάσει σε pdf μορφή για όποιον το αναζητά.

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

Posted in .NET, C#, Ανάπτυξη βιντεοπαιχνιδιών, Προγραμματισμός, Not for Sale!, XNA Game Studio | 7 Σχόλια »

 
Αρέσει σε %d bloggers: