13 คะแนน โดย prunusnira 2025-06-02 | 2 ความคิดเห็น | แชร์ทาง WhatsApp

สรุป

(สรุปด้วย Gemini แล้วมีการแก้ไขบางส่วน)

  • แปลงเอนจิน Portal 2 ให้เป็นเว็บเซิร์ฟเวอร์

    • ทดลองโฮสต์เว็บเพจโดยตรงจาก Portal 2 โดยใช้ความสามารถคอนโซล TCP ที่ซ่อนอยู่ของ Source Engine (-netconport option)
  • ประมวลผลการตอบสนอง HTTP ผ่านดีเวลอปเปอร์คอนโซล

    • แม้เกมจะเปิด TCP server ได้ แต่ปัญหาคือดีเวลอปเปอร์คอนโซลตีความคำขอของผู้ใช้เป็นคอนโซลคำสั่ง
    • เพื่อรับคำขอ HTTP เป็นคำสั่งคอนโซลของเกม จึงใช้คำสั่ง alias ของ Source Engine และ VScript (ภาษาสคริปต์ที่ Valve สร้างขึ้น) เพื่อให้สามารถแสดงผลการตอบสนองต่อสตริงอินพุตที่ป้อนได้
  • การทำหลายเส้นทาง (routing)

    • เนื่องจากเกมคอนโซลไม่สามารถแยก URL path ได้ จึงใช้ HTTP method (GET, POST เป็นต้น) และ custom HTTP header เพื่อเลียนแบบการทำ routing ที่ต่างกัน
    • ด้วยวิธีนี้จึงทำให้สามารถใช้ JavaScript เพื่ออัปเดตข้อมูลจากเกมแบบเรียลไทม์ได้
  • แมปวัตถุในเกมเข้ากับ HTML DOM และ CSS

    • จับคู่วัตถุในเกมอย่างเช่นคิวบ์ให้สอดคล้องกับแท็กและแอตทริบิวต์ของ HTML ทำให้สามารถประกอบเว็บไซต์ขึ้นมาแบบ “ก่อซ้อน” ได้จริง
    • เช่นเดียวกัน ข้อมูลสไตล์ (CSS) ก็จับคู่แต่ละพร็อพเพอร์ตีกับคิวบ์หนึ่งชิ้นเพื่อจัดองค์ประกอบหน้าเว็บในเชิงภาพ

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

 
cosine20 2025-06-09

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

 
prunusnira 2025-06-02

น่าทึ่งที่มีคนคิดจะสร้างเว็บเซิร์ฟเวอร์ด้วยเกมเอนจิน แต่ก็เป็นวิดีโอที่สนุกเพราะอธิบายเนื้อหาพื้นฐานของการพัฒนาเว็บได้ดีมากในเชิงแนวคิดด้วย ผมคิดว่าส่วนที่ใช้การวางซ้อนคิวบ์ใน Portal เพื่อประกอบ DOM/CSS นั้นดีมากจริง ๆ