Τι προσφέρει το καθένα; Ποιό από τα δύο να επιλέξω; Τι πρέπει να γνωρίζω πριν κάνω αυτή την επιλογή; Θα μάθεις μέχρι το τέλος αυτού του άρθρου!
Σίγουρα όλοι μας κάποια στιγμή στη ζωή μας έχουμε διασκεδάσει παίζοντας κάποιο video game. Έχετε, όμως, ποτέ αναρωτηθεί πώς αυτά κατασκευάζονται και τι εργαλεία χρησιμοποιούνται γι’ αυτή τη διαδικασία; Μπορεί να φαντάζει, αρχικά, δύσκολο να κατασκευάσετε ένα τέτοιο παιχνίδι μόνοι σας, αλλά μόνο έπειτα από λίγη αναζήτηση στο διαδίκτυο μπορείτε εύκολα να συμπεράνετε ότι με τα σύγχρονα εργαλεία και τα λογισμικά που έχουν δημιουργηθεί, το Game Development μπορεί να γίνει προσιτό σε όλους!
Στο συγκεκριμένο άρθρο θα αναλύσουμε και θα συγκρίνουμε δύο διαφορετικά εργαλεία που ενδείκνυνται για την κατασκευή παιχνιδιών, τα οποία απευθύνονται σε διαφορετικό κοινό το καθένα και προσφέρουν αρκετά διαφορετικές λειτουργίες στον developer.
Κάποιες γενικές πληροφορίες για τα δύο εργαλεία
Pygame: Το Pygame είναι μία βιβλιοθήκη της Python σχεδιασμένο για την κατασκευή video games. Εκδόθηκε επίσημα το 2000 από τον Pete Shinners και έχει κατασκευαστεί στο περιβάλλον “Simple DirectMedia Layer” ή αλλιώς “SDL” με τη χρήση της γλώσσας προγραμματισμού C++. Σκοπός του Shinners είναι να καταστήσει το 2D Game Development εύκολο και προσιτό σε όλους όσοι έχουν κάποιες στοιχειώδεις γνώσεις προγραμματισμού. Αν πάλι δεν έχεις ασχοληθεί ξανά με προγραμματισμό τσέκαρε αυτό!
Unity: H Unity Technologies ιδρύθηκε το 2004 και εξέδωσε το Unity μόλις έναν χρόνο αργότερα, το 2005. Αρχικά, προοριζόταν μόνο για λογισμικά Mac OS, αλλά η δυναμική και η καινοτομία που προσέφερε ήταν πρωτοφανείς στον χώρο του Game Development. Έτσι, σε σύντομο χρονικό διάστημα, επεκτάθηκε σε όλα τα λειτουργικά συστήματα. Κύριος στόχος του Unity είναι η κατασκευή εργαλείων που θα διευκολύνουν την ανάπτυξη παιχνιδιών, τόσο 2D όσο και 3D, για τους developers όλων των επιπέδων.
Η προσωπική μου εμπειρία με το Game Development
Έχω περάσει αμέτρητες ώρες μπροστά από μία οθόνη “λιώνοντας” σε κάποιο ηλεκτρονικό παιχνίδι. Έχοντας πάντα την περιέργεια να μάθω τί κρύβεται πίσω από την επιφανειακή εμπειρία του χρήστη με το παιχνίδι, πώς αυτό σχεδιάζεται και πώς υλοποιείται ένα τόσο περίπλοκο project και γνωρίζοντας ήδη σε αρκετά καλό επίπεδο τις γλώσσες προγραμματισμού Python και C++, επιχείρησα να προσπαθήσω και εγώ! Ως αρχάριος, λοιπόν, ήμουν κυριευμένος από σκέψεις όπως: Με ποιό λογισμικό απ’ όλα να ασχοληθώ; Αξίζει να μάθω μία καινούργια γλώσσα προγραμματισμού που θα χρησιμοποιείται αποκλειστικά για την κατασκευή παιχνιδιών; Αν επέλεγα το Pygame, μήπως θα έθετα έναν περιορισμό στην αποτελεσματικότητα και στις δυνατότητες κατασκευής πιο περίπλοκων παιχνιδιών; Μετά από σκέψη κατέληξα να χρησιμοποιήσω το Pygame. Έπειτα από αρκετό καιρό εμπειρίας με αυτο και το Game Development μπορώ να πω με σιγουριά ότι ήταν μία πολύ καλή επιλογή για τις ανάγκες μου. Κατάφερα να κατασκευάσω διάφορα ενδιαφέροντα παιχνίδια, μαθαίνοντας παράλληλα αμέτρητα πράγματα για τον αντικειμενοστραφή προγραμματισμό και τις πρακτικές ανάπτυξης ενος video game χωρίς κανέναν περιορισμό από την γλώσσα της Python.
Η σύγκριση
Pygame
Unity
Απλότητα: Ένα χαρακτηριστικό που μπορεί να θεωρηθεί και θετικό και αρνητικό! Από τη μία το Pygame προσφέρεται για αρχάριους, όμως μπορεί να αποτελέσει δυσκολία στην ανάπτυξη μεγάλων ή απαιτητικών projects | Δυναμικότητα: Μιλάμε για ένα πανίσχυρο, αλλά περίπλοκο, εργαλείο που δεν γνωρίζει περιορισμούς στις δυνατότητές του. Η διαδικασία εκμάθησης, όμως, γίνεται δυσκολότερη και απαιτεί υπομονή και αφοσίωση |
Επικεντρώνεται κυρίως στην ανάπτυξη παιχνιδιών 2D | Χρησιμοποιείται τόσο για 2D όσο και για 3D παιχνίδια |
Cross-Platform* | Cross-Platform |
Κατάλληλο για αρχάριους | Απευθύνεται κυρίως σε πιο έμπειρους developers |
Περιορισμένη κοινότητα | Μεγάλη κοινότητα με πολύ καλό και λεπτομερές documentation |
Απαιτεί γνώση της Python | Απαιτεί γνώση της C# |
Χρησιμοποιείται κυρίως για ψυχαγωγικούς και εκπαιδευτικούς σκοπούς | Ζητείται από εταιρείες στον τομέα του Game Development και χρησιμοποιείται κυρίως από επαγγελματίες |
*Υποστηρίζονται, δηλαδή, παιχνίδια τόσο για desktop όσο και για κινητό και tablet
Συμπεράσματα
Από τη συνοπτική σύγκριση που προηγήθηκε μπορούμε να καταλήξουμε ότι εάν είστε αρχάριοι στο Game Development και δεν σκοπεύετε να ασχοληθείτε σε επαγγελματικό επίπεδο με αυτό, η καλύτερη επιλογή για να πειραματιστείτε, να δείξετε τη δημιουργηκότητά σας, και να εμβαθύνετε σε μία πρακτική χρήση του προγραμματισμού είναι το Pygame. Αφού μάθετε τις βασικές διαδικασίες για την παραγωγή ενός ολοκληρωμένου παιχνιδιού και θέλετε να συνεχίσετε σε κάποιο game engine, θα σας πρότεινα ανεπιφύλακτα το Godot. Θα σας προσφέρει πολλά από τα χαρακτηριστικά ενός game engine σαν το Unity αλλά με μία γλώσσα προγραμματισμού (GDscript) που είναι πολύ πιο κοντά στο συντακτικό της Python.
Εάν πάλι έχετε αρκετή προγραμματιστική εμπειρία και με χαμηλού επιπέδου γλώσσες προγραμματισμού ή με C#, τότε γιατί να μην δοκιμάσετε το Unity. Θα σας πρότεινα, όμως, να αναζητήσετε και άλλες μηχανές κατασκευής παιχνιδιών, όπως το Unreal Engine στο οποίο θα αναφερθώ σε επόμενο άρθρο, ώστε να καταλήξετε σε αυτή που σας ταιριάζει περισσότερο.