นักพัฒนาเผชิญความท้าทายในการแจกจ่าย WebView2 เมื่อใช้ Deno สำหรับการพัฒนาเกม

ทีมชุมชน BigGo
นักพัฒนาเผชิญความท้าทายในการแจกจ่าย WebView2 เมื่อใช้ Deno สำหรับการพัฒนาเกม

การเดินทางของนักพัฒนาในการสร้าง Microlandia เกมจำลองเมืองที่มีรายละเอียด ได้จุดประกายการอภิปรายในชุมชนเกี่ยวกับความท้าทายในทางปฏิบัติของการใช้เทคโนโลยีเว็บสมัยใหม่สำหรับการพัฒนาเกม โครงการนี้ซึ่งย้ายจาก Go ไปยัง Deno พร้อมอินเทอร์เฟซแบบ WebView เน้นย้ำทั้งประโยชน์และข้อผิดพลาดของแนวทางการพัฒนาเกมทางเลือก

แนวทางการพัฒนาเกมทางเลือกที่กล่าวถึง:

  • Deno + WebView: มีน้ำหนักเบา แต่มีปัญหาการพึ่งพา WebView2
  • Electron: ขนาด bundle ใหญ่กว่า (~หนักกว่า 100MB) แต่คาดการณ์ได้มากกว่า
  • Bun + WebView + WebGPU: แนวทางทดลองสำหรับเกมที่เน้นกราฟิกหนัก
  • Go + WASM: ความเร็วในการ build ดี แต่ขนาด bundle ใหญ่ (5-25MB)
  • Tauri: ทางเลือกที่ใช้ Rust เป็นฐานพร้อมความสามารถในการรวม Chrome
กระบวนการพัฒนาเกมจำลองเมืองโดยใช้เทคโนโลยีเว็บสมัยใหม่อย่าง Deno
กระบวนการพัฒนาเกมจำลองเมืองโดยใช้เทคโนโลยีเว็บสมัยใหม่อย่าง Deno

การติดตั้ง WebView2 สร้างปัญหาประสบการณ์ผู้ใช้

ความกังวลที่สำคัญที่สุดที่ชุมชนยกขึ้นมาคือปัญหาการพึ่งพา WebView2 บนระบบ Windows นักพัฒนาที่เคยลองแนวทางคล้ายกันรายงานผลตอบรับเชิงลบจากผู้ใช้เมื่อเกมต้องการการติดตั้ง WebView2 กระบวนการติดตั้งแสดง Microsoft Edge Update ในชื่อหน้าต่าง ทำให้ผู้ใช้บางคนเข้าใจผิดว่าเกมกำลังพยายามติดตั้งเบราว์เซอร์ Microsoft Edge

ผู้ใช้ Steam คนหนึ่งเรียกเกม (ฟรีและโอเพนซอร์ส) ของฉันว่าเป็นมัลแวร์ เพียงเพราะชื่อหน้าต่างนั้น (ซึ่งปรากฏเฉพาะในการรันครั้งแรกเมื่อตัวติดตั้ง WebView2 ทำงาน)

ปัญหาการรับรู้นี้ทำให้นักพัฒนาบางคนละทิ้งแนวทาง WebView ทั้งหมดเพื่อเลือกใช้ Electron แทน แม้จะมีขนาดไฟล์ที่ใหญ่กว่า ปัญหานี้อาจมีความรุนแรงน้อยกว่าในระบบ Windows รุ่นใหม่ เนื่องจาก WebView2 มาพร้อมติดตั้งใน Windows 11 และ Windows 10 22H2 แต่ความกังวลเรื่องความเข้ากันได้ยังคงมีอยู่สำหรับระบบรุ่นเก่า

ความพร้อมใช้งานของ WebView2 ตามเวอร์ชัน Windows:

  • Windows 11: ติดตั้งมาให้โดยค่าเริ่มต้น
  • Windows 10 22H2: ติดตั้งมาให้โดยค่าเริ่มต้น
  • Windows 10 เวอร์ชันก่อนหน้า: ต้องติดตั้งแยกต่างหาก
  • ฐานผู้ใช้ Steam: 32% ยังคงใช้ Windows 10 (ณ วันที่มีการอภิปราย)

เวิร์กโฟลว์การพัฒนาแบบ Live Reload แสดงศักยภาพ

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

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

แนวทางทางเลือกเกิดขึ้นจากการอภิปรายในชุมชน

การอภิปรายได้เผยให้เห็นแนวทางทางเลือกหลายแนวทางสำหรับปัญหาที่คล้ายกัน นักพัฒนาบางคนกำลังทดลองใช้ Bun ร่วมกับ WebView และ WebGPU สำหรับแอปพลิเคชันที่ใช้กราฟิกเข้มข้น คนอื่นแนะนำให้ใช้ WASM (WebAssembly) กับ Go แม้ว่าแนวทางนี้จะมาพร้อมกับการแลกเปลี่ยนของตัวเอง รวมถึงขนาดบันเดิลที่ใหญ่กว่าและโอเวอร์เฮดประสิทธิภาพที่อาจเกิดขึ้นสำหรับการซีเรียลไลเซชันข้อมูล

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

การอภิปรายในชุมชนเผยให้เห็นว่าแม้แนวทางนวัตกรรมเช่นการใช้ Deno สำหรับการพัฒนาเกมสามารถให้การปรับปรุงเวิร์กโฟลว์ที่สำคัญ แต่ความท้าทายในการแจกจ่ายในทางปฏิบัติมักจะมีน้ำหนักมากกว่าประโยชน์ทางเทคนิค ความสำเร็จขึ้นอยู่อย่างมากกับการเข้าใจระบบนิเวศของแพลตฟอร์มเป้าหมายและความคาดหวังของผู้ใช้ โดยเฉพาะสำหรับการเปิดตัวเกมเชิงพาณิชย์ที่ความประทับใจครั้งแรกมีความสำคัญอย่างมาก

อ้างอิง: USING DENO AS MY GAME ENGINE

ภาพหน้าจอจากเกมจำลองเมืองที่แสดงให้เห็นศักยภาพของการใช้เทคโนโลยีการพัฒนาเกมที่เป็นนวัตกรรม
ภาพหน้าจอจากเกมจำลองเมืองที่แสดงให้เห็นศักยภาพของการใช้เทคโนโลยีการพัฒนาเกมที่เป็นนวัตกรรม