Chỉ còn ít tháng nữa thôi nếu may mắn chúng ta sẽ thấy mặt Breath of The Wild 2, nhân dịp này Game4V muốn chia sẻ về quá trình thực hiện Breath of The Wild với các bạn.
Breath of the Wild đuợc phát triển trên engine riêng của Nintendo và hỗ trợ gần như mọi kỹ thuật đồ họa hiện đại, và mặc dù hình ảnh của game trông có vẻ đơn giản, nhưng công nghệ thì không đề đơn giản chút nào, nếu không muốn nói phức tạp không kém gì các game khác. Bài phân tích chi tiết đồ họa sau đây được tổng hợp lại từ sự kiện hội nghị CEDEX và bài phân tích của Brainchild thể hiện góc nhìn rất hay về việc phát triển một tựa game tầm cỡ thật chẳng dễ dàng gì, và liệu công thức này có được áp dụng cho Breath of The Wild 2 hay có chỉnh sửa gì nữa hay không? Hãy cùng xem qua bên dưới.
1. Engine Development System
Khác với nhiều game khác khi phát triển, khi thực hiện Breath of The Wild Nintendo đã tìm được cách nhúng hệ thống quản lý dự án của game vào hẳn trong engine và hiển thị theo dạng bong bóng cửa sổ trực tiếp trên giao diện game. Quy trình này giúp việc thực thi trở nên tối ưu hơn và ko ai làm trùng việc của nhau, điều này cực kỳ hữu ích khi Breath of The Wild là 1 tựa game openworld rất rất rộng. Với các game khác, việc quản lý thiết kế này được thực hiện riêng biệt bằng hệ thống quản lý database project, tương tự như quản lý các task cần làm mà mọi ng biết trong các công ty và vị trí các task xử lý được quy định bằng tọa độ trên bản đồ. Cách này mặc dù vẫn ok nhưng sẽ dẫn tới rắc rối khi số lượng task, quest hay tinh chỉnh tăng lên.
Mỗi task cần dc tực hiện có thể dc đặt thành 1 pop up bong bóng trên map của game, và bao gồm đủ thông tin chi tiết, yêu cầu thực thi, khiến việc thiết kế game trong thế giới rộng trỡ nên dễ dàng hơn. Ngoài ra engine game còn thiết lập riêng một giao diện Field View cho các tác vụ ở diện rộng của map, nôm na là để thiết kế hoặc chính sửa các task hoặc nhiệm vụ cần đi lại nhiều hoặc ảnh huởng 1 khi vực của game. Giao diện này cũng bao gồm hệ thống tương tác thông tin, cho phép các designer trao đổi ý tưởng hoặc liên kết, ghi chú, gắn tag trực tiếp để có thể gắn kết hơn giữa các task đang thực hiện, cho phép tạo ra nhiều kịch bản nhiệm vụ liên kết xâu chuỗi tốt hơn là thực thi dạng nhiệm vụ lẻ như nhiều game khác.
Đối với việc thiết kế bản đồ cấp vĩ mô, Nintendo thảo luận về khái niệm “Quy luật tam giác”. Ngắn gọn, sử dụng luật tam giác khi thiết lập các đối tượng trên bản đồ cho phép người chơi có 2 lựa chọn về mục tiêu, hoặc leo lên/ đi xuyên qua, hoặc đi vòng quanh. Các đối tượng dc thiết lập theo cấu trúc này cũng đóng vai trò vật cản tầm nhìn, tạo cơ hội cho các designer thiết kế các tình huống bất ngờ khi người chơi vượt qua được nó. Các đối tượng tam giác còn được phân chia theo lớp, loại và kích thuớc để áp dụng vào cảnh quan khi thiết kế map, đó là nền tảng để tạo hình các mỏm đá, rừng cây và Shrine, ko chỉ đơn thuần là đặt đâu cũng được.
Với thế giới rộng như vậy, các việc kiểm lỗi và debug sẽ vô cùng khó khăn, Breath of The Wild cũng đã tích hợp hệ thống track lỗi, báo lỗi và debug vào hẳn engine và hoàn toàn tương tích với hệ thống ngữ cảnh bong bóng ở trên, thậm chí một module dò lỗi cũng được phát triển riêng biệt cho game với tên gọi #ZELDA_ERROR. Map của game không hề dc thiết kế 1 lần, sau giai đoạn đầu, các dev bắt đầu tiến hành cho test game thử và ghi lại data của các lần playthrough và vị trí cũng như hành trình người chơi đi trên bản đồ, và sau đó tiến hành tinh chỉnh. Ban đầu, các nhà phát triển cho rằng có thể sắp xếp ngẫu nhiên các đối tượng, công trình trên map và đặt các nhiệm vụ vào giữa, tuy nhiên nó không thực sự hiệu quả và rõ ràng, người chơi có cảm giác bị tuyến tính và dắt mũi khi bị chỉ cho phải đi tới nơi kế tiếp.
2. Gravity Scale System
Do đó, Nintendo đã phát triển hệ thống thang đo tên gọi Gravity, nhằm sắp xếp tính ưu tiên và visibility của các công trình và đặt rải rác theo các thông số nhất định. Nôm na là mỗi khu vực sẽ dc chia nhỏ và bao gồm các công trình, đối tượng, mỗi công trình/đối tượng sẽ có thang điểm, và tổng điểm ưu tiên của từng khu vực sẽ phải tương tự nhau, bất chấp có nhiều đối tượng và cách sắp xếp có khác nhau như thế nào đi nữa. Điều này cho phép người chơi thực sự có thể “đi lạc”, tùy hỉ đi nơi đâu họ muốn mà ko bị cảm giác gò ép tuyến tính vì mỗi khu vực đều tạo ra sự bí ẩn, mức độ ưu tiên và quan trọng như nhau.
Hệ thống này cũng cho phép generate ra các scenario về playthrough nhằm từ đó sắp đặt các sự kiện ngẫu nhiên trong game tùy thuộc vào cách gamer chơi, dẫn đến việc 2 người khác nhau chơi sẽ khó mà có các trải nghiệm y hệt nhau, nhưng game vẫn có thể vận hành và bố trí một cách hợp lý. Trong hội nghị CEDEC năm nay, session của BotW khiến tất cả các nhà phát triển tại đó chỉ biết mắt chữ A mồm chữ O. Game được phát triển cả 10 năm quả là xứng đáng.
3. Global Illumination (GI) hay còn gọi là Radiosity
Kỹ thuật chiếu sáng toàn cục, tán xạ Global Illumination là một giải pháp chiếu sáng toàn cục được áp dụng trong các game hiện đại, nhất là các game openworld để tạo nên bầu không khí thống nhất và đảm bảo các khu cảnh được tái hiện và mô phỏng gần nhất với thực tế. Có rất nhiều kỹ thuật Global Illumination được áp dụng trong đồ họa vi tính, cấp cao nhất là các ứng dụng dựa trên thuật toán Monte Carlos, cho phép tính toán ngẫu nhiên tác động của nguồn sáng trong khung cảnh, đồng thời mô phỏng như thực tế cách các tia sáng tương tác và di chuyển (ray- tracing). Tuy nhiên phương pháp này tốn rất nhiều tài nguyên và chỉ dc sử dụng trong render các đoạn film CGI dựng sẵn thay vì ứng dụng trong video game tương tác.
Trong Breath of The Wild, game sử dụng kỹ thuật Radiosity để mô phỏng nguồn sáng, thuật toán của Radiosity cho phép tính toán ánh sáng tác động đến bề mặt vật thể không chỉ thông qua nguồn sáng trực tiếp mà còn thông qua phản chiếu, tán xạ từ các đối tượng khác trong khung cảnh, mang theo các thông tin về màu sắc, vật liệu để cho ra hiệu ứng ánh sáng cuối cùng. Một ví dụ nhỏ bên trái, hình trên là Direct illumination và dưới là Global Illumination Radiosity. Radiosity có mức tính toán mô phỏng thấp hơn nhiều so với Ray tracing và các phương pháp khác, nhưng ko có nghĩa rằng Breath of The Wild ko ứng dụng tốt Global Illumination.
Trong thực tế khi phát triển hình ảnh cho game, Global Illumination luôn được “làm giả” bằng các trick khác nhau với nhiều mức độ chính xác khác nhau, và không có game nào hoàn toàn sử dụng phương pháp mô phỏng ray tracing. Trong Breath of The Wild, Radiosity Global Illumination được tính toán và render trực tiếp chứ không được “ép” sẵn vào texture và shader của đối tượng, đây là điểm rất ấn tượng đối với một game openworld, nhất là khi game chạy được trên Wii U. Nói sơ một chút về texture và shader, khi dựng hình ảnh cho game, nhà phát triển thuờng “ép” (baked) thông số ánh sáng vào lớp texture (vân bề mặt), và được áp lên đối tượng. Các đối tượng này sẽ tương tác với ánh sáng theo các thông số đã định sẵn đó chứ ko tương tác trực tiếp, ví dụ như mặt đất ẩm sẽ chỉ lấp lánh ở 1 góc nhất định với cuờng độ nhất định mà không thể thay đổi theo các yếu tố biến thiên khác. Giải pháp này thuờng dc áp dụng cho các game có góc nhìn cố định hoặc giới hạn, người chơi luôn thấy đối tượng tương tác với ánh sáng ở 1 góc duy nhất.
Trong Breath of The Wild, game sử dụng các cụm đối tượng đo sáng(light probe) đặt khắp nơi trong khung cảnh nhằm thu thập thông tin về ánh sánh, màu sắc của các đối tượng lân cận để tính toán Radiosity. Game không sử dụng phép mô phỏng tán xạ mà chỉ nội suy tương đối, thuật toán mà game dùng để tính toán phép nội suy này thế nào thì không rõ, tuy nhiên dự đoán rằng nó là biến thể của kỹ thuật Spherical harmonics Lighting. Thông tin thu thập từ light probe được liên kết trực tiếp với hệ thống LoD(Level of detail) trong game nhằm render đối tượng thống nhất và hiệu quả.