
Phân tích nhân trò chơi toàn chuỗi: MUD Engine và World Engine
Tuyển chọn TechFlowTuyển chọn TechFlow

Phân tích nhân trò chơi toàn chuỗi: MUD Engine và World Engine
Với sự cải thiện của cơ sở hạ tầng, việc xây dựng và hiện thực hóa các ý tưởng phức tạp sẽ được thực hiện thông qua MUD và tích hợp tương tác trên các giải pháp Rollup phức tạp hơn, có thể mở ra một mô hình mới cho blockchain bắt đầu từ các trò chơi toàn chuỗi.
Tác giả: Solaire, YBB Capital

Trước đây, do giới hạn từ cấu trúc chuỗi khối của blockchain, việc xây dựng một DApp thực tế trên chuỗi chưa bao giờ là điều đơn giản. Tuy nhiên, ngay cả khi bị giới hạn như vậy, những người tiên phong cũng chưa từng ngừng tiến bước. Khi công thức nổi tiếng "x * y = k" cho mô hình thanh khoản hằng định ra đời, Uniswap với chỉ vài trăm dòng mã đã dẫn dắt DeFi thay đổi hoàn toàn câu chuyện của Crypto. Một DApp đơn giản dưới bàn tay sáng tạo của các nhà phát triển có thể đạt đến tầm cao như vậy, vậy còn những ứng dụng DApp phức tạp thì sao? Ví dụ như việc xây dựng toàn bộ một trò chơi hay nền tảng mạng xã hội hoàn toàn trên chuỗi? Trước đây, đây có thể là một ý tưởng điên rồ, nhưng trong thời điểm hiện tại khi Rollup đã mở ra khả năng mở rộng, khả năng này bắt đầu trở nên tinh tế hơn.
DeFi từng mang về hàng ngàn tỷ USD TVL cho Crypto, vậy làm thế nào để hiện thực hóa các DApp ngày càng phức tạp hơn? Liệu chúng có thể đưa Crypto lên một tầm cao mới lần nữa không? Có lẽ những tựa game hoàn toàn trên chuỗi (full-chain games) đang ở giai đoạn đầu phát triển sẽ cho chúng ta câu trả lời. Bài viết này sẽ phân tích về full-chain games qua bốn phần: lịch sử, định nghĩa hiện tại, cách thức xây dựng và vận hành, cùng ý nghĩa đối với tương lai của Crypto.
Gốc rễ và sự phát triển của game hoàn toàn trên chuỗi
Lịch sử của game hoàn toàn trên chuỗi có thể được truy ngược về 10 năm trước, khi Mikhail Sindeyev fork Namecoin và xây dựng tựa game blockchain đầu tiên trên thế giới mang tên Huntercoin. Huntercoin khởi đầu như một bản thử nghiệm vào năm 2013 và nhanh chóng thu hút một lượng lớn người chơi cuồng nhiệt, nhận được sự ủng hộ từ nhiều thành viên nổi bật trên bitcointalk.org. Nhờ niềm đam mê của cộng đồng yêu công nghệ đối với game điện tử, bài đăng phổ biến nhất về Huntercoin đã đạt hơn 380.000 lượt xem. Tuy nhiên, đáng tiếc là Mikhail Sindeyev qua đời vì đột quỵ vào tháng 2 năm 2014, khiến việc phát triển Huntercoin rơi vào bế tắc, và token HUC gần như mất giá hoàn toàn vào năm 2015. Dù lần thử nghiệm đầu tiên của game hoàn toàn trên chuỗi không thành công, may mắn thay, câu chuyện về thể loại này vẫn tiếp tục.
Năm 2020, Gubsheep (Brian Gu), Alan Luo và SCOTT SUNARTO, lấy cảm hứng từ tiểu thuyết Thể Tam: Rừng Đen, đã phát triển một tựa game MMORTS chinh phục không gian cùng tên Dark Forest. Trò chơi được xây dựng trên Ethereum, với mọi quy tắc và logic đều được viết vào hợp đồng thông minh – tức là mỗi hành động đều là một giao dịch trên chuỗi. Phần cốt lõi của nội dung trò chơi sử dụng công nghệ ZK-Snarks (chứng minh không kiến thức) để tạo ra lớp sương mù chiến tranh, tái hiện nguyên tắc "Rừng Đen" trong tiểu thuyết (một nền văn minh vũ trụ nào đó nếu bị phát hiện sẽ lập tức bị tấn công).

Ví dụ, khi người chơi muốn hành động, theo luật Rừng Đen, họ không thể tiết lộ tọa độ của mình, nhưng vẫn phải di chuyển từ hành tinh A sang B. Họ cần gửi tọa độ A và B để chứng minh hành động hợp lệ, tuy nhiên dữ liệu khối trên Ethereum hoàn toàn minh bạch. Dark Forest giải quyết vấn đề ẩn thông tin bằng cách sau: Người chơi chọn hành tinh xuất phát và đích đến – hai vị trí này là thông tin riêng tư. Hệ thống tính toán giá trị băm (hash) của hai hành tinh này rồi gửi hai giá trị băm lên blockchain. Ở giai đoạn này, người chơi gửi một cam kết (Giai đoạn Commit). Do tính chất một chiều của hàm băm, các giá trị băm này không thể dùng để xác định vị trí thật sự của hành tinh. Giai đoạn tiếp theo là tiết lộ (Giai đoạn Reveal), người chơi tạo và gửi một bằng chứng không kiến thức để chứng minh hành động hợp lệ. Bằng chứng này có thể được bất kỳ ai kiểm tra mà không tiết lộ thông tin về vị trí hành tinh.
Như vậy, Dark Forest trở thành trò chơi hoàn toàn trên chuỗi đầu tiên ẩn được thông tin trong môi trường minh bạch của Ethereum. Thử nghiệm điên rồ nhưng đầy sáng tạo này nhanh chóng gây chấn động khắp cộng đồng Crypto, đến mức Vitalik (người sáng lập Ethereum) đã trực tiếp retweet và khen ngợi trò chơi trên Twitter.
Tuy nhiên, sau khi Dark Forest ra mắt, lượng người chơi đổ về vượt quá 10.000 người, khó khăn bắt đầu xuất hiện. Hiệu năng của Ethereum không đủ để hỗ trợ ứng dụng phức tạp như vậy. Ngày ra mắt, trò chơi đã làm nghẽn toàn bộ blockchain, tiêu tốn hàng ngàn tỷ gas. Hơn nữa, vì trò chơi được xây dựng dựa trên thư viện và kiến trúc dành cho ứng dụng DeFi, việc tối ưu sau này chỉ làm giảm đau chứ không giải quyết tận gốc vấn đề.
Từ cảm hứng về tiềm năng của ZK-Snarks và suy ngẫm về khó khăn của game hoàn toàn trên chuỗi, người sáng lập Brian Gu đã thành lập 0xPARC như một viện nghiên cứu ZK-Snarks nhằm thúc đẩy phát triển chứng minh không kiến thức; trong khi nhánh Lattice thuộc 0xPARC phụ trách thiết kế và duy trì engine game hoàn toàn trên chuỗi MUD. Đồng sáng lập SCOTT SUNARTO bắt đầu phát triển World Engine – một framework Rollup phân mảnh chuyên dụng cho việc vận hành game toàn chuỗi.
Ngày nay, bằng chứng không kiến thức đã được ứng dụng rộng rãi và trở nên quen thuộc. Phần tiếp theo của bài viết sẽ tập trung vào hai yếu tố còn lại: engine MUD và World Engine – đại diện cho khía cạnh sáng tạo và vận hành. Nhưng trước tiên, chúng ta cần hiểu định nghĩa và góc nhìn mới về game hoàn toàn trên chuỗi từ đội ngũ phát triển (0xPARC).
Autonomous Worlds
Dựa trên quan điểm từ tuyển tập luận văn về game mã hóa của 0xPARC mang tên Autonomous Worlds, một game hoàn toàn trên chuỗi cần đáp ứng ít nhất năm tiêu chuẩn:
-
Dữ liệu đến từ blockchain: Blockchain không chỉ là nơi lưu trữ phụ trợ, cũng không phải bản sao ("mirror") của dữ liệu trên máy chủ riêng. Mọi dữ liệu có ý nghĩa đều có thể truy cập trên blockchain, không chỉ riêng quyền sở hữu tài sản. Điều này giúp game tận dụng tối đa lợi thế của blockchain có thể lập trình – lưu trữ minh bạch, tương tác không cần cấp phép;
-
Logic và quy tắc được thực hiện qua hợp đồng thông minh: Ví dụ, trận chiến trong game, chứ không chỉ quyền sở hữu, đều diễn ra trên chuỗi;
-
Việc phát triển game tuân thủ nguyên tắc hệ sinh thái mở: Cả hợp đồng game và client truy cập đều mã nguồn mở. Nhà phát triển bên thứ ba có thể thông qua plugin, client riêng, hợp đồng tương tác để triển khai lại hoàn toàn, tùy chỉnh hoặc fork trải nghiệm game của riêng họ. Điều này ngược lại giúp nhà phát triển game tận dụng được kết quả sáng tạo từ toàn bộ cộng đồng (có động lực nhất quán);
-
Game tồn tại vĩnh viễn trên chuỗi: Điểm này liên quan mật thiết tới ba điều trên. Tiêu chuẩn kiểm tra một trò chơi có phải là bản địa mã hóa hay không là: Nếu ngày mai client do nhóm phát triển chính cung cấp biến mất, trò chơi có còn chơi được không? Câu trả lời thường là khẳng định, nếu (và chỉ nếu) dữ liệu game được lưu trữ không cần cấp phép, nếu logic game có thể thực thi không cần cấp phép, và cộng đồng có thể tương tác với hợp đồng thông minh chính mà không phụ thuộc vào giao diện do nhóm cốt lõi cung cấp;
-
Game có thể tương tác với những thứ mà chúng ta coi là có giá trị: Blockchain cung cấp một giao diện ứng dụng (API) bản địa cho khái niệm giá trị, tài sản kỹ thuật số mặc định có thể tương tác với các tài sản khác mà chúng ta quan tâm. Điều này vừa phản ánh, vừa góp phần nâng cao chiều sâu và ý nghĩa của trò chơi, đồng thời kết nối thế giới game với thế giới "thực".
Một trò chơi toàn chuỗi được xây dựng theo tiêu chuẩn này cũng có thể được xem như một thế giới dựa trên blockchain, hay còn gọi là Autonomous Worlds (Thế giới tự trị).
Vậy thế giới là gì? Thế giới không nhất thiết phải chỉ thế giới thực. Phương tiện mang thế giới có thể là tiểu thuyết, phim ảnh, trò chơi, thơ ca hay thậm chí là hệ thống pháp luật. Nhưng trong các thế giới đó, luôn có một trung tâm (tác giả, nhà phát triển hoặc nhóm người) đặt ra khung và quy tắc rồi truyền đạt tới chúng ta. Mức độ tự trị trong các thế giới này cũng khác nhau. Ví dụ, một game thế giới mở nổi tiếng như Minecraft (Thế giới của tôi), người chơi có mức độ tự trị rất cao, thông qua việc lắp ghép các khối khác nhau và sửa đổi quy tắc, họ có thể tạo ra thế giới riêng của mình. Trong khi đó, thế giới có mức độ tự trị thấp hơn có thể là thế giới tiểu thuyết như **Harry·Potter, nơi chúng ta thấy một thế giới phù thủy được xây dựng hoàn toàn dựa trên quy tắc và khung do JK Rowling tạo ra.
Nếu lấy blockchain làm nền tảng cho thế giới, blockchain rõ ràng lưu giữ tập hợp tất cả thực thể trạng thái hiện tại. Ngoài ra, nó còn chính thức định nghĩa các quy tắc bằng mã máy tính. Một thế giới có nền tảng blockchain cho phép cư dân tham gia vào quá trình đồng thuận. Nó vận hành một mạng máy tính, đạt được sự đồng thuận mỗi khi một thực thể mới được thêm vào.
Từ góc nhìn thế giới, có hai khái niệm blockchain cần định nghĩa:
-
Gốc trạng thái blockchain (State Root): Gốc trạng thái là dạng nén của tất cả thực thể trong thế giới. Với gốc trạng thái, người ta có thể xác định bất kỳ thực thể nào là thật hay ảo. Tin tưởng vào gốc trạng thái của một thế giới cũng đồng nghĩa với tin tưởng vào chính thế giới đó. Giá trị 0x411842e02a67ab1ab6d3722949263f06bca-20c62e03a99812bcd15dce6daf26e là gốc trạng thái của Ethereum – một thế giới có nền tảng blockchain – vào lúc 19:30:10 UTC ngày 21 tháng 7 năm 2022. Khi tính toán gốc trạng thái này, mọi thực thể trong thế giới Ethereum đều được xét đến. Nó đại diện cho toàn bộ nội dung của thế giới tại thời điểm cụ thể đó;
-
Hàm chuyển đổi trạng thái blockchain: Mỗi blockchain định nghĩa một hàm chuyển đổi trạng thái. Nó có thể được xem như một quy tắc nhập rõ ràng. Nó định nghĩa cách "thế giới" – tập hợp các thực thể ảo – thay đổi như thế nào khi có đầu vào từ con người và máy móc để thêm thực thể ảo mới. Đối với Bitcoin, hàm chuyển đổi trạng thái định nghĩa cách số dư được tiêu dùng và chuyển giữa các địa chỉ.
Do đó, nếu xem game toàn chuỗi như một thế giới dựa trên blockchain, thì thế giới phi tập trung này có mức độ tự trị vô hạn, cũng có thể gọi là Autonomous World.
Khó khăn trong việc sáng tạo
Trong quá trình khám phá ban đầu về thiết kế game toàn chuỗi, các nhà phát triển thường xuyên bị giới hạn bởi kiến trúc DApp truyền thống và các thư viện dùng để xây dựng ứng dụng DeFi. Dark Forest và các game toàn chuỗi sớm khác buộc phải tuân theo kiến trúc và thư viện dành cho ứng dụng DeFi, vốn trở thành lựa chọn mặc định lúc bấy giờ.
Các mô hình xây dựng game toàn chuỗi thời kỳ đầu có thể được tóm tắt thành bốn điểm:
-
Khi các hợp đồng khác nhau chạm vào cùng trạng thái: Nhiều hợp đồng thông minh có thể sửa đổi cùng một dữ liệu hoặc trạng thái, dẫn đến nguy cơ không nhất quán dữ liệu hoặc các vấn đề khác. Đôi khi dùng Diamond Pattern để giải quyết (mô hình kim cương là phương pháp giải quyết vấn đề kế thừa đa lớp trong hợp đồng Solidity);
-
Viết nhiều cấu trúc dữ liệu: Mỗi thực thể (như lính, hành tinh trong game) đều có cấu trúc và kiểu dữ liệu riêng;
-
Viết các hàm Getters: Đây là hàm trả về các phần tử theo nhóm từ cấu trúc dữ liệu, dùng để lấy trạng thái hoặc dữ liệu ban đầu từ chuỗi. Ví dụ, hàm getPlanets() có thể trả về danh sách tất cả hành tinh;
-
Sự kiện (Events): Mỗi cấu trúc dữ liệu chứa một sự kiện – chức năng đặc biệt trong hợp đồng thông minh cho phép ứng dụng đồng bộ hoặc cập nhật trạng thái khi khối mới được thêm vào chuỗi. Ví dụ, khi một hành tinh mới được tạo, một sự kiện có thể được kích hoạt, ứng dụng lắng nghe sự kiện này và cập nhật danh sách hành tinh hiển thị.
Xây dựng game toàn chuỗi theo mô hình này cực kỳ đau khổ, dù có thể liên tục tối ưu để giảm bớt khó khăn, nhưng rõ ràng cách xây dựng này vẫn còn xa so với việc dùng một engine tổng quát thực sự.
Người sáng tạo thế giới – Engine MUD

Sự ra đời của engine MUD đến từ sự suy ngẫm của các nhà phát triển về các vấn đề quá khứ và hiện tại. MUD là một framework dành cho ứng dụng Ethereum phức tạp trên chuỗi. MUD cung cấp các quy ước tổ chức dữ liệu và logic, đồng thời trừu tượng hóa độ phức tạp cấp thấp, giúp nhà phát triển tập trung vào chức năng ứng dụng. Nó chuẩn hóa cách lưu trữ dữ liệu trên chuỗi. Với mô hình dữ liệu chuẩn này, MUD có thể cung cấp toàn bộ mã mạng để đồng bộ trạng thái giữa hợp đồng và client.
Phiên bản mới nhất của MUD hiện gồm năm thành phần:
-
Store: Cơ sở dữ liệu trên chuỗi;
-
World: Framework điểm vào, cung cấp kiểm soát truy cập, nâng cấp và mô-đun chuẩn hóa;
-
tools: Công cụ phát triển siêu nhanh dựa trên Foundry;
-
Lưu trữ dữ liệu phía client: Phản ánh kỳ diệu trạng thái trên chuỗi;
-
MODE: Cơ sở dữ liệu Postgres có thể truy vấn bằng SQL.
Tương thích hoàn toàn EVM, độ tự do cực cao
Tính phổ quát của MUD không chỉ giới hạn ở mainnet Ethereum. Miễn là ngôn ngữ hỗ trợ, MUD có thể hoạt động liền mạch trên mọi chuỗi tương thích EVM, dù là Polygon, Arbitrum, Optimism hay Gnosis Chain.
Hơn nữa, mặc dù MUD là framework được ưa chuộng trong cộng đồng Autonomous Worlds và game trên chuỗi, nhưng ứng dụng của nó không dừng lại ở đó. Đồng thời, MUD cung cấp độ tự do rất lớn, không ép buộc nhà phát triển bị giới hạn bởi mô hình dữ liệu cụ thể nào. Nói ngắn gọn, mọi thứ có thể thực hiện được bằng ánh xạ (mapping) và mảng trong Solidity đều có thể dễ dàng thực hiện trong MUD. Về mặt sẵn có dữ liệu, dù là triển khai trên mainnet hay Rollups, các ứng dụng MUD đều có thể sánh ngang với các ứng dụng Ethereum truyền thống như ENS và Uniswap.
Tư tưởng cốt lõi
Là một bộ thư viện và công cụ được thiết kế cao độ cho ứng dụng phức tạp trên chuỗi, MUD xoay quanh ba tư tưởng chính:
-
Mọi trạng thái trên chuỗi đều được lưu trong cơ sở dữ liệu Store trên chuỗi của MUD: Store là một cơ sở dữ liệu EVM nhúng, giống như cơ sở dữ liệu SQLite, có khái niệm bảng, cột và hàng. Sử dụng Store giúp quản lý dữ liệu có cấu trúc hơn, không cần phụ thuộc vào phương pháp lưu trữ do trình biên dịch Solidity cung cấp. Ngoài ra, nó hỗ trợ tạo bảng trong lúc chạy và cho phép đăng ký móc nối để tự động tạo view chỉ mục, mang lại tính linh hoạt cao hơn;
-
Logic không trạng thái và được phân vùng qua quyền tùy chỉnh giữa các hợp đồng khác nhau: “World” đóng vai trò là điểm vào, điều phối các hợp đồng thông minh khác nhau truy cập “Store”. Khi một “World” được triển khai, nó sẽ tạo ra một “Store”, mỗi bảng trong “Store” được đăng ký dưới một namespace cụ thể. Khi chức năng (ví dụ logic chuyển tiền giữa các địa chỉ) được thêm vào “World”, nó cũng được đăng ký trong namespace và gọi là “hệ thống” (“system”). Những “hệ thống” này thực chất là các hợp đồng thông minh, nhưng khác với hợp đồng truyền thống ở chỗ chúng không trạng thái, không trực tiếp nắm giữ dữ liệu. Thay vào đó, chúng sử dụng “World Store” để đọc và ghi dữ liệu. Nhờ thiết kế này, miễn là triển khai trên cùng một chuỗi, các “hệ thống” này có thể được tái sử dụng giữa các “World” khác nhau;
-
Không cần indexer hay subgraph, frontend vẫn đồng bộ được: Khi sử dụng Store (và mở rộng là World), dữ liệu trên chuỗi được tự kiểm tra (Introspection), mọi thay đổi được phát sóng qua các sự kiện chuẩn. Thông qua node “MODE”, trạng thái trên chuỗi được chuyển đổi thành cơ sở dữ liệu SQL theo thời gian thực (độ trễ miligiây). Ngoài ra, MUD cung cấp loạt công cụ truy vấn như MUD QDSL và GraphQL, giúp đơn giản hóa việc đồng bộ frontend. Với nhà phát triển React, MUD còn cung cấp các Hook chuyên biệt, cho phép tự động gắn kết và cập nhật trạng thái component.
Phá vỡ xiềng xích
Thông qua ba tư tưởng cốt lõi, hãy cùng xem MUD phá vỡ xiềng xích của ứng dụng phức tạp như thế nào bằng cách so sánh với các khó khăn trước đây.
-
Khi các hợp đồng khác nhau chạm vào cùng trạng thái: Sử dụng cấu trúc “World” và “Store” để quản lý tập trung trạng thái trên chuỗi. Tất cả hợp đồng thông minh (gọi là “hệ thống” trong MUD) đều truy cập và sửa đổi dữ liệu trong “Store” thông qua “World”. Điều này đảm bảo mọi thay đổi trạng thái đều đi qua một điểm vào tập trung, giảm thiểu rủi ro không nhất quán hoặc xung đột dữ liệu. Qua namespace và đường dẫn, MUD cung cấp kiểm soát truy cập chi tiết vào dữ liệu. Các “hệ thống” khác nhau có thể có quyền khác nhau, đảm bảo chỉ “hệ thống” được ủy quyền mới có thể sửa đổi dữ liệu hoặc trạng thái cụ thể;
-
Cấu trúc dữ liệu: Khác với phương pháp lưu trữ Solidity truyền thống, “Store” của MUD cung cấp khái niệm bảng, cột, hàng giống SQLite, giúp lưu trữ và quản lý dữ liệu có cấu trúc hơn. Mỗi thực thể (lính, hành tinh trong game) có thể có bảng riêng, mỗi bảng có thể có nhiều cột để lưu thuộc tính khác nhau của thực thể;
-
Hàm Getters: Vì “Store” của MUD cung cấp lưu trữ dữ liệu có cấu trúc, việc lấy dữ liệu trở nên đơn giản và trực quan hơn. Nhà phát triển có thể dùng ngôn ngữ truy vấn kiểu SQL để lấy dữ liệu, không cần viết hàm getters chuyên biệt. Ví dụ, để lấy tất cả hành tinh, nhà phát triển chỉ cần truy vấn bảng hành tinh, không cần viết hàm getPlanets();
-
Sự kiện: MUD cung cấp chức năng tự kiểm tra, nghĩa là mọi thay đổi dữ liệu đều tự động được hệ thống nhận diện và kích hoạt sự kiện tương ứng. Ứng dụng có thể lắng nghe các sự kiện này để đồng bộ hoặc cập nhật trạng thái, không cần định nghĩa sự kiện thủ công cho mỗi cấu trúc dữ liệu.
Trên đây là phần giải thích cơ bản về các khối xây dựng và cách dùng một số thành phần của MUD. MUD còn có thể xây dựng các tình huống và ứng dụng phức tạp hơn.
Vận hành thế giới: World Engine
Việc vận hành game toàn chuỗi luôn là thách thức lớn đối với Ethereum. Tuy nhiên, với sự phát triển nhanh chóng của Rollups và việc nâng cấp Cancun sắp tới, chi phí giảm mạnh, tốc độ tăng cao trong tương lai. Game toàn chuỗi đã sẵn sàng bùng nổ, nhưng các Rollup chính hiện nay chủ yếu được thiết kế cho giao dịch, chưa có Rollup nào thực sự được thiết kế riêng cho game toàn chuỗi.
World Engine – sản phẩm cốt lõi của Argus – chính là Rollup phân mảnh được thiết kế thực sự dành riêng cho game toàn chuỗi. Do chưa có bản thử nghiệm công khai, chúng ta sẽ phân tích World Engine từ blog và bài thuyết trình của dự án.
Game toàn chuỗi cần Rollup như thế nào?
-
Thông lượng cao và TPS cao: Xử lý giao dịch nhanh hơn, độ trễ thấp hơn, khả năng mở rộng tốt hơn;
-
Mở rộng đọc và ghi: Hầu hết Layer 2 được thiết kế để ghi nhiều nhằm xử lý đồng thời cao, nhưng game cần đọc để biết vị trí người chơi, nên đọc và ghi đều quan trọng;
-
Chuỗi mở rộng ngang: Mở rộng ngang nghĩa là tăng khả năng xử lý hệ thống bằng cách thêm nhiều nút và tài nguyên hơn, thích nghi với nhu cầu tăng trưởng. Điều này giúp tránh vấn đề Noisy Neighbor (hoạt động của một ứng dụng có thể ảnh hưởng tiêu cực đến ứng dụng khác, gây tranh chấp tài nguyên và vấn đề hiệu suất);
-
Linh hoạt và tùy chỉnh: Tính linh hoạt và tùy biến cao, dễ sửa đổi máy trạng thái để phục vụ thiết kế game. Bao gồm cả vòng lặp game, cho phép tự thực thi, v.v.;
-
Tốc độ Tick (Tick rate): Tick là đơn vị nguyên tử trong thời gian game, game muốn độ trễ thấp cần tốc độ tick cao hơn hoặc nhiều khối mỗi giây hơn để giảm độ trễ.
Kiến trúc phân mảnh
Để đạt được các mục tiêu trên, nhóm phát triển đã nhìn lại thời điểm đầu những năm 2000 và cuối những năm 1990, khi các game online như MMOs bắt đầu nổi lên. Các game online thời kỳ đầu, trong bối cảnh công nghệ mạng và máy chủ còn hạn chế, cần tìm cách hỗ trợ tương tác của lượng lớn người chơi. "Phân mảnh" (sharding) là một trong những giải pháp, tư tưởng cốt lõi là phân bố người chơi sang các máy chủ hoặc “phân mảnh” khác nhau, mỗi phân mảnh độc lập lưu trữ một phần người chơi, bản đồ và dữ liệu game.
Ví dụ, Ultima Online là một MMORPG sớm đã áp dụng khái niệm phân mảnh trên máy chủ. Các phân mảnh khác nhau trong game đại diện cho các thế giới ảo khác nhau, mỗi phân mảnh chứa một lượng người chơi nhất định. Lợi ích bao gồm:
-
Mở rộng: Phân bố người chơi sang các phân mảnh khác nhau giúp game dễ dàng mở rộng để đón thêm người chơi;
-
Giảm tải: Phân mảnh giảm số lượng người chơi và dữ liệu trên một máy chủ, giảm tải, tăng hiệu suất;
-
Tránh ùn tắc: Giảm tình trạng đông đúc của người chơi trong cùng khu vực, mang lại trải nghiệm mượt mà hơn;
-
Tối ưu theo địa lý: Phân bổ người chơi đến phân mảnh gần nhất giúp giảm độ trễ mạng, tăng tốc độ phản hồi game.
Làm thế nào để áp dụng khái niệm này vào World Engine? Khác với nhiều bộ sắp xếp phân mảnh trước đây, thiết kế của “World Engine” phù hợp hơn với nhu cầu cụ thể. Hướng tối ưu bao gồm thông lượng và thời gian chạy. Để đảm bảo “tick rate” (tần suất cập nhật mỗi giây) và thời gian khối hiệu quả, nó mặc định hoạt động đồng bộ. Mục tiêu thiết kế là xử lý giao dịch nhanh chóng để duy trì trải nghiệm game hiệu quả hoặc hiệu suất hệ thống. Về cách sắp xếp, nó sử dụng sắp xếp một phần thay vì yêu cầu sắp xếp toàn bộ mọi giao dịch. Nghĩa là không bắt buộc mỗi giao dịch phải xảy ra sau tất cả các giao dịch khác. Điều này giảm gánh nặng sắp xếp, từ đó đáp ứng tốt hơn nhu cầu thông lượng cao và thời gian khối nhanh.
Có hai thành phần chính: EVM Base Shard (phân mảnh EVM) và một Game Shard (phân mảnh game). Phân mảnh EVM là một chuỗi EVM thuần túy. Còn vũ khí bí mật thực sự là phân mảnh game – về bản chất là một blockchain mini được thiết kế như máy chủ game hiệu suất cao. World Engine có giao diện bring-your-own-implementation, cho phép tùy chỉnh phân mảnh theo ý muốn. Phân mảnh được xây dựng, sau đó tiêm vào phân mảnh cơ sở. Chỉ cần triển khai một bộ giao diện chuẩn, giống như Cosmos với giao diện IBC. Về cơ bản, ta có thể tích hợp thành một chuẩn tương tự, mang phân mảnh riêng vào ngăn xếp World Engine.
Cardinal là triển khai đầu tiên của phân mảnh game trên World Engine. Nó sử dụng kiến trúc Entity-Component-System (ECS) – một kiến trúc hướng dữ liệu. Điều này cho phép song song hóa game và tăng thông lượng tính toán. Nó có “tick rate” có thể cấu hình, tối đa lên đến 20 tick mỗi giây. Với blockchain, điều đó nghĩa là 20 khối mỗi giây. Ngoài ra, nó còn tự đánh chỉ mục, không cần indexer bên ngoài.
Hơn nữa, phân mảnh còn có thể định vị theo địa lý để giảm độ trễ. Ví dụ, game có thể có bộ sắp xếp tại Mỹ, người chơi châu Á phải chờ 300ms để giao dịch đến được bộ sắp xếp. Đây là vấn đề lớn trong game, vì 300ms là khoảng thời gian dài. Nếu cố chơi một game FPS có độ trễ 200ms, thì cơ bản là đang chơi... PowerPoint.
Kết luận: Suy ngẫm về game toàn chuỗi
Game toàn chuỗi luôn là một hướng đi khá hẻo lánh trong cộng đồng mã hóa châu Á, nhưng với sự ra mắt của engine Dojo trên Starknet và các demo phát triển chuỗi tick dựa trên OP Stack, thảo luận về game toàn chuỗi dần nóng lên. Phạm vi bài viết này tập trung vào hệ sinh thái phát triển từ Dark Forest – cũng là hệ sinh thái game toàn chuỗi mạnh nhất hiện nay.
Thông qua việc tìm hiểu lịch sử và công nghệ, chúng ta thấy rằng Rollup và DApp vẫn còn tiềm năng rất lớn. Nhìn xa hơn, cùng với sự cải thiện của hạ tầng, không chỉ riêng game mà mọi ý tưởng phức tạp đều có thể được xây dựng qua MUD và tích hợp tương tác trên các giải pháp Rollup phức tạp hơn. Có thể nói, khuôn mẫu mới của blockchain sẽ bắt đầu từ game toàn chuỗi.
Về game toàn chuỗi còn nhiều nội dung có thể mở rộng, ví dụ như hệ sinh thái game toàn chuỗi phát triển từ Loot thúc đẩy Starknet, hay việc thực hiện đồng bộ trạng thái, ứng dụng kiến trúc ECS.
Chào mừng tham gia cộng đồng chính thức TechFlow
Nhóm Telegram:https://t.me/TechFlowDaily
Tài khoản Twitter chính thức:https://x.com/TechFlowPost
Tài khoản Twitter tiếng Anh:https://x.com/BlockFlow_News














