Nhìn lại chặng đường phát triển Breath of The Wild (Kỳ 2)
Ở kì 1 chúng ta đã có những cái nhìn khái quát hơn về các tính năng đặc biệt trong game, trong kì 2 sẽ dẫn dắt bạn đi sâu quá trình phát triển tựa game Breath of The Wild.
1. Real-time Local Reflection (Phản chiếu cục bộ)
Trong đa số các game, hiệu ứng phản chiếu thời gian thực được thực hiện thông qua các kỹ thuật tính toán sẵn như Cubemapping, hoặc thông qua kỹ thuật Screen Space Reflection, hoặc Plannar Reflection, trong đó được Render sẵn khung cảnh và áp vào vật liệu phản chiếu, sau đó tính toán các điểm ánh xạ tùy theo góc nhìn và điều chỉnh hoặc tính toán trước các lớp chuyển động tùy theo kỹ thuật. Trong thực tế, kỹ thuật Local Reflection Real Time thuờng không hề được áp dụng cho Video Game do tốn tài nguyên, bởi vậy người viết rất ấn tượng và bất ngờ vì không nghĩ nó được áp dụng khắp nơi trong Breath of The Wild. Điểm khác nhau giữa Local Reflection và Cubemap/Screen Space Reflection đó là với Local Reflection, bề mặt phản chiếu có thể phản chiếu các đối tượng theo thực tế, bao gồm cả các đối tượng bị khuất khỏi góc nhìn.
Plannar Reflection cũng có thể cho ra hiệu ứng tương tự local reflection nhưng nó không được áp dụng nhiều trong game Openworld vì yêu cầu khả năng xử lý cao để tính toán và Render khung cảnh nhiều lần. Hiệu ứng phản chiếu cục bộ trong Breath of The Wild bị giới hạn bởi thuộc tính vật liệu theo nguyên tắc. Thuộc tính này ràng buộc khả năng ánh xạ của đối tượng và chỉ cho phép đối tượng tăng dần khả năng phản chiếu ở góc thấp. Khi quan sát kỹ, thì hiệu ứng phản chiếu ánh sáng trong game sử dụng một thuật toán lai, các đối tượng phát sáng sẽ được phản chiếu trên tất cả mọi loại bề mặt và gần như thấy ở mọi góc độ nếu như khoảng cách giữa bề mặt và đối tượng này đủ gần. Các đối tượng sáng còn lại nhưng không thực sự chiếu sáng, sẽ được phản chiếu bằng kỹ thuật Screen-Space Reflection.
2. Physical-Based Rendering
Physical-based rendering không có nghĩa là render đối tượng theo đúng vật liệu thực tế. Đây chỉ là một phương pháp áp dụng trong quy trình Render 3D cho phép tất cả các vật liệu (bề mặt texture) tương tác và ảnh huởng một cách riêng biệt và độc lập với nguồn sáng. Trước đây, phương pháp render truyền thống yêu cầu các họa sĩ 3d phải tự uớc tính được các vật thể tương tác ra sao với ánh sáng và tái tạo bề mặt texture cho phù hợp, điều này dẫn đến việc thiếu thống nhất về hình ảnh giữa các đối tượng, thậm chí giữa các đối tượng cùng loại.
Với Physical-Based Rendering, các nguyên lý về ánh sáng và tương tác được kết hợp trong quy trình Render, và toàn bộ các Texture bề mặt được phân thành các lớp vật liệu (Material) với chỉ số vật lý riêng biệt. Phương pháp này cho phép các họa sĩ thiết lập các đối tượng ở các khung cảnh khác nhau với nhiều nguồn sáng phức tạp khác nhau, các đối tượng sẽ tự tính toán và thể hiện mà không cần các họa sĩ phải tự uớc tính trước các đối tượng đó sẽ trông như thế nào như cách truyền thống, phương pháp này cũng hỗ trợ cho việc triển khai đồng loạt 1 thế giới Openworld rộng với sự thay đổi ánh sáng ngày đêm khác nhau.
Trong Breath of the Wild, các engine sử dụng Physical-Based Rendering theo một cách nghệ thuật hơn, thay vì tập trung vào tả thực các đối tượng, điều này dẫn đến việc nhiều người không nghĩ rằng game sử dụng quy trình này, và thực tế cũng cho thấy sử dụng Physical-Based Rendering không có nghĩa là phải tả thực. Một minh chứng nhỏ cho quy trình này, là trong Breath of The Wild, các đối tượng sẽ phản chiếu và tương tác với các nguồn sáng khác nhau một cách đôc lập và linh động, khác nhau tùy vào vật liệu. Một bằng chứng khác cho thấy game sử dụng Physical-Based Rendering, đó là ứng dụng hiệu ứng phản chiếu của tất cả các đối tượng theo nguyên lý Fresnel.
Theo nguyên lý này, trong thực tế, tất cả các đối tượng đều có khả năng phản chiếu khi nhìn tại một góc nghiêng nhất định, góc này càng nhỏ và gần với đường song song với mặt phẳng đối tượng thì khả năng phản chiếu càng cao, các bạn có thể thử cúi sát mắt vào mặt bàn và có thể thấy phản chiếu. Tuy nhiên, hiệu quả của sự phản chiếu này tùy thuộc vào bề mặt vật liệu trơn láng hay xù xì, và cả chất liệu của nó. Và vì điều này, các lập trình viên phân tách khái niệm ” Tính phản xạ/Phản chiếu” và “Hệ số phản xạ/Mức độ phản chiếu” khi thiết kế các đối tượng trong game.
Tùy vào loại vật liệu mà tính phản xạ sẽ khác nhau, ví dụ như có loại vật liệu ánh sáng khi chiếu đến bề mặt vật liệu này được phản xạ phân tán ra khắp mọi nơi thay vì theo 1 huớng cụ thể, các loại vật liệu này được gọi là vật liệu tán xạ, mặc dù có tính phản xạ 100%, nhưng bạn sẽ không thấy hình ảnh phản chiếu rõ ràng trên bề mặt này, do nó có hệ số phản xạ thấp. Hệ số phản xạ quyết định chất lượng hình ảnh phản chiếu có rõ ràng hay không, và nó không bao giờ đạt 100% ngay cả trong thực tế và biến thiên tùy loại vật liệu. Quay lại BoTW, như đã nói, tất cả các đối tượng trong game đều được lập trình tuân theo nguyên lý Fresnel để có hiệu ứng phản chiếu khi nhìn ở 1 góc phù hợp.
Vật liệu phát sáng và ánh sáng vùng là một yếu tố đơn giản, nghĩa là khi vật liệu của các đối tượng phát sáng cũng tạo ra ánh sáng với hình dạng tương tự như đối tượng đó. Nói thêm cho dễ hiểu, nguồn sáng di động trong các game khác đa số là một vùng sáng hình cầu hoặc ánh sáng chiếu trực tiếp về 1 huớng cụ thể, nhưng trong Breath of The Wild, các nguồn sáng này được lập trình để tái tạo vùng sáng theo Custom Shape, theo đúng hình dạng của đối tượng. Các bạn có thể thấy trong clip demo gameplay của trò chơi, thanh gươm phát ra nguồn sáng đều khắp hình dạng chứ không chỉ là một vùng tròn. Cũng lưu ý là chỉ có Global illumination, bao gồm mặt trời, mặt trăng và sấm chớp là có khả năng tạo bóng, các nguồn sáng Custom khác thì không.
3. Screen Space Ambient Occlusion
Trong thực tế, luôn có một lượng nhất định ánh sáng cục bộ có khả năng chiếu sáng cho môi trường sau khi ánh sáng đã bị phản xạ qua lại giữa các vật thể nhiều lần trong môi trường, đến mức nó trở nên hoàn toàn phân tán và có thể hình dung nó như một thể tích ánh sáng được “giam” trong môi trường. Nếu bóng đổ của đối tượng là kết quả của nguồn sáng chiếu đến trực tiếp, thì Ambient Occlusion được hiểu là kết quả của vùng ánh sáng cục bộ này tác động lên các đối tượng nhỏ như khe nứt, cạnh đối tượng, đồng thời đóng vai trò chiếu sáng và thậm chí “Tô màu” cho vùng không gian không được trực tiếp chiếu sáng. Phương pháp sử dụng trong Breath of The Wild là SSAO, Screen Space Ambient Occlusion, game chỉ tính toán và điều chỉnh Ambient Occlusion trong khung cảnh nhìn thấy bởi camera.
4. Hệ thống mô phỏng gió trong game
Hệ thống này thật ra khá ấn tượng vì không ai nghĩ nó sẽ làm kỹ như vậy. Về cơ bản, toàn bộ hệ thống vật lý trong game được liên kết với 1 hệ thống mô phỏng gió. Hệ thống này hoàn toàn linh động và sẽ có tác động khác nhau đối với các đối tượng tùy theo trọng lượng của nó, bao gồm cả vũ khí, cung tên, lá rơi, nước, nhân vật …. Tuy nhiên 2 đối tượng quan trọng và dễ thấy nhất đó là các lá cỏ và toàn bộ hệ thống mô phỏng và nội suy mây. Nhìn kỹ, các bạn sẽ thấy chuyển động của cỏ và mấy khớp hoàn toàn với huớng thổi của gió.
Đến đây bạn cũng đã thấy, việc phát triển một tựa game Ultimate Game of the Year quả thực không phải hoàn toàn đơn giản đúng không? Và đó cũng là một góc nhìn khái quát khi bạn đứng vào vai của những nhà phát triển game, họ sẽ cho bạn thấy nó quả là một việc kì công và phức tạp đến thế nào. Cũng không ngoa khi tựa game The Legend of Zelda: Breath of The Wild lại tạo nên kì tích và thu về nhiều thành công đến như vậy. Nếu chưa trải nghiệm thì xin chia buồn, bạn đã bỏ lỡ đi một tựa game có giá trị khám phá và trải nghiệm rất cao trong những tựa game từ trước đến giờ được phát triển.
Theo Game4V
Nhìn lại chặng đường phát triển Breath of The Wild (Kỳ 1)
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 mình 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à không 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 được thực hiện có thể được đặ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 task 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 được 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, không 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ề được thiết kế 1 lần, sau giai đoạn đầu, các nhà phát triển 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ẽ được 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à không 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, session của Breath of The Wild 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ỉ được sử dụng trong render các đoạn phim 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 không có nghĩa rằng Breath of The Wild không ứ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ứ không 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 được á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ả.
Theo Game4V
Genshin Impact chuẩn bị ra mắt người chơi Tựa game đáng chú ý Genshin Impact đang mở đăng ký dành cho game thủ. Trò chơi chuẩn bị ra mắt chính thức. Có lẽ, chúng ta biết nhiều đến sản phẩm game Honkai Impact 3rd với nhiều tính năng ingame hấp dẫn. Chính hãng miHoYo là đơn vị sản xuất cũng là cha đẻ của tựa game chúng tôi muốn nhắc đến:...