Οδηγός

Πηγαίος κώδικας παιχνιδιού pool: μέσα σε ένα πακέτο HTML5 8 μπαλών

Φυσική, κανόνες και CPU σε ξεχωριστά αρχεία: τι περιέχει ο πηγαίος κώδικας του Velvet Pool και τι αλλάζει πρώτα ο αγοραστής.

Γραφικά του Velvet Pool: το κοντάρι ευθυγραμμισμένο πίσω από τη λευκή μπάλα σε πράσινο τραπέζι, με τις μπάλες 3, 8 και 4 κοντά σε γωνιακή τσέπη.

Ο πηγαίος κώδικας παιχνιδιού pool αξίζει όταν τρία πράγματα ζουν σε ξεχωριστά, αναγνώσιμα αρχεία: η φυσική των μπαλών, οι κανόνες 8 μπαλών και ο αντίπαλος υπολογιστή. Αν είναι μπλεγμένα μεταξύ τους, κάθε αλλαγή στο χρώμα του τραπεζιού ή στη δυσκολία της CPU γίνεται συνεδρία αποσφαλμάτωσης. Το Velvet Pool, το πρότυπο 8 μπαλών μας, τα κρατά χωριστά, και ο οδηγός αυτός περνά από το πακέτο αρχείο προς αρχείο.

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

Η σύντομη εκδοχή: το Velvet Pool είναι απλή JavaScript σε WebGL2, χωρίς βιβλιοθήκη 3D και χωρίς βήμα build. Επεξεργάζεστε ένα αρχείο, το αντιγράφετε στον φάκελο παιχνιδιού και ανανεώνετε τη σελίδα.

Τι περιέχει ο πηγαίος κώδικας pool

Το Velvet Pool είναι ένα έτοιμο παιχνίδι 8 μπαλών, όχι μηχανή ή σκελετός. Το κατέβασμα έχει τέσσερις φακέλους: το game/ είναι το έτοιμο για ανέβασμα build, το source/ είναι το ίδιο παιχνίδι ως έκδοση για developers με README, package.json και τεστ, το documentation/ περιέχει τον εικονογραφημένο οδηγό στα αγγλικά και τα πορτογαλικά, και το THIRD-PARTY-LICENSES/ κρατά τα κείμενα άδειας των γραμματοσειρών.

Το ίδιο το παιχνίδι παίζει 8 μπάλες με φάουλ, ball-in-hand (μπάλα στο χέρι) και solids ή stripes (μονόχρωμες ή ριγέ). Υπάρχουν τρία επίπεδα CPU, Easy (εύκολο), Medium (μέτριο) και Hard (δύσκολο), ένα δωρεάν τραπέζι εξάσκησης με undo, τοποθέτηση μπάλας και re-rack (νέα τοποθέτηση), και αγώνες δύο παικτών στην ίδια συσκευή. Οι παίκτες βάζουν follow, draw ή side spin (πλάγιο σπιν) στην άσπρη μπάλα, και τα τοπικά επιτεύγματα ξεκλειδώνουν πέντε χρώματα τσόχας και πέντε στυλ κονταριών. Η διεπαφή υπάρχει σε 14 γλώσσες.

  • Τεχνολογία: vanilla JavaScript, ES modules και WebGL2. Χωρίς Three.js ή άλλη βιβλιοθήκη κώδικα.
  • Κώδικας: απλή, μορφοποιημένη JavaScript στα source/src και game/src. Τίποτα δεν είναι συμπιεσμένο ή ομαδοποιημένο.
  • Τεστ: προαιρετικά, με Node.js 20 ή νεότερο. Ελέγχουν τη φυσική, τους κανόνες 8 μπαλών, τους αγώνες CPU και τα κλειδιά μετάφρασης.
  • Έκδοση κατά τη συγγραφή: 1.1.0, ενημερώθηκε στις 22 Οκτωβρίου 2026.

Δείτε τη σελίδα του Velvet Pool, την επίδειξη και το εγχειρίδιο

Πώς είναι οργανωμένα τα αρχεία

Τα game/ και source/ έχουν το ίδιο layout, άρα μια διαδρομή σε έναν φάκελο δείχνει στο ίδιο αρχείο στον άλλο. Η διαίρεση που μετράει περισσότερο για ένα παιχνίδι pool είναι ανάμεσα στο src/core/ (προσομοίωση και κανόνες) και στο src/game/ (όλα όσα αγγίζει ο παίκτης).

  • src/core/physics.js: προσομοίωση μπαλών, σπιν και ανάκρουση από τα τοιχώματα.
  • src/core/rules.js: κανόνες 8 μπαλών και αποφάσεις για φάουλ.
  • src/core/ai.js: πώς η CPU επιλέγει το χτύπημά της.
  • src/game/controls.js: είσοδος για σκόπευση, ισχύ και σπιν.
  • src/game/progress.js: επιτεύγματα, χρώματα τσόχας, κοντάρια και βαθμολογία αγώνα.
  • src/game/i18n.js: τα κείμενα σε 14 γλώσσες, με λίστα στο LANGS.
  • src/game/localRecords.js: το τοπικό ιστορικό βαθμολογιών.
  • src/game/audio.js: αναπαραγωγή εφέ και μουσικής.
  • css/style.css και css/fonts.css: θέμα, responsive διάταξη και δηλώσεις γραμματοσειρών.
  • assets/: γραφικά, ήχος και γραμματοσειρές, με τα αρχεία λογοτύπου στο assets/logo/.

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

Τι αλλάζει πρώτα ένας αγοραστής

Τα περισσότερα projects ακολουθούν την ίδια σειρά. Ξεκινούν με αυτό που βλέπουν οι παίκτες, περνούν σε αυτό που νιώθουν, και αφήνουν τους κανόνες για το τέλος, γιατί εκεί είναι πιο εύκολο να εισαχθεί σφάλμα.

  1. Brand: αντικαταστήστε τα αρχεία λογοτύπου στο assets/logo/ και προσαρμόστε τα αντίστοιχα μεγέθη στο CSS. Το white label επιτρέπεται, άρα το δικό σας όνομα ή του πελάτη σας μπορεί να αντικαταστήσει το δικό μας.
  2. Εμφάνιση τραπεζιού: τα χρώματα και οι γραμματοσειρές βρίσκονται στο css/style.css. Οι ορισμοί τσόχας και κονταριών βρίσκονται στο progress.js. Κρατήστε σταθερά τα IDs τους, αλλιώς οι παίκτες χάνουν τα καλλυντικά που έχουν ήδη ξεκλειδώσει.
  3. Κείμενα και γλώσσες: κάθε string βρίσκεται στο i18n.js. Επεξεργαστείτε τη διατύπωση που χρειάζεστε· η λίστα γλωσσών είναι στο LANGS.
  4. Δυσκολία CPU: η επιλογή χτυπημάτων βρίσκεται στο ai.js. Ρυθμίστε ένα επίπεδο τη φορά και παίξτε έναν πλήρη αγώνα απέναντί της.
  5. Φυσική: η τριβή, το σπιν και η ανάκρουση βρίσκονται στο physics.js. Μικρές αλλαγές έχουν μεγάλο αποτέλεσμα εδώ, οπότε τρέξτε τα τεστ μετά από κάθε μία.
  6. Κανόνες: οι παραλλαγές του σπιτιού ανήκουν στο rules.js. Δοκιμάστε τα φάουλ και το ball-in-hand με το χέρι, όχι μόνο με τη σουίτα τεστ.

Η ροή εργασίας είναι ίδια για όλα: επεξεργάζεστε το αρχείο στο source/, το αντιγράφετε στην ίδια διαδρομή μέσα στο game/, σερβίρετε τον φάκελο μέσω HTTP και ανανεώνετε. Ο οδηγός αγοραστή προτείνει να αλλάζετε ένα χαρακτηριστικό τη φορά και να δοκιμάζετε το μενού, έναν αγώνα, την παύση, την οθόνη αποτελεσμάτων και μια ανανέωση μετά από κάθε αλλαγή.

Φιλοξενία, ενσωμάτωση ή εφαρμογή

Η φιλοξενία είναι το απλούστερο μέρος. Ανεβάστε όλα όσα υπάρχουν μέσα στο game/ σε έναν φάκελο όπως το public_html/velvet-pool/, κρατήστε τους υποφακέλους και ανοίξτε τη διεύθυνση. Δεν υπάρχει npm, τερματικό, PHP, βάση δεδομένων ή λογαριασμός στην πλευρά του διακομιστή. Αρκεί ένα πλάνο που σερβίρει στατικά αρχεία μέσω HTTPS.

  • Μην ανοίγετε το index.html με διπλό κλικ: οι browsers μπλοκάρουν τα modules του παιχνιδιού στο file://. Για τοπική δοκιμή, τρέξτε python -m http.server 8765 μέσα στο game/.
  • Αν η οθόνη μένει κενή, ελέγξτε ότι το WebGL2 είναι ενεργό και ότι τα ονόματα αρχείων κρατούν τα κεφαλαία και πεζά γράμματα.
  • Αν ο browser αρνείται ένα module, ο διακομιστής σας στέλνει .js με λάθος τύπο MIME.
  • Μέσα σε iframe σε πύλη, επιτρέψτε την πλήρη οθόνη και την αυτόματη αναπαραγωγή.

Όλα όσα χρειάζεται το παιχνίδι κατά την εκτέλεση βρίσκονται μέσα στο game/, άρα τίποτα δεν φορτώνεται από CDN ή άλλον ιστότοπο. Κάθε νέα φόρτωση σελίδας φτάνει ακόμα στον διακομιστή σας, άρα δεν είναι εφαρμογή εγκατάστασης που λειτουργεί εκτός σύνδεσης. Τρέχει σε οθόνες αφής: οι παίκτες σκοπεύουν στο τραπέζι και τραβούν τον έλεγχο ισχύος.

Τα έργα εγγενών εφαρμογών δεν περιλαμβάνονται στο πακέτο. Αν θέλετε το παιχνίδι στο Google Play ή στο App Store, ένα περιτύλιγμα όπως το Capacitor, που οι δημιουργοί του περιγράφουν ως cross-platform native runtime για κινητές εφαρμογές με web κώδικα, είναι ένας συνηθισμένος δρόμος. Η δημιουργία και συντήρηση του έργου για τα store είναι δική σας δουλειά, ή μια υπηρεσία που προσφέρουμε χωριστά.

Τι αφήνει έξω η έκδοση

Το Velvet Pool είναι η τοπική έκδοση για browser. Δεν έχει online multiplayer ή ιδιωτικά δωμάτια, online κατάταξη, cloud λογαριασμούς ή SDK διαφημίσεων. Δύο άτομα μπορούν να παίξουν σε μία συσκευή, και οι προσωπικές βαθμολογίες από κατάλληλους αγώνες με CPU αποθηκεύονται στον browser. Η εξάσκηση και οι αγώνες στην ίδια συσκευή δεν αποθηκεύουν βαθμολογία.

Το online παιχνίδι χρειάζεται δικό σας διακομιστή και ανάπτυξη. Είναι πραγματικό έργο, οπότε προγραμματίστε το εξαρχής αντί να περιμένετε ότι το πρότυπο θα μεγαλώσει σε αυτό. Αν ο κατάλογός σας χρειάζεται περισσότερα αθλητικά παιχνίδια, και τα δύο αυτά πωλούνται επίσης ως έτοιμες εκδόσεις για browser.

Puttide: τρισδιάστατο mini golf με 30 τρύπες, επίσης σε απλή JavaScript

Golazo: επιτραπέζιο ποδόσφαιρο με 50 εθνικές ομάδες

Άδεια και τιμή σε μία παράγραφο

Το Velvet Pool κοστίζει 39 $. Έως τις 30 Νοεμβρίου 2026 μια προσφορά Black Friday κάνει έκπτωση 15% σε κάθε πρότυπο, άρα κοστίζει 33,15 $, και οι παραγγελίες δύο ή περισσότερων προτύπων παίρνουν επιπλέον έκπτωση 5% έως 20%. Κάθε αγορά είναι διαρκής, μη αποκλειστική άδεια για ένα τελικό προϊόν, δικό σας ή ενός πελάτη. Μπορείτε να αλλάξετε τον κώδικα, τα γραφικά και τον ήχο μέσα σε αυτό το προϊόν και να βάλετε το δικό σας brand. Οι παίκτες μπορούν να το έχουν δωρεάν ή μέσω διαφημίσεων. Δεν μπορείτε να μεταπωλήσετε το πρότυπο ή τον κώδικά του μόνα τους. Περιλαμβάνονται έξι μήνες υποστήριξης, ή 12 με την επέκταση στο ταμείο· προσαρμογές, φιλοξενία και ενσωμάτωση SDK ή πύλης προσφέρονται χωριστά.

Διαβάστε τους πλήρεις όρους άδειας και υποστήριξης

Συχνές ερωτήσεις

Ο πηγαίος κώδικας pool είναι αναγνώσιμος ή συμπιεσμένος;

Αναγνώσιμος. Η JavaScript στα source/src και game/src είναι απλή και μορφοποιημένη, χωρίς συμπιεσμένα ή ομαδοποιημένα αρχεία.

Χρειάζομαι Node.js ή βήμα build;

Όχι. Επεξεργάζεστε τα αρχεία στο source/ και τα αντιγράφετε στο game/. Το Node.js 20 ή νεότερο χρειάζεται μόνο αν θέλετε να τρέξετε τα προαιρετικά τεστ.

Μπορώ να κάνω την CPU πιο εύκολη ή πιο δύσκολη;

Ναι. Η επιλογή χτυπημάτων της CPU βρίσκεται στο src/core/ai.js, χωριστά από τη φυσική, οπότε μπορείτε να τη ρυθμίσετε χωρίς να αλλάξετε πώς κινούνται οι μπάλες.

Λειτουργεί σε τηλέφωνα;

Ναι. Υποστηρίζεται είσοδος αφής και τα χειριστήρια προσαρμόζονται στην οθόνη. Χρειάζεται WebGL2, και η απόδοση εξαρτάται από τη συσκευή, οπότε δοκιμάστε τα τηλέφωνα που χρησιμοποιούν οι παίκτες σας.

Θα κρατήσουν οι παίκτες την πρόοδό τους αν μεταφέρω το παιχνίδι σε νέο τομέα;

Όχι. Οι αποθηκεύσεις ανήκουν στην προέλευση του browser, άρα η αλλαγή τομέα ξεκινά τους παίκτες από την αρχή. Διαλέξτε την τελική διεύθυνση πριν την κυκλοφορία.

Μπορώ να προσθέσω online multiplayer;

Όχι μόνο με αυτή την έκδοση. Χρειάζεται δικό σας διακομιστή και ανάπτυξη. Μπορούμε να το προσφέρουμε ως προσαρμοσμένη εργασία.

Σε ποιον ταιριάζει ο κώδικας pool

Ταιριάζει σε πύλη ή ιστότοπο που θέλει παιχνίδι 8 μπαλών στον κατάλογό του, σε πρακτορείο που παραδίδει ένα εμπορικό παιχνίδι μπιλιάρδου σε έναν πελάτη, και σε developer που θέλει να διαβάσει πώς γράφονται η φυσική και οι κανόνες του pool χωρίς βιβλιοθήκη 3D στη μέση. Ταιριάζει λιγότερο αν το σχέδιό σας βασίζεται σε online αγώνες ή κοινή κατάταξη.

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

Δοκιμάστε την επίδειξη του Velvet Pool και αγοράστε την άδεια

Χρειάζεστε αλλαγές ή πολλές άδειες; Ζητήστε προσφορά