Spirates

Το Spirates είναι ένα PC game το οποίο αναπτύσσω μαζί με έναν συμφοιτητή του από το 2012. Τα γραφικά του παιχνιδιού είναι σε δύο διαστάσεις.

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

Ο παίκτης μπορεί να αλληλεπιδράσει με πολλά αντικείμενα στους τεράστιους κόσμους που παράγονται διαδικαστικά (procedurally). Μπορεί να εισέλθει σε κτήρια, σπηλίες θησαυρού και να αλληλεπιδράσει με τους ενοίκους τους. Μπορεί να τροποποιήσει το καράβι του, να καταλάβει άλλα καράβια, να προσλάβει πλήρωμα, να κάνει συναλλαγές, να επενδύσει στις πόλεις του, να αναβαθμίσει τον εξοπλισμό του πληρώματος του, να αναβαθμίσει ρομπότ με τσιπάκια, να γίνει ο ίδιος ρομπότ και να αναβαθμίσει τον εαυτό του, να γίνει ζόμπι, να κλέψει πράγματα από τραπέζια, ντουλάπια και πάγκους.

Εικόνα από το Spirates – Ένας κεραυνός κτυπάει το κατάστρωμα

Η μηχανή παιχνιδιού είναι γραμμένη σχεδόν από τον μηδέν σε C++. Στην βάση χρησιμοποιούμε την βιβλιοθήκη SDL η οποία παρέχει τις απαραίτητες διεπαφές για είσοδο και διαχείρηση παραθύρων. Επίσης η SDL είναι cross-platform και αυτό μας επιτρέπει να μπορούμε με τον ίδιο κώδικα να παίζουμε και σε Windows και σε Linux. Για τα γραφικά χρησιμοποιούμε “μοντέρνα” OpenGL (aka με shaders σε GLSL) ώστε να έχουμε επιτάχυνση γραφικών από υλικό. Για ορισμό τον πόρων του παιχνιδιού χρησιμοποιούμε XML, σαν γλώσσα για scripts χρησιμοποιούμε Lua και για τα save χρησιμοποιούμε sqlite3.

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