Tournaments บน Pokékipe คู่มือฉบับเต็ม
จัดทัวร์ Pokémon Showdown แบบส่วนตัวหรือสาธารณะ ออโต้รีเซลฟ์แมตช์จากลิงก์รีเพลย์ และตามบทเรคเก็ตสด ๆ Smash, Street Fighter, หมากรุก หรืออะไรก็ตาม? เอนจินรองรับคอมมูนิตี้นอกระบบ Pokémon ด้วย
Pokékipe tournaments คืออะไร?
หน้า Tournaments รวบรวมทุกทัวร์คอมมูนิตี้ที่จัดบน Pokékipe คุณปั่นทัวร์ขึ้นมาได้ในไม่กี่คลิก เชิญใครก็ได้: เพื่อนใน Discord, ทีมในเซิร์ฟเวอร์, มั่ว ๆ จาก Showdown เอนจินจัดการเบรกเก็ต, จับคู่, แทร็กผล, และตัดสินข้อพิพาทให้หมด แต่ละทัวร์เป็นอิสระ: แมตช์, แชต, ประวัติทั้งหมดไม่พึ่งอะไรเลยนอกจากตัวทัวร์เอง
มีสองโฟลว์: สาธารณะ (โชว์บนหับ เปิดให้ทุกคน) และส่วนตัว (เข้าได้ด้วย invite code เท่านั้น) ทัวร์ที่ยังเป็น draft หรือจบแล้วจะไม่โผล่ใน public feed มีแต่อันที่ยังมีอะไรให้ทำ
ข้อกำหนด: Showdown username ที่ verify แล้ว
ถ้าจะสร้างหรือ join ทัวร์ Pokémon บัญชี Pokékipe ของคุณต้องมี Pokémon Showdown handle ที่ verified ใช้เวลาไม่ถึงนาที:
- ไปที่ account settings แล้วคลิก Link Showdown username
- พิมพ์ username PS ของคุณ บอทของเราส่งโค้ดสั้นๆ ทาง PM บน Showdown
- วางโค้ดกลับมาใน Pokékipe verified เสร็จ
พอ verify แล้ว flow Join และ Create จะปลดล็อก คุณยังใช้ alt ตอน signup ได้ (pseudo override บนฟอร์ม)
In practice
ประเภท bracket อธิบายครบ
รองรับ 4 ฟอร์แมต แต่ละอันมีจุดแข็งต่างกัน เลือกตามจำนวนผู้เล่นที่คาดและเดิมพันที่ตั้งไว้
Single elimination
แพ้ครั้งเดียวออก รันเร็วสุด bracket 16 คน = รวม 15 แมตช์ เหมาะกับทัวร์สั้น ไม่ทางการ หรือสนามใหญ่ (เกิน 64 คน) ขนาดที่ไม่ใช่ power-of-2 (5, 7, 13…) รองรับผ่าน bye อัตโนมัติในรอบ 1
Double elimination
ผู้แพ้ตกลงไปใน lower bracket และได้โอกาสที่สอง ผู้ชนะ lower bracket เจอแชมป์ upper bracket ในไฟนัล โดยอาจมี reset ถ้า LB ชนะ (bracket ถูก rebalance ด้วยรอบที่สอง ทั้งคู่อยู่ที่ 1 แพ้เท่ากัน)
Note
Round robin
ทุกคนเจอกันหมด รวม N × (N−1) / 2 แมตช์ จัดตารางผ่าน Berger rotation เพื่อให้ทุกรอบมีผู้เล่นทุกคนอยู่ในแมตช์ (หรือได้ bye ถ้า N เป็นเลขคี่) เหมาะกับกลุ่มเล็ก (≤ 8 คน) ที่อยากเพิ่มเวลาเล่นให้สุด ต้นทุน quadratic เกิน 10 คนเริ่มยาว
Swiss
ทางสายกลางระหว่าง single-elim กับ round-robin จำนวนรอบคงที่ (ดีฟอลต์ ceil(log2(N)) ขั้นต่ำ 3) ในแต่ละรอบ ผู้เล่นทุกคนเจอผู้เล่นอีกคนที่สกอร์ใกล้กัน 1-0 vs 1-0, 0-1 vs 0-1, ฯลฯ ไม่มีใครถูกคัดออก คุณเล่นครบทุกรอบ อันดับสุดท้ายตัดสินด้วย Buchholz (ผลรวมสกอร์ของคู่แข่ง)
ทัวร์ที่ไม่ใช่ Pokémon
เอนจินทัวร์ไม่ได้ถูกล็อกอยู่กับ Pokémon ถ้าคุณรันอีเวนต์ Smash Ultimate, Street Fighter 6, Chess, Magic, League of Legends หรือเกมคู่แข่งอื่นใด ระบบรันได้หมด แค่เลือก "Other (non-Pokémon)" ใน dropdown format ตอนสร้าง
จากนั้นพิมพ์ label อิสระ (เช่น "Smash Ultimate", "Chess Blitz 5+0", "SF6 Ranked") Label นี้จะโชว์ทุกที่แทน format Pokémon ปกติ ทั้ง card ทัวร์, overview, stream overlay, embed
ทำงานยังไง
- Create: ไม่ต้อง verify Showdown ใครก็รันทัวร์ generic ได้
- Join: ตอนคลิก Join คุณพิมพ์ pseudo อิสระ (FGC tag, handle chess.com, ชื่อทีม อะไรก็ได้)
- Bracket: ลอจิกเดียวกันเป๊ะกับ Pokémon ทั้ง single-elim, double-elim, round-robin, swiss เอนจินไม่สนเกม
- Arbitration: ไม่มี auto-report (ไม่มี Showdown replay URL ให้ parse) โฮสต์มาร์ค winner แต่ละแมตช์ด้วยมือผ่าน "Host resolve" ในห้องแมตช์
ความต่างจากทัวร์ Pokémon
- ไม่มี Showdown gating ทั้งตอนสร้างและตอน join
- Pseudo อิสระตอน signup แทน Showdown handle ที่ verified
- Auto-report ปิด โฮสต์ resolve ทุกแมตช์ด้วยมือ Dispute และ forfeit ยังใช้ได้ตามปกติ
Worth knowing
Public vs private, invite codes
Visibility ถูกตั้งตอนสร้าง และเปลี่ยนได้ตราบใดที่ทัวร์ยังอยู่ในสถานะ draft หรือ registration
- Public, โชว์บนหับ tournaments ผู้เล่นทุกคนที่มี Showdown username ที่ verify แล้วกด Join ได้ เหมาะกับงานคอมมูนิตี้แบบเปิด
- Private, ไม่โชว์บน listing สาธารณะ ระบบสร้าง invite code สุ่ม 8 ตัวอักษรตอนคุณสร้างทัวร์ แชร์ code หรือ invite URL เต็ม (/tournaments/<slug>?invite_code=XXX) ให้ผู้เล่นที่คุณต้องการ
สลับจาก public เป็น private จะสร้าง invite code ใหม่ให้อัตโนมัติ ทำกลับด้านก็โยน code ทิ้ง Code ถูกซ่อนจากคนที่ไม่ใช่โฮสต์: มีแต่ผู้จัดเท่านั้นที่เห็นและแชร์ได้
Worth knowing
เข้าร่วมทัวร์ส่วนตัวด้วย code
ถ้ามีคนแชร์ทัวร์ private กับคุณ มี 3 วิธี join:
- คลิก invite link เต็มที่เขาส่งให้ (รูปแบบ /tournaments/slug?invite_code=ABCD1234) ทุกอย่างถูก pre-fill
- บน hub ทัวร์ วาง invite link ในกล่อง Join with an invite code แล้วคลิก Go
- ถ้ามีแค่โค้ดไม่มี slug วางโค้ดในกล่องเดียวกันนั้น เราจะถาม slug ในขั้นถัดไป
พอเข้าหน้าทัวร์แล้ว คลิก "Join tournament" สำหรับทัวร์ Pokémon คุณต้องมี Showdown handle ที่ verified (gating เดียวกับการสร้าง) สำหรับทัวร์ generic แค่ pseudo อิสระก็พอ
เจาะลึกการโฮสต์
หา host workflow เต็มอยู่เหรอ หน้านี้ครอบ Q&A แบบ entry-point เท่านั้น คู่มือ operation เต็มดูที่หน้า host workflow โดยเฉพาะ
Host workflow guide ครอบ 12 ขั้นตอนแบบละเอียด: configure ทัวร์, seed bracket, รัน check-in, start, จัดการ lifecycle ของแมตช์, auto-report ผล, รับมือ dispute และ forfeit, host-resolve เคสไม่ตรง, deadline และแชท, ประกาศอันดับ, grand final (กลไก double-elim), edit/cancel/audit trail
คำถามที่พบบ่อย
Q&A สั้นเกี่ยวกับฟีเจอร์ทัวร์ที่ถามบ่อย ถ้าอยาก how-to เชิงลึก ดู host workflow guide ที่ลิงก์ด้านบน
จัดทัวร์มากกว่าหนึ่งรายการพร้อมกันได้ไหม?
ได้ ไม่มีลิมิตจำนวนทัวร์นาเมนต์พร้อมกันต่อโฮสต์ คุณรันทัวร์ draft ควบคู่กับทัวร์ที่กำลังดำเนินอยู่และทัวร์ที่จบแล้วได้ ทั้งหมดอยู่ใต้แท็บ Mine
ถ้าผู้เล่นล้มเลิกบัญชีกลางทัวร์ จะเกิดอะไรขึ้น?
แถวผู้เข้าร่วมยังอยู่ครบ (เราไม่ cascade-delete ประวัติทัวร์นาเมนต์) แมตช์ของเขายังโชว์ pseudo ที่ใช้ลงทะเบียน และโฮสต์สามารถสั่ง forfeit แมตช์ที่ค้างของเขาเพื่อเดินบ้านต่อได้
ใช้ Showdown pseudo คนละชื่อกับที่ verify ไว้สำหรับทัวร์นี้ได้ไหม?
ได้ มีฟิลด์ showdown_pseudo override ตอน signup คุณยังต้องมี handle ที่ verified อย่างน้อยหนึ่งอันบนบัญชี Pokékipe override ตัวนี้ไม่ถูก re-verify (จะ harden ใน V2 ตอนนี้เราเชื่อใจคนเซ็น)
ออโต้รีพอร์ตบอกว่ารีเพลย์ไม่แมตช์ ผิดตรงไหน?
สาเหตุที่ auto-report ถูก reject มี 3 อย่างหลัก: 1. Replay มาจาก format คนละอันกับที่คาด Format ต้องตรงเป๊ะ คุณ report แมตช์ gen9ou ในทัวร์ gen9ubers ไม่ได้ ถึงลิงก์จะ valid ก็ตาม 2. Pseudo ใน replay ไม่ตรงกับที่คาด เช็คทั้งสองผู้เล่นมี pseudo ที่ลงทะเบียนถูกในทัวร์ (มี alt override ตอน signup ได้) 3. Replay เข้าไม่ได้ (Showdown คืน 404) รอ 30 วินาทีหลัง Save replay ให้ PS index ลิงก์ก่อน แล้วลองใหม่
ใครเห็นแชตของแมตช์ได้บ้าง?
แค่ผู้เล่นสองคนในแมตช์กับโฮสต์ทัวร์เท่านั้น ไม่เปิด public แม้แต่ผู้เข้าร่วมทัวร์คนอื่นในแมตช์อื่นก็อ่านไม่ได้ ประวัติยังคงอยู่หลังแมตช์จบเพื่อให้มี context สำหรับ dispute และ appeal
จัดทัวร์โดยไม่มี match timer ได้ไหม?
ได้ match timer เป็น optional ถ้าไม่ตั้ง จะไม่มี deadline และไม่มี auto-dispute แมตช์เปิดค้างจนกว่าจะมีคน report เหมาะกับทัวร์ casual ที่ผู้เล่นนัดกันเอง
ทัวร์ double-elim ของผมมีผู้เล่นจำนวนคี่ โอเคไหม?
ได้ จำนวนตั้งแต่ 4 คนขึ้นไปรองรับหมด จำนวนที่ไม่ใช่ power-of-2 จัดการด้วย phantom bye ที่ cascade ลงไปใน lower bracket อัลกอริทึมจัดการช่องว่างถูกต้อง 5, 7, 13 คน ใช้ได้หมด
หลังทัวร์จบ แชร์เบรกเก็ตเป็นสาธารณะได้ไหม?
ได้ หน้า detail ยังเข้าถึงได้ผ่าน slug (เช่น `/tournaments/spring-ou-cup`) สำหรับทัวร์ public อยู่ในสถานะ read-only สำหรับทัวร์ private มีแค่โฮสต์กับผู้เข้าร่วมที่ยังเห็น bracket เต็มได้ เหมาะสำหรับการทำ post-mortem ของอีเวนต์