Γεια σε όλους,
Πολλά παιχνίδια του CPC είναι υπέροχα, κι όμως ένα μεγάλο ποσοστό παικτών δεν μπορεί να τα ευχαριστηθεί άνετα. Όχι εξαιτίας του ίδιου του παιχνιδιού, αλλά εξαιτίας των πλήκτρων που χρησιμοποιεί. Το έθιξα αυτό στο Why make such great games if most people can’t play them properly?, και θα ήθελα να το πας παραπέρα: να περιγράψω τα προβλήματα και να προτείνω μια λύση.
Ο στόχος: η άνεση του παίκτη
Κάθε παίκτης έχει τις συνήθειές του, και ένα παιχνίδι είναι άνετο όταν προσαρμόζεται σε αυτές. Για παράδειγμα:
- αριστερό χέρι για αριστερά/δεξιά και δεξί χέρι για πάνω/κάτω, ή το αντίστροφο,
- ένας ρόμβος (διαμόρφωση διαμαντιού) κάτω από το ένα χέρι,
- τα πλήκτρα κέρσορα (βελάκια),
- ένα χειριστήριο (joystick),
- το πλήκτρο βολής κοντά στον αντίχειρα, ή κάτω από το μικρό δάχτυλο.
Ένα παιχνίδι που δέχεται μόνο μία από αυτές τις συνήθειες αναγκάζει όλους τους άλλους να «επανεκπαιδεύσουν» τα χέρια τους ή να παραιτηθούν. Ένα παιχνίδι που τις δέχεται όλες ταυτόχρονα δεν χρειάζεται επαναορισμό πλήκτρων: κάθε παίκτης απλά παίζει όπως έχει ήδη συνηθίσει.
Τι πάει στραβά
Ακόμα κι ένα παιχνίδι που προσφέρει καλά πλήκτρα μπορεί να τα «χάσει» στο σύστημα ενός άλλου χρήστη.
Γράμματα που μετακινούνται. Τα WASD, QAOP και τα συναφή προϋποθέτουν πληκτρολόγιο QWERTY. Στο AZERTY (Γαλλικοί CPC, Γαλλικά PC), τα A και Q αλλάζουν θέσεις, το ίδιο και τα Z και W, ενώ το M μετακινείται. Στο QWERTZ (Γερμανικά PC), τα Y και Z αλλάζουν μεταξύ τους. Ένα παιχνίδι που παίζεται με QAOP γίνεται σπαζοκεφαλιά σε ένα γαλλικό πληκτρολόγιο πριν καν ξεκινήσει.
Πλήκτρα που ένας εξομοιωτής πρέπει να τοποθετήσει κάπου. Τα COPY, CLR και τα f0 έως f9 του αριθμητικού πληκτρολογίου δεν έχουν προφανή θέση σε ένα πληκτρολόγιο PC, πόσο μάλλον σε ένα laptop. Σήμερα δοκίμασα το My Roland, ένα παιχνίδι υπό ανάπτυξη, όπου το άλμα γίνεται με το COPY. Ανάλογα με τον εξομοιωτή, το COPY καταλήγει στο Alt ή στο Insert. Δεν είμαι καν σίγουρος αν θα το έλεγα καν υποτυπωδώς παιξίσιμο.
Ενδιάμεσα επίπεδα (layers). Ανάμεσα στο δάχτυλο του παίκτη και στο παιχνίδι σας μπορούν να παρεμβάλλονται: η διάταξη πληκτρολογίου του συστήματος, το λειτουργικό σύστημα, ένας browser, η αντιστοίχιση του εξομοιωτή (βάσει θέσης ή βάσει συμβόλου, αυτό που ο Arnoldemu αποκαλεί «translated»), μερικές φορές ακόμα και μια απομακρυσμένη επιφάνεια εργασίας (remote desktop). Κάθε επίπεδο μπορεί να μετακινήσει ένα πλήκτρο. Η ανάγνωση των φυσικών θέσεων των πλήκτρων θα έλυνε ένα μέρος του προβλήματος, σε ένα λογικό περιβάλλον· σε πολλές ρυθμίσεις όμως, η διεπαφή απλά δεν τις παρέχει και το πρόγραμμα μαθαίνει μόνο ποιο σύμβολο πληκτρολογήθηκε.
Στον browser τα πράγματα μπορεί να γίνουν χειρότερα. Με τη ρύθμιση «resist fingerprinting» του Firefox, η σελίδα ενημερώνεται ότι το πληκτρολόγιο είναι ένα τυπικό (πιθανότατα αμερικανικό), όποιο κι αν είναι στην πραγματικότητα. Δοκίμασα έναν εξομοιωτή CPC μέσα σε σελίδα με αυτόν τον τρόπο από ένα γαλλικό πληκτρολόγιο: όλα τα γράμματα ήταν μια χαρά, αλλά τα πλήκτρα των ψηφίων έδιναν λάθος χαρακτήρες ή τίποτα απολύτως, και δεν μπορούσα καν να πληκτρολογήσω το " (λεπτομέρειες).
Το αποτέλεσμα: ένα παιχνίδι λειτουργεί τέλεια στο σύστημα του δημιουργού του, αλλά είναι δύσχρηστο ή μη παιξίσιμο στο σύστημα κάποιου άλλου.
Μια προτεινόμενη λύση: πλήκτρα για κάθε σύστημα (any-setup keys)
Το ονομάζω any-setup keys: ένα σετ πλήκτρων που ταιριάζει σε κάθε παίκτη, ανεξάρτητα από τις συνήθειές του και ανεξάρτητα από το σύστημά του: πραγματικός CPC σε οποιαδήποτε γλώσσα, εξομοιωτής σε υπολογιστή, εξομοιωτής στο web. Δύο κανόνες, με τον πρώτο να είναι ο πιο σημαντικός:
- Χρησιμοποιείτε μόνο γράμματα που μένουν στη θέση τους. Αυτά βρίσκονται στην ίδια θέση σε QWERTY, AZERTY και QWERTZ:
B C D E F G H I J K L N O P R S T U V X. Αποφύγετε ταA Z Q W M(μετακινούνται στο AZERTY) και τοY(αλλάζει θέση με τοZστο QWERTZ). Ένα γράμμα από αυτή τη λίστα βρίσκεται πάντα στη θέση του, είτε ο εξομοιωτής αντιστοιχίζει βάσει θέσης είτε βάσει συμβόλου. - Δώστε σε κάθε σημαντική λειτουργία عدة πλήκτρα, συμπεριλαμβανομένων πλήκτρων που διαθέτει κάθε πληκτρολόγιο. Ενέργεια στη βολή (fire), στο space bar, στο
RETURN, στοENTERκαι στοCOPY. Μενού ή παύση στοESC, στη δεύτερη βολή (second fire), και στοPγια συμβατότητα με το GX-4000.
Πώς να επιλέξετε αυτά τα πολλαπλά πλήκτρα: ικανοποιήστε κάθε συνήθεια ταυτόχρονα. Χειριστήριο, πλήκτρα κέρσορα, ένα χέρι ανά άξονα και προς τις δύο κατευθύνσεις, ένας ρόμβος, οι συστάδες πλήκτρων που οι παίκτες γνωρίζουν ήδη· βολή κάτω από τον αντίχειρα και κάτω από το μικρό δάχτυλο. Κανείς δεν χρειάζεται να αναορίσει τίποτα: απλά ξεκινάτε και παίζετε.
Δεν χρειάζεται να γράψετε κώδικα για επαναορισμό πλήκτρων. Οι παίκτες δεν χρειάζεται να αλλάξουν τίποτα, οπότε δεν χρειάζεται να γράψετε, να δοκιμάσετε και να βρείτε μνήμη για ένα μενού επαναορισμού, ούτε οι παίκτες χρειάζεται να περάσουν από αυτό πριν παίξουν. Τίποτα δεν σας εμποδίζει να προσφέρετε και ένα τέτοιο μενού, αλλά κανένας παίκτης δεν θα πρέπει να το έχει ανάγκη.
Παράδειγμα: το σετ πλήκτρων του Just Get 9
Ορίστε τι δέχεται το Just Get 9, όλα ταυτόχρονα:
- Κίνηση, όποιο συνδυασμό κι αν προτιμούν τα χέρια σας:
- πλήκτρα κέρσορα
- joystick 1 ή joystick 2
- ένα χέρι ανά άξονα, με οποιαδήποτε σειρά: αριστερό χέρι στα
V/Bγια αριστερά/δεξιά με δεξί χέρι σταO/Kγια πάνω/κάτω, ή αριστερό χέρι σταD/Cγια πάνω/κάτω με δεξί χέρι σταH/Jγια αριστερά/δεξιά - ένας ρόμβος κάτω από το δεξί χέρι:
Uπάνω,Nκάτω,Hαριστερά,Jδεξιά - μια γραμμή τύπου ZX:
4αριστερά,5κάτω,6πάνω,7δεξιά (τα5678του ZX Spectrum μετακινημένα ένα πλήκτρο αριστερά, ώστε τα5και6να διατηρούν τη σημασία τους από το joystick 2) - τα πλήκτρα του joystick 2 του Amstrad:
6πάνω,5κάτω,Rαριστερά,Tδεξιά
- Ενέργεια: κάτω από τον αντίχειρα (space bar,
COPY,ENTER), κάτω από το δεξί μικρό δάχτυλο (RETURN), κάτω από το δείκτη (G,Yγια “yes”), ή βολή (fire) - Μενού: δεύτερη βολή (second fire),
ESC,P(το κουμπί παύσης του GX-4000),F(δεύτερη βολή του joystick 2)
Όπου δύο συστήματα μοιράζονται ένα πλήκτρο, του δίνουν την ίδια σημασία, επομένως ο συνδυασμός τους δεν σας εκπλήσσει ποτέ. Σχεδιασμένο σε ένα πληκτρολόγιο CPC6128 (● ενέργεια, □ μενού):
┏━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┳━━━┓
┃ □ ┃ ┃ ┃ ┃ ← ┃ ↓ ┃ ↑ ┃ → ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━━━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━━━╋━━━╋━━━╋━━━⫸
┃ ┃ ┃ ┃ ┃ ← ┃ → ┃ ● ┃ ↑ ┃ ┃ ↑ ┃ □ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━━━━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┳━━┻┓ ● ┣━━━╋━━━╋━━━⫸
┃ ┃ ┃ ┃ ↑ ┃ □ ┃ ● ┃ ← ┃ → ┃ ↓ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃
┣━━━━━━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━┳━┻━━━━╋━━━╋━━━╋━━━⫸
┃ ┃ ┃ ┃ ↓ ┃ ← ┃ → ┃ ↓ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ↑ ┃ ┃
┣━━━━━━━━╋━━━┻━━┳┻━━━┻━━━┻━━━┻━━━┻━━━┻━━━┻━━━┻━━┳┻━━━┻━━━━━━╋━━━╋━━━╋━━━⫸
┃ ┃ ● ┃ ● ┃ ● ┃ ← ┃ ↓ ┃ → ┃
┗━━━━━━━━┻━━━━━━┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━━━━━━━━━━━┻━━━┻━━━┻━━━┛
Υπάρχουν δύο ειλικρινείς εξαιρέσεις σε αυτό το σετ. Το Y παραβιάζει τον κανόνα 1: στο QWERTZ απλά δεν κάνει τίποτα, και υπάρχουν άλλα έξι πλήκτρα ενέργειας. Τα πλήκτρα των ψηφίων χρειάζονται Shift σε ένα πληκτρολόγιο AZERTY: αυτό είναι εντάξει σε έναν πραγματικό CPC και με αντιστοίχιση βάσει θέσης, αλλά μπορεί να αποτύχει σε έναν εξομοιωτή web, όπως στην περίπτωση του «resist fingerprinting» παραπάνω. Γι’ αυτόν τον λόγο δεν είναι ποτέ ο μοναδικός τρόπος μετακίνησης.
Χρειάζεται να τα γνωρίζουν όλα αυτά οι παίκτες; Το Just Get 9 δεν τα αναφέρει καν μέσα στο παιχνίδι· το README στη λήψη περιέχει τη λίστα και το διάγραμμα παραπάνω, και κανείς δεν έχει παραπονεθεί. Οι παίκτες που έχουν συγκεκριμένες συνήθειες εξερευνούν το πληκτρολόγιο και βρίσκουν κάτι που λειτουργεί για αυτούς.
Η σειρά σας
- Αν γράφετε παιχνίδια: παρακαλώ σκεφτείτε ένα σετ πλήκτρων κατάλληλο για κάθε σύστημα (any-setup). Αυτό του Just Get 9 είναι ένα παράδειγμα· το δικό σας μπορεί να διαφέρει, αρκεί να ακολουθεί τους δύο κανόνες.
- Αν παίζετε: ποια παιχνίδια σας δημιούργησαν προβλήματα στο σύστημά σας (γλώσσα πληκτρολογίου, εξομοιωτής, εξομοιωτής web); Ποια λειτουργούν απλά και άψογα; Θα ήθελα να τα συγκεντρώσω αυτά και ίσως να μετατρέψω το αποτέλεσμα σε μια σελίδα στο CPCWiki.
- Αν γράφετε εξομοιωτές: αυτό είναι ένα σχετικό αλλά διαφορετικό θέμα, η αντιστοίχιση πλήκτρων βάσει συμβόλων. Έγραψα γι’ αυτό στο Introducing in-page emulator on wiki pages.
Ευχαριστώ για την ανάγνωση και καλό (και άνετο σε κάθε σύστημα) παιχνίδι!

