HÀNH TRÌNH KỸ THUẬT CỦA MỘT OPEN WORLD NEXT-GEN
Bài trình bày này được thực hiện bởi Nicolas Lopez tại Game Developers Conference (GDC) năm 2026, đúng ngày ra mắt chính thức của trò chơi Assassin’s Creed Shadows. Nicolas Lopez là một kỹ sư đồ họa cấp cao tại Ubisoft, chuyên về rendering và engine architecture. Ông đã tham gia nhiều dự án lớn của Ubisoft, đặc biệt trong hệ sinh thái engine Anvil – nền tảng công nghệ đứng sau dòng game Assassin’s Creed.
Bài nói tập trung vào quá trình xây dựng hệ thống rendering của Assassin’s Creed Shadows, một tựa game open-world thế hệ mới, đồng thời phản ánh sự tiến hóa của engine Anvil trong gần hai thập kỷ phát triển.
Giá trị của bài nói không chỉ nằm ở chi tiết kỹ thuật mà còn ở việc mô tả cách các studio AAA xây dựng pipeline đồ họa quy mô lớn, cách họ tổ chức engine dùng chung, và cách họ xử lý sự phức tạp ngày càng tăng của game hiện đại.
Bối cảnh của bài nói xuất phát từ lịch sử phát triển của engine Anvil. Engine này ra đời cùng Assassin’s Creed năm 2007, được thiết kế đặc biệt cho các thế giới mở quy mô lớn với khả năng render khoảng cách xa và gameplay hệ thống. Qua nhiều năm, Ubisoft phát triển nhiều biến thể của engine này để phục vụ các dự án khác nhau như For Honor hoặc Ghost Recon. Tuy nhiên việc tồn tại quá nhiều “fork” của engine đã dẫn tới sự trùng lặp công việc và giảm hiệu quả phát triển. Do đó Ubisoft chuyển sang mô hình “shared engine” với một codebase chung (monorepo) được sử dụng bởi nhiều studio trên toàn cầu. Sự thay đổi này phản ánh xu hướng lớn trong ngành: các hãng game AAA ngày càng cần hệ thống engine chung có khả năng mở rộng lâu dài thay vì những engine riêng lẻ cho từng dự án.
Assassin’s Creed Shadows được phát triển như tựa Assassin’s Creed đầu tiên dành hoàn toàn cho phần cứng thế hệ mới. Quy mô kỹ thuật của dự án rất lớn: thế giới mở 16×16 km, hệ thống thời gian trong ngày, thời tiết động, bốn mùa khác nhau, ray tracing, phá hủy môi trường và geometry ảo hóa. Để xử lý khối lượng dữ liệu khổng lồ này, engine Anvil sử dụng hệ thống streaming world dựa trên grid và LOD nhiều tầng. Các đối tượng gần người chơi được render bằng mesh chi tiết cao, các đối tượng xa được chuyển sang impostor hoặc point cloud rendering có thể hiển thị tới khoảng cách 8 km. Điều này cho phép game duy trì hiệu năng ổn định ngay cả khi thế giới mở chứa hàng tỷ tam giác hình học.
Một trong những cải tiến quan trọng của pipeline rendering là kiến trúc GPU-driven. Trước đây nhiều bước render được xử lý trên CPU, nhưng trong pipeline mới phần lớn công việc đã được chuyển sang GPU. Engine sử dụng một hệ thống dữ liệu gọi là “database” để chia sẻ cấu trúc scene giữa CPU và GPU. Về bản chất đây là một dạng structured buffer được tổ chức theo mô hình data-oriented design. Nhờ đó GPU có thể thực hiện culling, batching và xử lý hàng triệu instance mỗi frame. Ngoài ra engine còn bổ sung pipeline micro-polygon geometry, tương tự các kỹ thuật hiện đại như Nanite, cho phép render mesh chi tiết cao với bộ nhớ ít hơn và LOD liên tục.
Một thành phần quan trọng khác trong pipeline là hệ thống Global Illumination. Assassin’s Creed Shadows sử dụng kiến trúc lai giữa baked GI và ray-traced GI. Các phiên bản Assassin’s Creed trước đây sử dụng GI baked hoàn toàn, nhưng phương pháp này không thể mở rộng cho thế giới mở lớn với nhiều mùa và thời gian trong ngày. Nếu áp dụng cách cũ, dữ liệu GI có thể lên tới hàng terabyte. Vì vậy đội ngũ phát triển chuyển sang hệ thống probe thưa (sparse probes) với density map để chỉ lưu dữ liệu ở những nơi cần thiết. Nhờ vậy kích thước dữ liệu giảm từ khoảng 2TB xuống còn khoảng 9GB. Ngoài ra pipeline còn hỗ trợ ray-traced GI thời gian thực để tăng độ chính xác ánh sáng trong các chế độ đồ họa cao.
Hệ thống ray tracing của game được thiết kế linh hoạt để chạy trên nhiều nền tảng phần cứng khác nhau. Ubisoft xây dựng một abstraction layer gọi là Fusion để hỗ trợ cả ray tracing phần cứng và phần mềm. Điều này cho phép engine chạy trên nhiều GPU khác nhau và thậm chí hỗ trợ fallback cho phần cứng yếu hơn. Pipeline ray tracing của game kết hợp nhiều kỹ thuật: screen-space tracing, world-space ray tracing và probe cascade để tính nhiều bounce ánh sáng. Các bước denoising được áp dụng để ổn định kết quả và giảm nhiễu hình ảnh.
Ngoài ánh sáng, hệ thống môi trường của game cũng rất phức tạp. Assassin’s Creed Shadows sử dụng mô phỏng khí quyển gọi là Atmos để điều khiển các yếu tố như nhiệt độ, độ ẩm và gió. Các thông số này được dùng để tạo mây, mưa và các hiệu ứng thời tiết khác. Hệ thống “Ambience Graph” cho phép các kỹ thuật viên nghệ thuật điều khiển logic thời tiết và mùa theo dạng graph dữ liệu. Ví dụ mưa làm bề mặt trở nên ướt và phản chiếu hơn, tuyết có thể tích tụ theo thời gian và tan dần khi thời tiết ấm lên. Những hệ thống này giúp thế giới game thay đổi liên tục mà vẫn giữ được hiệu năng.
Một thách thức lớn của dự án là tối ưu hiệu năng trên nhiều nền tảng khác nhau. Ubisoft xây dựng một hệ thống gọi là Platform Manager để quản lý cấu hình đồ họa theo từng thiết bị. Hệ thống này cho phép game chuyển đổi giữa các chế độ như performance, balanced và quality. Các thông số đồ họa có thể được điều chỉnh động dựa trên ngữ cảnh gameplay hoặc khu vực trong thế giới game. Ngoài ra studio còn phát triển nhiều công cụ telemetry để theo dõi memory usage, frame time và regression hiệu năng trong quá trình phát triển.
Kết luận của bài nói nhấn mạnh rằng Assassin’s Creed Shadows là dự án lớn nhất từng được xây dựng trên engine Anvil. Đây cũng là game đầu tiên của Ubisoft sử dụng hoàn toàn mô hình monorepo và shared engine cho nhiều studio. Mặc dù công nghệ mới như ray tracing và micro-polygon rendering mang lại chất lượng hình ảnh cao hơn, chúng cũng làm tăng đáng kể độ phức tạp của pipeline và quy trình QA. Trong tương lai, nhóm phát triển muốn đơn giản hóa pipeline ánh sáng, mở rộng sử dụng micro-polygon geometry và tiếp tục cải thiện khả năng mở rộng của engine. Bài trình bày cho thấy một xu hướng quan trọng của ngành game AAA: sự chuyển dịch từ những engine riêng lẻ sang các nền tảng công nghệ dùng chung, có khả năng phục vụ nhiều dự án lớn trong thời gian dài.

