ประสบการณ์ทำเกมตกปลาออนไลน์ Fishbone Cast ด้วย AI แทบทั้งโปรเจกต์ ทั้งจุดเด่นและปัญหา
สมาชิกกลุ่มแชร์ประสบการณ์พัฒนาเกมตกปลาออนไลน์ 2D บนเว็บโดยใช้ AI ช่วยเกือบทุกส่วน ทั้งเขียนโค้ดด้วย Claude Code เจนภาพตัวละคร และจัดการเซิร์ฟเวอร์ พร้อมเผยปัญหาการใช้ AI วาดภาพ 8 ทิศและปัญหา Performance จาก SQL ที่ AI เขียน

# **แชร์ประสบการณ์ทำเกมตกปลาออนไลน์บนเว็บด้วย AI แทบทั้งโปรเจกต์ครับ ทั้งส่วนที่ AI ช่ว…
เกม: **Fishbone Cast** เกมตกปลาออนไลน์ 2D มุมบน เล่นบนเบราว์เซอร์ คนส่วนใหญ่เล่นบนมือถือแนวนอน ผมเข้าไปช่วยเจ้าของเกมพัฒนา
Tools
- Client: Next.js 16 + React 19 + TypeScript, ตัวเกมใช้ Phaser 4 (WebGL)
- Backend: Supabase self-host ลงด้วย Coolify บน VPS ของ [https://byteder.com](https://byteder.com)
- Logic ที่ต้องกันโกงอย่างผลตกปลา เงิน ดาเมจบอส ตัดสินที่ฝั่ง server ทั้งหมด client แค่แสดงผล
ใช้ AI ตรงไหนบ้าง
- โค้ด: Claude Code เป็นหลัก แทบไม่ได้เขียนเองทีละบรรทัด หน้าที่ผมคือวางทาง รีวิว ทดสอบ แล้วไล่ว่ามันพังตรงไหน
- ภาพ 2D: เจนด้วย AI ทั้งหมด แล้วตัดพื้นด้วย rembg + สคริปต์ Python ตัดแผ่น/ตรวจคุณภาพ
- เสียงบอส: ใช้ไฟล์เสียง CC0 ไม่ได้เจน
- Server: byteder.com มี API กับ MCP ให้ใช้ AI เลยสั่ง deploy ดูสถานะเครื่อง หรือเข้าไปไล่ log ให้ได้เองตรง ๆ
**เรื่องที่อยากเล่า 1 **: บอสใหม่ตั้งโจทย์ว่าแต่ละตัวต้องให้ผู้เล่นทำคนละอย่าง ปัญหาของบอสชุดเก่าคือเป็นถุงเลือดเฉย ๆ คนเลเวลต่ำเข้าห้องไปก็รู้สึกว่าตัวเองไม่ได้ช่วยอะไร เลยออกแบบกลไกให้ผูกกับพฤติกรรมคนละแบบ ส่วนที่ยากคือ timing ต้องให้ server เป็นคนนับ (คนหลบ / คนช่วยตี) แล้วส่งผลกลับให้ทุกเครื่องเห็นพร้อมกัน ไม่งั้นมือถือที่เน็ตช้าจะเห็นบอสหลับช้ากว่าคนอื่น
**เรื่องที่อยากเล่า 2 **: ให้ AI วาดตัวละคร 8 ทิศให้นิ่ง ยากกว่าที่คิด
ตัวละครมี 8 ทิศ × 4 ท่า แรก ๆ สั่งให้วาด 32 ช่องในภาพเดียว แล้วเจอหลายอย่าง
- แผ่นท่าเดินออกมาตัวผอมกว่าแผ่นท่ายืน 20% ไล่ไปไล่มาเจอว่าโมเดลเลือกอัตราส่วนภาพเองคนละแบบในแต่ละแผ่น (2:1 กับ 1:1) แล้ววาดตัวให้พอดีช่อง พอบังคับ 3:2 ทุกแผ่น สัดส่วนต่างกันเหลือ 0.5%
- ชุดที่มีฮู้ด ทิศที่ไม่เห็นหน้า (หันหลัง/เฉียงหลัง) ฮู้ดบวมเป็นลูกโป่ง เพราะไม่มีหน้าให้โมเดลเทียบขนาดหัว
ทางแก้คือเปลี่ยนเป็นขอทีละทิศ แถวละ 4 ช่อง แล้วแนบภาพอ้างอิงของทิศนั้นไปด้วย ทิศไหนเสียก็ขอใหม่แค่ใบนั้น (รูปสุดท้ายคือชุดฮู้ดหมากับปลาดุกในเกม ครบ 8 ทิศ)
อีกเรื่องที่เจอคือสั่งแบบ "อย่าให้บวม" ไม่ค่อยได้ผล ต้องสั่งเป็นตัวเลข เช่น "ฮู้ดต้องแคบกว่าไหล่ 25%"
และมีสคริปต์วัดว่าขาสลับจริงไหมในแผ่นเดิน เพราะดูด้วยตาเร็ว ๆ แล้วพลาดบ่อย
**เรื่องที่อยากเล่า 3 **: SQL ที่ AI เขียนทำงานถูก แต่ซ่อนต้นทุนไว้
ข้อดีของการย้ายจาก serverless มา self-host ที่ไม่ได้คิดไว้ตอนแรกคือเข้าไปดูสถิติของ Postgres ได้เต็มที่ พอใช้ pg_stat_user_functions ไล่ดูว่าฟังก์ชันไหนกิน DB เจอสองเคส
- ฟังก์ชันเช็ควงล้อบ่อที่เปิดวันนี้ถูกเรียกใน WHERE เลยรันซ้ำทุกแถว นับรวมได้ 576 ล้านครั้
- config ทั้งเกมเก็บเป็น jsonb ก้อนเดียวประมาณ 1 MB ทุกครั้งที่อ่าน data->'x' Postgres
**บทเรียนคือ AI เขียนให้ "ถูก" ได้ แต่ถ้าไม่วัด เราจะไม่รู้เลยว่ามันแพงแค่ไหน**
ส่วนข้อเสียของ self-host ก็มี ต้องดูแลเอง ดิสก์ log เครื่องพังก็ของเรา แต่ได้คุมทุกอย่างเองแลกมา ผมว่าคุ้ม
ลองเล่น: [https://fishbonecast.com](https://fishbonecast.com)
มีคำถามเรื่อง stack, การใช้ AI หรือ self-host ถามในคอมเมนต์ได้เลยครับ เดี๋ยวมาตอบ




ความคิดเห็น 0
กำลังโหลดความคิดเห็น...