PROJECT: 3D Game in Python Στην εργασία αυτή θα δημιουργήσετε ένα παιχνίδι 3D σε python με το pygame. θα πρέπει να υπάρχουν: α) ένας χώρος 3D β) τρεις διαφορετικοί ήχοι τουλάχιστον γ) έλεγχος από το πληκτρολόγιο και/ή mouse δ) εμφάνιση score ή χρόνου ε) συνθήκη τερματισμού (score based & time based ή player kill ) Μπορείτε να χρησιμοποιήσετε κώδικα είτε από το διαδίκτυο είτε από το chatGPT με μέγιστο ποσοστό 70% αρκεί να αναφέρετε την πηγή. Η βαθμολογία θα εξαρτηθεί από την ποιότητα της σύνδεσης όλων των παραπάνω σε μια ενιαία εφαρμογή (40%), ποιότητα των game assets ήχου και εικόνας (10%), την πρωτοτυπία (20%), τη λειτουργικότητα (20%) και το replayability (10%). ΠΑΡΑΔΟΣΗ: Το project file με όλα τα assets, και ένα screencast video έως 7 λεπτά που παρουσιάζει το παιχνίδι με περιγραφή (gameplay, algoritm flow και σημαντικά στοιχεία του κώδικα).  A Deadline μέσα Ιουλίου Β Deadline μέσα Σεπτεμβρίου Ομάδες έως 3 άτομα. Να υπάρχουν python comments που να δείχνουν ποιος ασχολήθηκε με ποιο τμήμα του κώδικα (π.χ. ανά συνάρτηση ή ανά αρχείο). Παραδίδει ο Team Leader ένα zip και γράφει τα υπόλοιπα ονόματα. Κάποιες ιδέες (μπορείτε να σκεφτείτε κάτι τελείως διαφορετικό): 1) Μπορείτε να ακολουθήσετε το youtube video "Creating a DOOM (Wolfenstein) - style 3D Game in Python", να χωρίσετε την εικόνα στη μέση και να παίζουν 2 παίχτες σε split screen. 2) Μπορείτε να κάνετε ένα running game με προοπτική που αποφεύγουμε αντικείμενα και συγκεντρώνουμε τα χρήσιμα. 3) Μπορείτε να κάνετε ένα running game που πηδάμε αντικείμενα που έρχονται προς τα εμάς. 4) Μπορείτε να κάνετε ένα space game με pyopengl που καθοδηγείτε ένα διαστημόπλοιο να συγκεντρώνει crates χωρίς να συγκρουστεί με πλανήτες. 5) Μπορείτε να κάνετε ένα maze game 2 παιχτών (split screen) με projection 3D, random generated χάρτη και random generated started positions που ο ένας κυνηγάει τον άλλο να τον πιάσει. Διαφοροποιούνται στο FOV/depth/speed. 6) Μπορείτε να κάνετε ένα maze game για 1 παίκτη (split screen 2D) με projection 3D, random generated χάρτη και random generated started positions και να προσπαθεί να βγει έξω.