3 คะแนน โดย GN⁺ 2025-05-08 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • มีการเปิดเผยซอร์สโค้ดของเกมอินดี้ปี 2010 VVVVVV โดย Terry Cavanagh เป็นผู้สร้างเกม และ Magnus Pålsson รับหน้าที่ดนตรี
  • ซอร์สโค้ดของเวอร์ชันเดสก์ท็อปอยู่ในโฟลเดอร์ desktop_version ของรีโพซิทอรี
  • VVVVVV ยังคง วางจำหน่ายเชิงพาณิชย์ อยู่ แต่สามารถคอมไพล์บิลด์เพื่อใช้งานส่วนตัวได้อย่างอิสระ
  • หากต้องการ แจกจ่าย เวอร์ชันที่คอมไพล์แล้ว ต้องตรวจสอบ LICENSE.md ในรีโพซิทอรี
  • การพูดคุยเกี่ยวกับการอัปเดต VVVVVV ส่วนใหญ่เกิดขึ้นในช่อง vvvvvv-code ของ VVVVVV Discord ที่ไม่เป็นทางการ

ซอร์สโค้ดที่เปิดเผย

  • รีโพซิทอรีนี้เก็บซอร์สโค้ดของเกมอินดี้ปี 2010 VVVVVV ของ Terry Cavanagh
  • สามารถดูประกาศการเปิดซอร์สโค้ดได้จากประกาศบนบล็อกของ Terry: announcement
  • ซอร์สโค้ดของเวอร์ชันเดสก์ท็อปอยู่ในโฟลเดอร์ desktop_version

เงื่อนไขการใช้งานและการแจกจ่าย

  • VVVVVV ยังสามารถ ซื้อเชิงพาณิชย์ ได้อยู่
  • หากเป็นการใช้งานส่วนตัว สามารถคอมไพล์เกมด้วยตนเองได้
  • หากต้องการแจกจ่ายเวอร์ชันเกมที่คอมไพล์แล้ว ต้องตรวจสอบ LICENSE.md

ช่องทางพูดคุยเรื่องการอัปเดต

  • การพูดคุยเรื่องการอัปเดต VVVVVV ดำเนินอยู่เป็นหลักใน VVVVVV discord ที่ไม่เป็นทางการ
  • ช่องที่เกี่ยวข้องคือ vvvvvv-code

1 ความคิดเห็น

 
GN⁺ 2025-05-08
ความคิดเห็นจาก Hacker News
  • ตอนใกล้จบมัธยมปลาย ผมไป London กับครอบครัว แล้วส่งอีเมลหา Terry Cavanagh เพราะอยากเป็นนักพัฒนาเกม ไม่น่าเชื่อว่าเขาตอบตกลงชวนไปกินมื้อเที่ยงด้วยกันอย่างยินดี
    เขาใจดีมาก และให้คำแนะนำชีวิตหลายอย่างด้วย ผมจำได้ว่าเขาบอกว่าไอเดียส่วนใหญ่ไม่ได้มาจากวิสัยทัศน์ที่ยิ่งใหญ่อะไร แต่มาจากการ ลองเล่นและทดลองกับกลไกของเกม ยังไงเขาก็เป็นคนที่ยอดเยี่ยม และดีใจที่เขาเปิดซอร์ส VVVVVV ซึ่งเขาเรียกว่า V

    • ส่วนที่ว่า “ไอเดียส่วนใหญ่ได้มาจากการลองเล่นและทดลองกับกลไก” นั้นสำคัญมาก คนจำนวนมากเกินไปคิดว่าไอเดียใหม่ ๆ มาจาก แนวคิดเชิงนามธรรม เท่านั้น แต่จริง ๆ แล้วมันเกิดจากการเล่นกับตัวสื่อเองได้มากมายเช่นกัน
    • ผมได้เรียนรู้ว่ามีสองประโยคที่เป็นจริง: ถ้าไม่ถาม ก็ไม่มีทางถูกปฏิเสธ และคำว่า “อย่าไปเจอฮีโร่ของคุณ” เป็นภาพลวงตา
      ต้องเจอคนแย่ ๆ สักสองสามคนก่อน ถึงจะมองออกจริง ๆ ว่าใครเป็นคนดีจริง
    • เป็นเรื่องที่ยอดเยี่ยมมาก อยากรู้ว่าการพบกันครั้งนั้นมีผลต่อการเลือกเส้นทางอาชีพในภายหลังไหม สุดท้ายได้เป็น นักพัฒนาเกม หรือเปล่า หรืออย่างน้อยได้ลองทำไหม เรื่องแบบนี้ถ้ามีบทสรุปก็สนุกเสมอ
    • อยากรู้ว่า คำแนะนำชีวิต ที่เขาให้ไว้จริง ๆ คืออะไร
  • เป็นเกมที่สนุกมาก ผมไม่ใช่คนที่เล่นเกมเยอะเป็นพิเศษ แต่จำได้ว่าซื้อ Humble Bundle เพื่อเอาเกมนี้
    เป็นหนึ่งในไม่กี่เกมที่ผมเล่นจนจบ Terry ขอบคุณสำหรับผลงานที่ยอดเยี่ยมและช่วงเวลาดี ๆ นอกจากนี้ veni vidi vici ยากจนแทบสบถจริง ๆ และใช้เวลานานมาก
    https://www.youtube.com/watch?v=4CtiY5D6HCs

    • ซื้อบันเดิลแล้วคิดว่า “ระหว่างรอเกมที่น่าสนใจกว่าและไฟล์ใหญ่กว่าดาวน์โหลดเสร็จ ลองเล่น เกมแพลตฟอร์ม 2D เบา ๆ ดูละกัน” สุดท้ายเย็นวันนั้นทั้งเย็นหมดไปกับเกมนี้
    • วิดีโอนี้ถ่ายทอดประสบการณ์การผ่านแต่ละหน้าจอมาได้อย่างหวุดหวิดแล้วดัน ลงจอดทางซ้าย ได้ไม่เต็มที่
    • เขาก็ขอโทษแล้วนะ เพราะมีหน้าจอที่เขียนว่า “I’m sorry” อยู่ :P
    • ถ้าจำไม่ผิด ผมน่าจะลองอยู่หลายร้อยครั้งกว่าจะผ่านได้ ต้องขอบคุณมันที่ช่วยเตรียมความอดทนให้ผมไปจบ ดันเจี้ยน Pitioss ใน Final Fantasy XV
      ตอนนั้นแฟนหนุ่มของผมเป็นคนซื้อ VVVVVV ให้ และเขากำลังพยายามวิ่งแบบไม่ตายและเก็บ trinket ครบทั้งหมด ผมไม่เข้าใจเลยว่าเขาเล่นเกมเก่งขนาดนั้นได้ยังไง แล้วซาวด์แทร็ก PPPPPP ของ VVVVVV ผมก็ยังฟังอยู่บ่อย ๆ โดยเฉพาะแทร็ก osu! stream ที่เกี่ยวข้องนี่ชอบมาก
    • ผมซื้อ Humble Bundle ชุดแรก ๆ ไว้ และ VVVVVV ก็ถูกดองอยู่ในไลบรารี Steam ตั้งแต่นั้นมา ตอนนี้คงต้องลองเล่นสักที
  • บทความที่เกี่ยวข้อง มีอันอื่นอีกไหมนะ
    Is opening up your source code worth it? Terry Cavanagh thinks it was for VVVVVV - https://news.ycombinator.com/item?id=25727963 - มกราคม 2021
    Many games are held together by duct tape - https://news.ycombinator.com/item?id=22043156 - มกราคม 2020
    VVVVVV Source Code Released - https://news.ycombinator.com/item?id=22011465 - มกราคม 2020
    VVVVVV’s source code is now public, 10 year anniversary jam happening now - https://news.ycombinator.com/item?id=22011358 - มกราคม 2020
    VVVVVV 60% Off On The Mac App Store This Weekend - https://news.ycombinator.com/item?id=2347676 - มีนาคม 2011

  • ในคอมเมนต์ของ Graphics::print_level_creator(...) ระบุว่าให้แสดงใบหน้าแทน “by {author}”
    เหตุผลคือ “by” อาจดูแปลกถ้าไม่ตรงกับภาษาของผู้เขียน ในภาษาอื่นอาจยาวขึ้นจนทำให้ขีดจำกัดของเลเวลเดิมพัง อาจต้องใช้ฟอนต์ที่ไม่เข้ากันระหว่าง “by” กับชื่อผู้เขียน อีกทั้งยังหลีกเลี่ยง ปัญหาทางไวยากรณ์ อย่างเพศหรือการผันรูปชื่อได้ การแสดงเป็นใบหน้าก็สมเหตุสมผล และถ้ามีใครเศร้ากับการตัดสินใจนี้ หน้ายิ้ม ก็คงช่วยให้มีกำลังใจขึ้นอยู่ดี เถียงได้ยากจริง ๆ

  • ในบทความที่ลิงก์ไว้ https://distractionware.com/blog/2020/01/vvvvvv-is-now-open-... บอกว่ามีส่วนแปลก ๆ หลายอย่างในเวอร์ชัน C++ ที่ต้องนึกให้ออกก่อนว่าเดิมมันถูกทำด้วย Flash แล้วพอร์ตมาด้วยมือแบบคงรอยตำหนิไว้ด้วย ถึงจะเข้าใจ
    เช่น เขามีนิสัยประกาศตัวแปรชั่วคราวอย่าง i, j, k เป็นสมาชิกของแต่ละคลาส แทนที่จะประกาศไว้ในฟังก์ชัน เพราะใน Flash การประกาศภายในฟังก์ชันยุ่งยากด้วยเหตุผลน่าเบื่อบางอย่าง ผลคือเกิดบั๊กที่ตามรอยยาก โดยเฉพาะในส่วนจัดการการชนของเอนทิตี หลายฟังก์ชันแชร์ตัวแปร i เดียวกัน จนถึงขั้นเกิด ลูปไม่รู้จบ ได้ ฟังดูแย่มาก และช่วยยืนยันอคติที่ว่า โค้ดเกม นั้นเละเทะ

    • กลับฟังดูยอดเยี่ยมเสียด้วยซ้ำ และช่วยยืนยันข้อสงสัยที่ว่าโปรแกรมเมอร์เกมเรียนรู้อะไรมากกว่าโปรแกรมเมอร์ทั่วไป
    • ขอจดไว้ก่อนเผื่อลืมทีหลัง: โค้ดอาจเละเทะแต่สนุกก็ได้ เป็นกรณีที่บั๊กน่าสนใจถูกสร้างและค้นพบภายในไอเดียใหม่ ๆ
      โค้ดอาจยอดเยี่ยมแต่น่าเบื่อก็ได้ เช่นแอปเครื่องคิดเลขที่เขียนมาดีแต่การใช้งานจืดชืด โค้ดอาจเละเทะและน่าเบื่อก็ได้ เช่นผลิตภัณฑ์ B2B ที่ออกแบบไม่ดี มีเงื่อนไขยกเว้นนับร้อย และแต่ละอันก็มีบั๊กที่คล้ายกันแต่ต่างกันไปจำนวนมาก โค้ดอาจยอดเยี่ยมและน่าสนใจก็ได้ อย่างพวก Doom
    • คนเขาทำกันแบบนี้จริง ๆ เหรอ จู่ ๆ การที่ JavaScript ต้องใส่ this. หน้า member ทุกตัวก็ดูน่ารำคาญน้อยลงเยอะ
  • อยากพูดถึง Super Hexagon ของผู้สร้างคนเดียวกันด้วย เป็นเกมที่เรียบง่ายสุด ๆ แต่สนุกมากและติดหนึบจริง ๆ
    จำได้ว่าเคยอ่านที่ไหนสักแห่งว่าผู้สร้างใช้เวลาทำแค่ประมาณหนึ่งวันเท่านั้น แล้วซาวด์แทร็กของ VVVVVV อย่าง PPPPPP ก็เจ๋งด้วย

    • ถ้าพูดถึงเกมของผู้สร้างคนเดียวกัน Dicey Dungeons ก็สนุกมากเช่นกัน คล้าย ๆ roguelike แบบ deck building แต่ใช้ลูกเต๋าแทนไพ่
      มีตัวละครเฉพาะตัวราวหกคน แต่ละตัวละครมีโจทย์ท้าทายหลายแบบ และกฎก็เปลี่ยนไปเรื่อย ๆ จนทำให้ต้องคิดเกมใหม่อยู่ตลอด มีมุกตลกเยอะด้วย และยังมี DLC ฟรีกับคอนเทนต์ม็อดที่ยังไม่ได้ลองเล่นอีก
    • ไม่รู้เลยว่า Super Hexagon เป็นผลงานของผู้พัฒนาคนเดียวกัน แม้จะเป็นเกมคนละแนวกับ VVVVVV โดยสิ้นเชิง แต่ก็สนุกจริง ๆ
      น่าสนใจเสมอที่นักพัฒนาอินดี้หลังประสบความสำเร็จในช่วงแรกแล้วหันไปทำแนวใหม่หมด และก็มีอัญมณีดี ๆ เกิดขึ้นจากแนวทางนั้น เช่น ลำดับแบบ Fallen London -> Sunless Sea -> Cultist Simulator
    • ไม่มีวิธีไหนที่แน่นอนในการเข้าสู่สภาวะ flow ได้นอกจากเล่น Super Hexagon สัก 10 นาที
    • เห็นด้วยกับคำแนะนำนี้ เป็นเกมที่กระบวนการเรียนรู้สนุกมากจริง ๆ
      ตอนแรกดูเหมือนเป็นไปไม่ได้ แต่สมองจะปรับตัว เหมือนกับได้ มองทะลุผ่านเมทริกซ์
    • ใช้เวลากับเกมนี้ไปเยอะมากจริง ๆ ในชีวิต
      ยังแชร์ให้หลายคนเล่นจนทุกคนคลั่งไปด้วย เชื่อว่ายังมีเหลืออยู่ในคลัง Steam ประมาณ 5–6 ชุด เผื่อไว้ V, SMB, Braid และเกมอื่น ๆ อีกมากมายก็เหมือนกัน บางครั้งแค่แรงบันดาลใจเล็ก ๆ กับกราฟิกหยาบ ๆ ก็เพียงพอแล้ว
  • มีช่วงหนึ่งที่เพิ่งย้ายจากแคนาดามา California และต้องการงานอย่างสิ้นหวัง จึงได้งานขายตามบ้านให้ Comcast
    เกลียดงานนั้นมาก เลยมักนั่งอยู่ในรถ หลบเลี่ยงความรับผิดชอบ แล้วเล่น VVVVVV บนมือถือ Terry ช่วยให้ได้พักหายใจสักครู่

  • เกมยอดเยี่ยม สมกับเกมอินดี้ยุคนั้น โค้ด เละจริง ๆ จนดูแล้วดี

    • คำว่า “เละจริง ๆ” นี่ตรงเป๊ะ ส่วนที่ชอบที่สุดคือฟังก์ชัน Game::updatestate() ยาว 3300 บรรทัด กับ switch statement ขนาดมหึมา
    • เดิมเขียนด้วย Flash แล้วพอร์ตมา C++ ดังนั้นความเละบางส่วนก็อธิบายได้ แต่ไม่ใช่ทั้งหมด
    • โค้ดนี้ให้แรงบันดาลใจอย่างจริงจัง เป็นบทเรียนว่าการยกย่อง คุณภาพโค้ด มากเกินไปไม่ได้ดีที่สุดเสมอไป
    • โค้ดนี้ไม่มีปัญหาอะไร นี่เรียกว่า loop unrolling และช่วยรักษาประสิทธิภาพของเกมไว้
  • แพ็กเกจไว้สำหรับ Zig แล้ว แค่รัน zig build ก็เล่นเกมได้บน Linux, macOS, Windows
    https://github.com/allyourcodebase/VVVVVV

  • เขาสารภาพว่าได้ประกาศ i, j, k ไว้ในทุกคลาส เพราะไม่อยากประกาศทุกครั้งในจุดที่ใช้ภายในฟังก์ชัน และตามคาด มันทำให้เกิดบั๊กที่สกปรกและยากต่อการตามหา
    น่าทึ่งที่ยังสร้างเกมดี ๆ ออกมาจากโค้ดแบบนั้นได้

    • แทบทุกเกมมี โค้ดแฮ็ก ๆ น่ากลัวสารพัดอยู่ทั้งนั้น แน่นอนว่าอันนี้ก็ถือว่าหนักมากในบรรดาที่เคยเห็น