ซอร์สโค้ดเกมพูล: เปิดดูแพ็กเกจ HTML5 พูล 8 ลูก
ฟิสิกส์ กติกา คอมพิวเตอร์คู่แข่ง และเซฟ แยกกันคนละไฟล์: ซอร์สโค้ด Velvet Pool มีอะไร และผู้ซื้อแก้อะไรก่อน

ซอร์สโค้ดเกมพูลคุ้มค่าที่จะซื้อเมื่อสามส่วนแยกอยู่คนละไฟล์และอ่านง่าย ได้แก่ ฟิสิกส์ของลูก กติกาพูล 8 ลูก และคอมพิวเตอร์คู่แข่ง ถ้าทั้งหมดพันกันอยู่ การเปลี่ยนสีผ้าหรือความยากของ CPU ทุกครั้งจะกลายเป็นการไล่แก้บั๊ก Velvet Pool เทมเพลตพูล 8 ลูกของเรา แยกส่วนเหล่านี้ไว้ และคู่มือนี้จะพาดูแพ็กเกจทีละไฟล์
เราอธิบายว่าโค้ดจัดระเบียบอย่างไร ผู้ซื้อมักแก้อะไรก่อน วิธีโฮสต์หรือห่อเป็นแอป ไลเซนส์อนุญาตอะไร และรุ่นนี้ไม่มีอะไรบ้าง ชื่อไฟล์ทุกชื่อด้านล่างมาจากคู่มือสำหรับผู้ซื้อที่แนบมากับเกม
สรุปสั้นๆ: Velvet Pool เป็น JavaScript ล้วนบน WebGL2 ไม่มีไลบรารี 3D และไม่มีขั้นตอนบิลด์ แก้ไฟล์ คัดลอกไปที่โฟลเดอร์เกม แล้วรีโหลดหน้า
ซอร์สโค้ดเกมพูลนี้มีอะไรบ้าง
Velvet Pool เป็นเกมพูล 8 ลูกที่เสร็จสมบูรณ์ ไม่ใช่เอนจินหรือชุดเริ่มต้น ไฟล์ดาวน์โหลดมีสี่โฟลเดอร์: game/ คือบิลด์พร้อมอัปโหลด source/ คือเกมเดียวกันในรุ่นสำหรับนักพัฒนา มี README, package.json และชุดทดสอบ documentation/ เก็บคู่มือพร้อมภาพประกอบภาษาอังกฤษและโปรตุเกส และ THIRD-PARTY-LICENSES/ เก็บข้อความไลเซนส์ของฟอนต์
ตัวเกมเล่นพูล 8 ลูกแบบมีฟาวล์ ball-in-hand (ฟรีบอล) และเลือกลูกเต็มหรือลูกครึ่ง มี CPU 3 ระดับ (Easy, Medium และ Hard) โต๊ะฝึกซ้อมอิสระที่ย้อนกลับ วางลูก และตั้งลูกใหม่ได้ และโหมดสองผู้เล่นบนอุปกรณ์เดียว ผู้เล่นใส่สปินตาม สปินดึง หรือสปินข้างให้ลูกขาวได้ และความสำเร็จในเครื่องจะปลดล็อกสีผ้า 5 แบบและไม้คิว 5 แบบ อินเทอร์เฟซมี 14 ภาษา
- สแต็ก: JavaScript ล้วน (vanilla) ES modules และ WebGL2 ไม่มี Three.js หรือไลบรารีโค้ดอื่น
- โค้ด: JavaScript ธรรมดาที่จัดรูปแบบแล้วใน source/src และ game/src ไม่มีการย่อ (minify) หรือรวมไฟล์ (bundle)
- ชุดทดสอบ: ไม่บังคับ ใช้ Node.js 20 ขึ้นไป ตรวจฟิสิกส์ กติกา 8 ลูก แมตช์กับ CPU และคีย์คำแปล
- เวอร์ชันขณะเขียน: 1.1.0 อัปเดตเมื่อ 22 ตุลาคม 2569 (2026)
ดูหน้าสินค้า Velvet Pool เดโม และคู่มือ
ไฟล์จัดระเบียบอย่างไร
game/ และ source/ มีโครงสร้างเดียวกัน พาธในโฟลเดอร์หนึ่งจึงชี้ไปยังไฟล์เดียวกันในอีกโฟลเดอร์ สำหรับเกมพูล การแยกที่สำคัญที่สุดคือระหว่าง 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 เป็นโมดูลแยกกัน คุณจึงทำให้ CPU ใจดีขึ้นได้โดยไม่แตะการเคลื่อนที่ของลูก หรือเปลี่ยนกติกาฟาวล์ได้โดยไม่ต้องปรับขอบโต๊ะใหม่ การแยกส่วนแบบนี้คือสิ่งสำคัญที่สุดที่ต้องมองหาในโค้ดบิลเลียดที่จะซื้อ
ผู้ซื้อแก้อะไรก่อน
โปรเจกต์ส่วนใหญ่ไปตามลำดับเดียวกัน เริ่มจากสิ่งที่ผู้เล่นเห็น แล้วไปที่สิ่งที่ผู้เล่นรู้สึก และเก็บกติกาไว้ท้ายสุด เพราะกติกาเป็นจุดที่ทำบั๊กเกิดง่ายที่สุด
- แบรนด์: เปลี่ยนไฟล์โลโก้ใน assets/logo/ และปรับขนาดที่เกี่ยวข้องใน CSS อนุญาต white label ชื่อของคุณหรือลูกค้าจึงแทนชื่อเราได้
- หน้าตาโต๊ะ: สีและฟอนต์อยู่ใน css/style.css ข้อมูลผ้าโต๊ะและไม้คิวอยู่ใน progress.js ให้คง ID ไว้เหมือนเดิม ไม่อย่างนั้นผู้เล่นจะเสียไอเท็มตกแต่งที่ปลดล็อกไปแล้ว
- ข้อความและภาษา: ทุกข้อความอยู่ใน i18n.js แก้ถ้อยคำที่ต้องการ รายการภาษาอยู่ใน LANGS
- ความยากของ CPU: การเลือกช็อตอยู่ใน ai.js ปรับทีละระดับแล้วเล่นแมตช์เต็มกับระดับนั้น
- ฟิสิกส์: แรงเสียดทาน สปิน และการกระทบขอบอยู่ใน physics.js ตรงนี้แก้นิดเดียวก็มีผลมาก จึงควรรันชุดทดสอบหลังแก้ทุกครั้ง
- กติกา: กติกาแบบเฉพาะถิ่นใส่ไว้ใน rules.js ทดสอบฟาวล์และ ball-in-hand ด้วยมือควบคู่กับชุดทดสอบ
ขั้นตอนทำงานเหมือนกันทุกข้อ: แก้ไฟล์ใน source/ คัดลอกไปยังพาธเดียวกันใน game/ เสิร์ฟโฟลเดอร์ผ่าน HTTP แล้วรีโหลด คู่มือผู้ซื้อแนะนำให้เปลี่ยนทีละฟีเจอร์ และหลังแก้แต่ละครั้งให้ทดสอบเมนู แมตช์หนึ่งเกม การหยุดชั่วคราว หน้าจอผล และการรีโหลด
โฮสต์ ฝังในเว็บ หรือห่อเป็นแอป
การโฮสต์เป็นส่วนที่ง่ายที่สุด อัปโหลดทุกอย่างใน game/ ไปยังโฟลเดอร์อย่าง public_html/velvet-pool/ คงโฟลเดอร์ย่อยไว้ แล้วเปิดที่อยู่นั้น ฝั่งเซิร์ฟเวอร์ไม่ต้องมี npm เทอร์มินัล PHP ฐานข้อมูล หรือบัญชีผู้ใช้ แพ็กเกจโฮสต์ที่เสิร์ฟไฟล์สแตติกผ่าน HTTPS ก็พอ
- อย่าเปิด index.html ด้วยการดับเบิลคลิก เบราว์เซอร์บล็อกโมดูลของเกมบน file:// สำหรับทดสอบในเครื่อง ให้รัน python -m http.server 8765 ใน game/
- ถ้าหน้าจอว่างเปล่า ตรวจว่าเปิด WebGL2 แล้ว และชื่อไฟล์ยังคงตัวพิมพ์ใหญ่และเล็กไว้ถูกต้อง
- ถ้าเบราว์เซอร์ปฏิเสธโมดูล แปลว่าเซิร์ฟเวอร์ส่งไฟล์ .js ด้วย MIME type ที่ผิด
- ถ้าใส่ใน iframe บนพอร์ทัล ให้อนุญาต fullscreen และ autoplay
ทุกอย่างที่เกมต้องใช้ตอนรันอยู่ใน game/ ไม่มีอะไรโหลดจาก CDN หรือเว็บอื่น แต่การโหลดหน้าใหม่ยังต้องเรียกไปที่โฮสต์ของคุณ จึงไม่ใช่แอปออฟไลน์แบบติดตั้ง เกมเล่นบนจอสัมผัสได้ ผู้เล่นเล็งบนโต๊ะและดึงตัวควบคุมแรง
โปรเจกต์แอปเนทีฟไม่รวมอยู่ในแพ็กเกจ ถ้าต้องการเกมบน Google Play หรือ App Store ตัวห่ออย่าง Capacitor ซึ่งผู้พัฒนาอธิบายว่าเป็นรันไทม์เนทีฟข้ามแพลตฟอร์มสำหรับสร้างแอปมือถือด้วยโค้ดเว็บ เป็นทางที่นิยมทางหนึ่ง การสร้างและดูแลโปรเจกต์สำหรับสโตร์เป็นงานของคุณ หรือเป็นบริการที่เราเสนอราคาแยก
รุ่นนี้ไม่มีอะไรบ้าง
Velvet Pool เป็นรุ่นเล่นบนเบราว์เซอร์แบบในเครื่อง ไม่มีโหมดผู้เล่นหลายคนออนไลน์หรือห้องส่วนตัว ไม่มีอันดับออนไลน์ ไม่มีบัญชีบนคลาวด์ และไม่มี SDK โฆษณา สองคนเล่นบนอุปกรณ์เดียวได้ และคะแนนส่วนตัวจากแมตช์กับ CPU ที่เข้าเกณฑ์จะบันทึกในเบราว์เซอร์ โหมดฝึกซ้อมและแมตช์บนอุปกรณ์เดียวกันไม่บันทึกคะแนน
การเล่นออนไลน์ต้องมีเซิร์ฟเวอร์และการพัฒนาของคุณเอง นั่นคือโปรเจกต์จริงจัง จึงควรตั้งงบไว้ตั้งแต่ต้น แทนที่จะหวังให้เทมเพลตขยายไปถึงตรงนั้นเอง ถ้าแคตตาล็อกของคุณต้องการเกมกีฬาเพิ่ม สองเกมนี้ก็ขายเป็นรุ่นเบราว์เซอร์พร้อมโฮสต์เช่นกัน
Puttide: มินิกอล์ฟ 3D 30 หลุม เขียนด้วย JavaScript ล้วนเช่นกัน
Golazo: ฟุตบอลโต๊ะกับทีมชาติ 50 ทีม
ไลเซนส์และราคาในย่อหน้าเดียว
Velvet Pool ราคาตั้ง 39 ดอลลาร์ ถึงวันที่ 30 พฤศจิกายน 2569 (2026) โปรโมชัน Black Friday ลด 15% ทุกเทมเพลต ราคาจึงเหลือ 33.15 ดอลลาร์ และคำสั่งซื้อตั้งแต่สองเทมเพลตขึ้นไปลดเพิ่มอีก 5% ถึง 20% การซื้อแต่ละครั้งคือไลเซนส์ถาวรและไม่ผูกขาดสำหรับผลิตภัณฑ์ปลายทางหนึ่งชิ้น ของคุณหรือของลูกค้าหนึ่งราย คุณแก้โค้ด ภาพ และเสียงในผลิตภัณฑ์นั้นได้ และใส่แบรนด์ของคุณเองได้ ผู้เล่นเข้าถึงได้ฟรีหรือผ่านโฆษณา แต่ห้ามขายต่อเทมเพลตหรือโค้ดแยกเดี่ยว รวมซัพพอร์ต 6 เดือน หรือ 12 เดือนเมื่อเลือกส่วนขยายตอนชำระเงิน งานสั่งทำ การโฮสต์ และการเชื่อมต่อ SDK หรือพอร์ทัลเสนอราคาแยก
อ่านเงื่อนไขไลเซนส์และซัพพอร์ตฉบับเต็ม
คำถามที่พบบ่อย
ซอร์สโค้ดเกมพูลอ่านได้ หรือถูกย่อไว้?
อ่านได้ JavaScript ใน source/src และ game/src เป็นโค้ดธรรมดาที่จัดรูปแบบแล้ว ไม่มีไฟล์ที่ถูกย่อหรือรวม
ต้องใช้ Node.js หรือขั้นตอนบิลด์ไหม?
ไม่ต้อง คุณแก้ไฟล์ใน source/ แล้วคัดลอกไปที่ game/ ต้องใช้ Node.js 20 ขึ้นไปก็ต่อเมื่ออยากรันชุดทดสอบแบบไม่บังคับเท่านั้น
ปรับ CPU ให้ง่ายขึ้นหรือยากขึ้นได้ไหม?
ได้ การเลือกช็อตของ CPU อยู่ใน src/core/ai.js แยกจากฟิสิกส์ จึงปรับได้โดยไม่เปลี่ยนการเคลื่อนที่ของลูก
เล่นบนมือถือได้ไหม?
ได้ รองรับการสัมผัสและตัวควบคุมปรับตามหน้าจอ ต้องใช้ WebGL2 และประสิทธิภาพขึ้นอยู่กับอุปกรณ์ จึงควรทดสอบกับมือถือที่ผู้เล่นของคุณใช้
ถ้าย้ายเกมไปโดเมนใหม่ ผู้เล่นจะยังมีความคืบหน้าอยู่ไหม?
ไม่ เซฟผูกกับ origin ของเบราว์เซอร์ การเปลี่ยนโดเมนจะทำให้ผู้เล่นเริ่มใหม่ เลือกที่อยู่จริงให้เรียบร้อยก่อนเปิดตัว
เพิ่มโหมดผู้เล่นหลายคนออนไลน์ได้ไหม?
ทำไม่ได้ด้วยรุ่นนี้อย่างเดียว ต้องมีเซิร์ฟเวอร์และการพัฒนาของคุณเอง เราเสนอราคาเป็นงานสั่งทำได้
โค้ดพูลนี้เหมาะกับใคร
เหมาะกับพอร์ทัลหรือเว็บไซต์ที่อยากมีเกมพูล 8 ลูกในแคตตาล็อก เอเจนซีที่ส่งมอบเกมบิลเลียดติดแบรนด์ให้ลูกค้าหนึ่งราย และนักพัฒนาที่อยากอ่านว่าฟิสิกส์และกติกาพูลเขียนอย่างไรโดยไม่มีไลบรารี 3D มาขวาง แต่ไม่ค่อยเหมาะถ้าแผนของคุณพึ่งแมตช์ออนไลน์หรือลีดเดอร์บอร์ดร่วมกัน
ลองเล่นเดโมทั้งบนมือถือและแล็ปท็อปก่อนซื้อ และเปิดผังไฟล์ในคู่มือ ถ้าการแยกฟิสิกส์ กติกา และ CPU ตรงกับวิธีทำงานของคุณ ที่เหลือก็แค่แก้ไขกันไม่กี่บ่าย
