บันทึกจากนักพัฒนา

เราสร้างสายทัวร์เทศกาลดนตรีขึ้นมาอย่างไร (และอะไรพัง)

Oct 27, 2026อ่าน 5 นาที

บันทึกนักพัฒนาเรื่องการออกแบบสายทัวร์เทศกาลดนตรี ทั้งสี่ระดับ การจัดอันดับที่สะสมทั้งฤดูกาล บั๊กเขตเวลาที่ทำให้ผู้เล่นคนหนึ่งเสียสิทธิ์ และสิ่งที่เราแก้ไขหลังจากนั้น

รอบชิงชนะเลิศระดับสูงสุดครั้งแรกที่เราเปิดใช้งานนั้นไม่เคยตัดสินผลได้เลย มันค้างอยู่อย่างนั้นจนเลยเที่ยงคืน เป็นสายการแข่งขันที่มีช่องว่างตรงจุดที่ควรจะมีแชมป์

นี่คือเวอร์ชันตรงไปตรงมาของการปล่อยของใหม่ ดังนั้นนี่คือบันทึกนักพัฒนา ว่าการออกแบบสายทัวร์เทศกาลดนตรีของเราลงตัวได้อย่างไร อะไรที่ทำถูกตั้งแต่ฤดูกาลจริงแรก และสามสิ่งที่พังภายในไม่กี่ชั่วโมงหลังวงจริงเข้ามาแตะมัน

ทำไมต้องเป็นสายทัวร์ ไม่ใช่แค่โชว์ที่ใหญ่ขึ้น

โชว์รายสัปดาห์คือหัวใจที่เต้นอยู่ของเกมนี้ และมันก็เป็นงานซ้ำ ๆ โดยตั้งใจด้วย คุณจองคิว คุณเล่น คุณเรียนรู้ว่าห้องแบบไหนทำอะไรกับเซ็ตลิสต์ แล้วตัวเลขก็ค่อย ๆ ขยับขึ้น

สิ่งที่เรายังไม่มีคือจุดสูงสุด ปีของวงดนตรีจริง ๆ มีรูปทรงของมัน คุณลากตัวเองผ่านฤดูหนาว แล้วพอถึงเดือนกรกฎาคมก็มีคนจับคุณขึ้นเวทีกลางทุ่งตอนบ่ายสี่

เราอยากได้รูปทรงแบบนั้น ฤดูกาลเทศกาลดนตรีที่ซ้อนอยู่ในฤดูกาลอีกที

การออกแบบสายทัวร์เทศกาลดนตรีที่เราเลือกใช้

สี่ระดับ ตั้งแต่เวทีท้องถิ่นไปจนถึงเต็นท์ระดับสูงสุด การเข้าร่วมเป็นอัตโนมัติทันทีที่สายทัวร์เปิดกลางฤดูกาล และนั่นเป็นการตัดสินใจที่ตั้งใจ เราไม่อยากให้ที่นั่งในเทศกาลตกเป็นของคนที่บังเอิญออนไลน์อยู่ในนาทีนั้นพอดี

ส่วนที่เหลือทำงานแบบนี้

  • •แต้มสายทัวร์ สะสมตลอดฤดูกาลจากการเล่นสดและการปล่อยผลงานของคุณ อันดับจึงสะท้อนงานหลายเดือน ไม่ใช่สัปดาห์ที่โชคดีสัปดาห์เดียว
  • •การจัดอันดับวาง มาจากแต้มเหล่านั้น แปลว่าระดับที่คุณไปอยู่นั้นได้มาด้วยฝีมือ ไม่ใช่เลือกเอง
  • •สายการแข่งขัน ดำเนินไปหลายสัปดาห์ในฤดูกาล ทีละรอบ และตัดสินผลด้วยรอบประมวลผลรายสัปดาห์ตัวเดียวกับที่ขับเคลื่อนทุกอย่าง
  • •รางวัล คือกระแสและชื่อเสียง ไม่ใช่เงิน อันนี้ตั้งใจ เราไม่อยากให้สายทัวร์กลายเป็นทางลัดรวยที่สุด แต่อยากให้เป็นทางลัดที่คนรู้จักเร็วที่สุด

ข้อสุดท้ายนี้ทำให้เราเถียงกันในบันทึกของตัวเองอยู่ราวหนึ่งสัปดาห์ รางวัลเงินสดคือคันโยกที่เห็นชัดที่สุด และมันก็เป็นทางที่สั้นที่สุดที่จะเปลี่ยนงานที่มีเกียรติให้กลายเป็นเส้นทางฟาร์มแต้ม พอถึงจุดนั้นแล้วก็ไม่มีใครจำได้ว่าใครชนะอะไร

หัวใจของการออกแบบอยู่ที่การจัดอันดับวาง

ทุกอย่างที่น่าสนใจในสายการแข่งขันเกิดขึ้นก่อนแมตช์แรก ถ้าจัดอันดับวางผิด คุณก็จะยกถ้วยให้วงที่ใหญ่ที่สุดไปโดยปริยาย หรือไม่ก็สร้างความวุ่นวายที่รู้สึกเหมือนสุ่มมั่ว

เราเลือกจัดอันดับวางอย่างเข้มงวดที่ด้านบน และจับคู่หลวมกว่าที่ด้านล่าง วงที่แข็งแกร่งควรได้เจอวงที่แข็งแกร่งด้วยกันในรอบท้าย ๆ แต่วงที่ลงสายทัวร์ครั้งแรกก็ควรได้แมตช์จริง ไม่ใช่การประหารตามพิธีกรรม

ส่วนที่ยุ่งยากคือเลขคี่ สายการแข่งขันอยากได้จำนวนที่เป็นเลขยกกำลังสอง แต่จำนวนผู้เข้าร่วมจริงไม่ยอมเป็นแบบนั้นเด็ดขาด การให้ผ่านเข้ารอบอัตโนมัติช่วยแก้ได้ และตรงนั้นเองคือจุดที่เราใส่บั๊กที่แย่ที่สุดลงไป

สามสิ่งที่พังในการรันจริงครั้งแรก

อย่างแรกเงียบและร้ายมาก แหล่งข้อมูลแต้มที่เราอ่านค่าไม่ส่งอะไรกลับมาเลย ทุกวงถูกวางอันดับที่ศูนย์ ทำให้สายการแข่งขันแทบจะสุ่มล้วน ๆ มันดูเหมือนทำงานได้ แต่มันไม่ได้ทำงาน

อย่างที่สองคือรอบชิงที่ว่างเปล่า ระดับสูงสุดของเราแข่งในสัปดาห์สุดท้ายตามกำหนด แต่โค้ดที่ตัดสินผลแต่ละรอบสมมติว่าจะมีสัปดาห์ถัดไปเสมอ ซึ่งไม่มี รอบชิงจึงไม่เคยปิด และพอฤดูกาลเปลี่ยน มันก็ลากข้อมูลเทศกาลบางส่วนไปด้วย

อย่างที่สามคือการให้ผ่านเข้ารอบอัตโนมัติ เราจัดการมันถูกต้องเฉพาะในรอบแรกและไม่เคยถูกอีกเลย วงที่ผ่านเข้ารอบโดยไม่มีคู่แข่งในรอบหลัง ๆ จึงหยุดเดินหน้าไปเงียบ ๆ

บั๊กเขตเวลาที่ทำให้บางคนเสียที่นั่ง

แล้วก็มีอันที่ยังเจ็บอยู่จนถึงตอนนี้ การสมัครปิดตามเวลาที่กำหนดตายตัว แต่การล็อกถูกคำนวณด้วยเวลาท้องถิ่นของเซิร์ฟเวอร์ ขณะที่นาฬิกานับถอยหลังที่ผู้เล่นเห็นแสดงตามเวลาของเขาเอง สำหรับคนส่วนใหญ่ในโลกความต่างนี้ไม่มีผล แต่สำหรับผู้เล่นคนหนึ่งมันคือหนึ่งชั่วโมง และเขายืนยันการสมัครช้ากว่ากำหนดหนึ่งชั่วโมง ทั้งที่ไม่มีทางมองเห็นกำหนดนั้นได้ถูกต้องเลย

เขาทำทุกอย่างถูกต้องหมด แต่เขาก็ยังพลาดสายทัวร์อยู่ดี

เราแก้มันด้วยวิธีที่น่าเบื่อที่สุด ทุกกำหนดปิดถูกเก็บและเทียบเป็นเวลา UTC หน้าจอแสดงนาฬิกานับถอยหลังแบบเรียลไทม์แทนที่จะเป็นเวลานาฬิกาแขวน และช่วงเวลาสมัครตอนนี้ปิดพร้อมคำเตือนที่มองเห็นได้ ไม่ใช่ปิดเงียบ ๆ เรายังทำให้ตัวประมวลผลรอบเป็นแบบทำซ้ำได้ปลอดภัย รอบที่รันไปครึ่งทางจึงรันใหม่ได้โดยผลลัพธ์ไม่ซ้ำซ้อน

คุณอ่านกลไกทั้งหมดได้ที่ส่วนเทศกาลดนตรีในคู่มือในเกม และถ้าอยากลงมือเล่นมากกว่าอ่านว่ามันต่อสายกันอย่างไร ก็มีบทความเชิงกลยุทธ์เรื่องวิธีคว้าชัยในเทศกาลดนตรี ส่วนบันทึกตอนเปิดตัวครั้งแรกอยู่ที่เทศกาลดนตรีมาแล้ว

สิ่งที่เราได้กลับมา

ระบบที่ทำงานแค่ฤดูกาลละครั้งคือสิ่งที่ทดสอบยากที่สุด เพราะคุณมีโอกาสทำพลาดต่อหน้าคนอื่นได้ฤดูกาลละหนึ่งครั้งเท่านั้น ทางแก้ไม่ใช่ความฉลาดที่มากขึ้น แต่คือการสร้างวิธีเร่งเวลาให้รอบเทศกาลทั้งวงจรจบก่อนที่ใครจะได้เห็น

ตอนนี้สายทัวร์เปิดใช้งานแล้วและทำในสิ่งที่เราหวังไว้ กลางฤดูกาลมีเนินให้ปีน วงต่าง ๆ วางแผนเพื่อมัน ซึ่งเป็นพฤติกรรมที่เราต้องการพอดี

ถ้าอยากเห็นของจริงจากข้างใน ตั้งวงฟรี แล้วเล่นมุ่งไปที่สายทัวร์รอบหน้า มันทำงานในเบราว์เซอร์ ไม่มีค่าใช้จ่าย และโชว์แรกของคุณจองได้ในราวห้านาที

#dev-diary