Nhà phát triển gặp khó khăn trong việc phân phối WebView2 khi sử dụng Deno để phát triển game

Nhóm Cộng đồng BigGo
Nhà phát triển gặp khó khăn trong việc phân phối WebView2 khi sử dụng Deno để phát triển game

Hành trình của một nhà phát triển tạo ra Microlandia, một trò chơi mô phỏng thành phố chi tiết, đã khơi dậy cuộc thảo luận trong cộng đồng về những thách thức thực tế khi sử dụng công nghệ web hiện đại để phát triển game. Dự án này, đã chuyển từ Go sang Deno với giao diện dựa trên WebView, làm nổi bật cả lợi ích và cạm bẫy của các phương pháp phát triển game thay thế.

Các Phương Pháp Phát Triển Game Thay Thế Được Thảo Luận:

  • Deno + WebView: Nhẹ nhưng có vấn đề phụ thuộc WebView2
  • Electron: Kích thước bundle lớn hơn (~100MB nặng hơn) nhưng dự đoán được hơn
  • Bun + WebView + WebGPU: Phương pháp thử nghiệm cho các game đòi hỏi đồ họa cao
  • Go + WASM: Tốc độ build tốt nhưng kích thước bundle lớn (5-25MB)
  • Tauri: Giải pháp thay thế dựa trên Rust với khả năng đóng gói Chrome tiềm năng
Quá trình phát triển một trò chơi mô phỏng thành phố sử dụng các công nghệ web hiện đại như Deno
Quá trình phát triển một trò chơi mô phỏng thành phố sử dụng các công nghệ web hiện đại như Deno

Cài đặt WebView2 tạo ra vấn đề trải nghiệm người dùng

Mối quan tâm lớn nhất được cộng đồng nêu ra tập trung vào các vấn đề phụ thuộc WebView2 trên hệ thống Windows. Các nhà phát triển đã thử nghiệm các phương pháp tương tự báo cáo phản hồi tiêu cực từ người dùng khi game yêu cầu cài đặt WebView2. Quá trình cài đặt hiển thị Microsoft Edge Update trong tiêu đề cửa sổ, khiến một số người dùng nhầm tưởng rằng game đang cố gắng cài đặt trình duyệt Microsoft Edge.

Một người dùng Steam thậm chí còn gọi game (miễn phí và mã nguồn mở) của tôi là phần mềm độc hại, chỉ vì tiêu đề cửa sổ đó (chỉ xuất hiện lần chạy đầu tiên, khi trình cài đặt WebView2 chạy).

Vấn đề nhận thức này đã khiến một số nhà phát triển từ bỏ hoàn toàn phương pháp WebView để chuyển sang Electron, mặc dù kích thước file lớn hơn. Vấn đề có thể ít nghiêm trọng hơn trên các hệ thống Windows mới hơn, vì WebView2 được cài đặt sẵn trên Windows 11 và Windows 10 22H2, nhưng vẫn còn lo ngại về tính tương thích với các hệ thống cũ hơn.

Tình trạng có sẵn WebView2 theo phiên bản Windows:

  • Windows 11: Được cài đặt sẵn theo mặc định
  • Windows 10 22H2: Được cài đặt sẵn theo mặc định
  • Các phiên bản Windows 10 cũ hơn: Yêu cầu cài đặt riêng biệt
  • Cơ sở người dùng Steam: 32% vẫn đang sử dụng Windows 10 (tính đến thời điểm thảo luận)

Quy trình phát triển Live Reload cho thấy tiềm năng

Các thành viên cộng đồng đã khen ngợi lợi ích quy trình phát triển đi kèm với việc sử dụng công nghệ web để phát triển game. Khả năng sử dụng live reload trong quá trình phát triển game rút ngắn đáng kể vòng lặp phản hồi so với các game engine truyền thống. Các nhà phát triển có thể thấy thay đổi ngay lập tức trong khi chơi thử, mà không cần khởi động lại toàn bộ phiên game.

Lợi thế này trở nên đặc biệt có giá trị cho việc phát triển game khi thời gian biên dịch thường dài hơn so với phát triển web. Quy trình làm việc cho phép các nhà phát triển tập trung vào cơ chế game và nội dung thay vì vật lộn với quá trình build và các công cụ đặc thù của engine.

Các phương pháp thay thế xuất hiện từ thảo luận cộng đồng

Cuộc thảo luận đã tiết lộ một số phương pháp thay thế cho các vấn đề tương tự. Một số nhà phát triển đang thử nghiệm Bun kết hợp với WebView và WebGPU cho các ứng dụng đòi hỏi đồ họa cao. Những người khác đề xuất sử dụng WASM (WebAssembly) với Go, mặc dù phương pháp này có những đánh đổi riêng bao gồm kích thước bundle lớn hơn và tiềm năng overhead hiệu suất cho việc tuần tự hóa dữ liệu.

Framework Tauri dựa trên Rust cũng được đề cập như một giải pháp tiềm năng có thể mang lại lợi ích tương tự trong khi có thể tránh được một số vấn đề phân phối WebView2. Tuy nhiên, mỗi phương pháp đều yêu cầu xem xét cẩn thận các yêu cầu dự án cụ thể và kỳ vọng của đối tượng mục tiêu.

Cuộc thảo luận cộng đồng cho thấy rằng mặc dù các phương pháp sáng tạo như sử dụng Deno để phát triển game có thể mang lại cải thiện quy trình làm việc đáng kể, nhưng những thách thức phân phối thực tế thường vượt trội hơn lợi ích kỹ thuật. Thành công phụ thuộc rất nhiều vào việc hiểu hệ sinh thái của nền tảng mục tiêu và kỳ vọng của người dùng, đặc biệt đối với các bản phát hành game thương mại nơi ấn tượng đầu tiên có ý nghĩa quan trọng.

Tham khảo: USING DENO AS MY GAME ENGINE

Ảnh chụp màn hình từ một game mô phỏng thành phố minh họa tiềm năng của việc sử dụng các công nghệ phát triển game sáng tạo
Ảnh chụp màn hình từ một game mô phỏng thành phố minh họa tiềm năng của việc sử dụng các công nghệ phát triển game sáng tạo