iOSG Ventures: Giải thích chi tiết về công nghệ game trên chuỗi, làm sao để đồng bộ trạng thái game?
Tác giả gốc: Fiona, IOSG Ventures
Cảm ơn @BriefKandle Người tạo ra @netherscape_xyz, @stokasz CEO@rhascau @mintersworld, nhóm @0x curio, @SebastienGllmt đồng sáng lập @PaimaStudios, @hiCaptainZ và @SerenaTaN 5 vì sự trợ giúp và ý kiến đóng góp có giá trị của họ!
TL;DR
Thế giới trò chơi/tự trị toàn chuỗi (“FOG/AW”) là một trong số ít câu chuyện quan trọng xung quanh Web 3. So với các ứng dụng Web2.5 chỉ kết nối với Web3 thông qua NFT, FOG/AW đưa logic trò chơi vào chuỗi. Nó sử dụng blockchain làm máy chủ trò chơi, trở thành nguồn tin cậy phi tập trung cho trạng thái của trò chơi. Điều này mang lại những lợi thế như tính bền bỉ, khả năng chống kiểm duyệt, khả năng kết hợp, v.v., nhưng cũng hạn chế tính đa dạng và phức tạp của các trò chơi được xây dựng dựa trên nó.
Với sự gia tăng về độ phức tạp của trò chơi và yêu cầu về khả năng chơi, nhiều thách thức hơn được đặt ra đối với kiến trúc công cụ: chẳng hạn như độ trễ khung hình, số ngẫu nhiên, hồi phục mạng sống, hiệu ứng thụ động liên tục, bộ tính giờ, v.v. Khái niệm về thời gian và đơn vị Ticks trên blockchain là khác nhau. Bùn cung cấp rất nhiều ý tưởng để mô phỏng thời gian trôi qua và các kỹ năng phục hồi thụ động. Ví dụ: khi người chơi di chuyển trong phòng, giao dịch đi kèm với việc di chuyển tất cả các vật phẩm trong phòng theo một số thiết kế được xác định trước. Sử dụng điều này để nhận biết những thay đổi về thời gian và trạng thái.
Ngăn xếp công nghệ FOG/AW có thể được tóm tắt như sau: nhà phát triển viết mã front-end và back-end cho ui/ux và logic cốt lõi của trò chơi, sau đó đồng bộ hóa tất cả các thay đổi thông qua vòng lặp trạng thái trò chơi và cuối cùng phản ánh trạng thái mới lên giao diện người dùng- kết thúc bởi bộ chỉ mục trên thiết bị cục bộ.
Vì nhiều loại trò chơi, chẳng hạn như RTS, yêu cầu tốc độ đánh dấu cao và các chuỗi khối được tạo ra bởi sự đồng thuận chỉ có thể xử lý các thay đổi về thời gian của khối, nên tốc độ đánh dấu là một vấn đề lớn cần giải quyết ở đây. Curio và Argus là những người đi đầu trong lĩnh vực này và họ đang tăng tỷ lệ đánh dấu trò chơi ở cấp độ chuỗi tìm kiếm. Mud đang cố gắng tối đa hóa toàn bộ chuỗi và toàn bộ trạng thái ứng dụng được lưu trữ trong EVM. Không có kế hoạch giới thiệu tích hợp ngoài chuỗi để đạt được tỷ lệ đánh dấu cao hơn cho trò chơi.
Về việc lựa chọn các chuỗi khác nhau, Dojo đang dẫn đầu toàn bộ hệ sinh thái chuỗi của Starknet. Theo mô tả của @tarrenceva, Starknet có các điểm khác biệt về Trạng thái, khác với các bản tổng hợp lạc quan và tập trung vào đầu ra thực thi hơn là đầu vào. Tác động lên các trò chơi có thể chủ yếu là nhằm tối ưu hóa chi phí, ví dụ như một ván cờ: trong một ván đấu dài ba phút, có thể xảy ra 50 nước đi. Thông qua sự khác biệt về trạng thái, một bằng chứng duy nhất và trạng thái cuối cùng có thể chứng minh đầu ra. Mặt khác, các kết quả tổng hợp lạc quan yêu cầu đầu vào của tất cả các trạng thái trung gian.
Xác định FOG/AW: trạng thái trò chơi được đồng bộ hóa như thế nào
Tôi nghĩ để đánh giá xem đó có phải là FOG hay không, điểm chuẩn là trạng thái trò chơi được đồng bộ hóa như thế nào (nguồn sự thật).
Mô tả hình ảnh
Source:https://www.gabrielgambetta.com/client-server-game-architecture.html
Đối với các trò chơi chạy hoàn toàn trên chuỗi, chuỗi khối là máy chủ trò chơi và hoạt động như một nguồn tin cậy phi tập trung cho trạng thái trò chơi. Trong trường hợp này, không chỉ NFT hoặc mã thông báo mới có quyền sở hữu thực sự mà ngay cả các dấu tích của người chơi và logic trò chơi cũng nằm trong chuỗi. Đây là lý do tại sao khả năng sở hữu thực sự, tính kiên trì, khả năng chống kiểm duyệt, khả năng kết hợp và hơn thế nữa đều có thể thực hiện được. Lý tưởng nhất là mọi hành động của người chơi phải được gửi tới blockchain và sau khi đạt được sự đồng thuận, trạng thái trò chơi sẽ được cập nhật và quay trở lại thiết bị cục bộ. Vì vậy, một cách tự nhiên, các loại trò chơi yêu cầu ít đánh dấu hơn sẽ phù hợp hơn để chơi hoàn toàn trên chuỗi.
Giải quyết các thách thức về độ trễ của trò chơi, thời gian, v.v.
Với sự gia tăng về độ phức tạp của trò chơi và yêu cầu về khả năng chơi, nhiều thách thức hơn được đặt ra đối với kiến trúc công cụ: chẳng hạn như độ trễ khung hình, số ngẫu nhiên, hồi phục mạng sống, hiệu ứng thụ động liên tục, bộ tính giờ, v.v.
Độ trễ khung hình thực sự rất phổ biến trong thế giới Web2, bao gồm độ trễ trong kết xuất ứng dụng khách và hoạt động của người dùng. Đặc biệt đối với các game có tốc độ đánh dấu cao như FPS, một khi có độ trễ, trải nghiệm của người chơi sẽ rất kém.Một trong những giải pháp trong Web2 là cập nhật trạng thái lockstep, cho phép tất cả người chơi được đồng bộ hóa theo tiêu chuẩn độ trễ cao nhất giữa những người chơi, vì vậy như để giải quyết vấn đề kinh nghiệm về sự công bằng. Sự chậm trễ này có thể còn tồi tệ hơn khi blockchain được giới thiệu và các giao dịch cần được xác nhận. Để đạt được mục đích này, Mud cũng bổ sung cơ chế hiển thị lạc quan thường được sử dụng trong trò chơi, giả sử rằng thao tác của người dùng thành công và hiển thị nó trong máy khách trước khi máy chủ đồng ý (hoặc trong trường hợp này là trước khi giao dịch được xác nhận).
Việc tạo ra các số ngẫu nhiên trên chuỗi là chủ đề thường được thảo luận, Mud tin rằng hành vi của người dùng có thể được sử dụng làm đầu vào của kết quả ngẫu nhiên và được tạo ra sau khi xảy ra tương tác.
Khái niệm về đơn vị thời gian và Ticks khác nhau trên blockchain. @SebastienGllmt cho rằng rất khó sử dụng bộ tính giờ trên các chuỗi sử dụng khái niệm chống gian lận (chẳng hạn như Op), vì một khi có sự cố xảy ra, nó sẽ cần phải được khôi phục. Nếu sử dụng bộ tính giờ trong trò chơi, trải nghiệm sẽ kém . Bùn cung cấp rất nhiều ý tưởng để mô phỏng thời gian trôi qua và các kỹ năng phục hồi thụ động. Ví dụ: tăng tiền vàng theo thời gian, mỗi khi người chơi thực hiện một thao tác yêu cầu tiền vàng, hãy tính số tiền vàng của người chơi dựa trên số tiền vàng trước đó của người chơi, số lần làm mới mới nhất và tốc độ làm mới. Một ví dụ khác, khi người chơi di chuyển trong phòng, giao dịch đi kèm với việc di chuyển tất cả các vật phẩm trong phòng theo một số thiết kế được xác định trước. Sử dụng điều này để nhận biết những thay đổi về thời gian và trạng thái.
Viết script để gian lận có thể không phải là vấn đề. @BriefKandle không nghĩ MEV của hệ thống trò chơi bị coi là gian lận. Ngăn chặn MEV bằng những kịch bản đơn giản là điều mà nhóm phát triển trò chơi cần cân nhắc. Việc phát triển trò chơi Web2 cần phải thay đổi cách suy nghĩ. Một bot MEV tốt là một NPC trong trò chơi.
Một số chức năng này đã được triển khai trong một số trò chơi trực tuyến mới ra mắt gần đây, chẳng hạn như Rhascau, nơi họ sử dụng bộ tính giờ và các hiệu ứng thụ động liên tục. Về cơ bản sử dụng thời gian khối như một tích tắc. (Trong L2 hiện tại, thời gian chặn = tốc độ đánh dấu).
Ngăn xếp công nghệ FOG/AW
Khung công cụ FOG/AW là một nhóm công cụ dành cho nhà phát triển cho phép các nhà phát triển xây dựng trò chơi bằng cách sử dụng chuỗi khối làm máy chủ và nguồn tin cậy. Ngoài ra, nó có thể giải quyết một số vấn đề hiện tại:
Không hiệu quả trong việc xây dựng FOG/AW trên chuỗi do thiếu khuôn khổ tiêu chuẩn/sẵn sàng;
Thiếu tính mô-đun và tái sử dụng mã;
Thiếu khả năng tổng hợp. Với sự phát triển của công cụ FOG/AW, các trò chơi trên chuỗi có thể trở nên thú vị và giàu trí tưởng tượng hơn.
Để dễ hiểu, quy trình kỹ thuật thường được đơn giản hóa của loại công cụ này là: nhà phát triển viết mã front-end và back-end cho ui/ux và logic cốt lõi của trò chơi, sau đó đồng bộ hóa tất cả các thay đổi thông qua vòng lặp của trạng thái trò chơi và cuối cùng là lập chỉ mục trạng thái mới được phản ánh trên thiết bị cục bộ ở giao diện người dùng.

Để giúp các trò chơi chạy trên blockchain hoạt động trơn tru, Mud, Dojo, Curio, Argus, Paima engine và Lootchain đang phát triển hệ thống công nghệ của riêng họ cho mục đích này. Nhóm công nghệ bao gồm 3 phần chính: chuỗi, nhóm phát triển cốt lõi và giao diện người dùng trò chơi. Tất cả họ đều có những đổi mới riêng, tạo ra sự cân bằng giữa tính phân quyền và độ phức tạp của trò chơi.
Giao diện người dùng trò chơi: Nó bao gồm các công cụ truyền thống như Unity, Unreal, v.v., cũng như các ngôn ngữ như React/Threejs và các công cụ mạnh mẽ để cung cấp kết xuất và các chức năng khác, là một phần không thể thiếu trong việc nâng cao khả năng chơi và trải nghiệm trò chơi . Các dự án trên về cơ bản có thể cung cấp các SDK liên quan để nhà phát triển sử dụng.
Ngăn xếp phát triển cốt lõi: Thiết kế một bộ giải pháp để cho phép logic trò chơi chạy trên blockchain và được đồng bộ hóa với giao diện người dùng đúng thời gian. Các thành phần chính bao gồm cấu trúc cơ sở dữ liệu thích hợp (xác định hành vi và logic của trò chơi), đồng thời đồng bộ hóa và trả về trạng thái trò chơi.
Chuỗi: Hầu hết họ chọn xây dựng trên Ethereum, Optimism và Starknet.
Hình dưới đây mô tả cách các giao thức khác nhau thiết kế các ngăn xếp công nghệ tương ứng của chúng. Lấy Mud V2 làm ví dụ để thấy sơ đồ hoạt động của nó:
Nhà phát triển sẽ gọi một số công cụ giao diện người dùng Web2 để viết mã trong Mud và sử dụng các chức năng mạnh mẽ này như kết xuất để làm cho trò chơi trực quan hơn và vui nhộn hơn;
Đồng thời, nhà phát triển sẽ viết ra các nhân vật, vật phẩm và logic hoạt động cụ thể của trò chơi dựa trên khung hợp đồng thông minh của Mud (Mud World), khả năng chiếm đất thành công hoặc trong hoàn cảnh nào;
Các hành động và trạng thái trò chơi trên sẽ được ghi lại trong Mud Store, đây là cơ sở dữ liệu trực tuyến chịu trách nhiệm về trạng thái trò chơi toàn cầu và là nguồn tin cậy cho việc đồng bộ hóa trạng thái trò chơi;
Khi anh hùng A tấn công Y, người chơi thực sự nhấp chuột vào máy front-end và gửi lệnh để tải lên chuỗi. Lệnh đưa ra kết quả dựa trên logic thiết kế trò chơi của nhà phát triển và trạng thái trò chơi hiện tại trong Cửa hàng .Kết quả được cập nhật lên trạng thái toàn cầu mới của trò chơi và được đồng bộ hóa với chuỗi;
Trò chơi trên Mud hỗ trợ nhiều giao diện người dùng khác nhau như Web và Di động, nhưng có thể phải đối mặt với các yêu cầu lập chỉ mục phức tạp. Mode là một công cụ lập chỉ mục ngoài chuỗi được phát triển cho mục đích này.
Bây giờ, hãy nói về các thiết kế phổ biến và khác nhau của các khung cốt lõi này.
Hầu hết trong số họ tuân theo thiết kế Mud v1 và sử dụng ECS làm cấu trúc dữ liệu để phát triển trò chơi. Đây là cách logic trò chơi được viết và trình bày. Mud V2 đã cải tiến nó, dữ liệu được xác định trong Tables and Systems, cho phép các tiêu chuẩn dữ liệu khác (không phải tuân thủ các tiêu chuẩn mô hình hóa dữ liệu ECS như V1), giúp nhà phát triển có nhiều lựa chọn hơn và làm cho nó trở nên toàn diện hơn.
Hầu hết đều sử dụng cơ sở dữ liệu phi tập trung, vì blockchain đương nhiên là nguồn tin cậy cho trạng thái trò chơi và cơ sở dữ liệu. Mud đang cố gắng tối đa hóa toàn bộ chuỗi và toàn bộ trạng thái ứng dụng được lưu trữ trong EVM. Không cần phải hy sinh sự phân cấp hoặc giới thiệu các kế hoạch tích hợp ngoài chuỗi để đạt được tỷ lệ đánh dấu cao hơn cho trò chơi.
Vì nhiều loại trò chơi, chẳng hạn như FPS, yêu cầu tốc độ đánh dấu cao và các chuỗi khối được tạo ra bởi sự đồng thuận chỉ có thể xử lý các thay đổi về thời gian khối, nên tốc độ đánh dấu là một vấn đề lớn cần giải quyết ở đây. Trong các thiết kế sáng tạo của mình, Curio và Argus là những người đầu tiên hy vọng tăng giá cước ở cấp độ chuỗi.
Về việc lựa chọn các chuỗi khác nhau, cả Curio và Loot đều sử dụng Caldera để xây dựng chuỗi Op stack. Ngoài ra, Dojo đang dẫn đầu toàn bộ hệ sinh thái chuỗi của Starknet. Theo mô tả của @tarrenceva, Starknet có các điểm khác biệt về Trạng thái, khác với các bản tổng hợp lạc quan và tập trung vào đầu ra thực thi hơn là đầu vào. Tác động lên các trò chơi có thể chủ yếu là nhằm tối ưu hóa chi phí, ví dụ như một ván cờ: trong một ván đấu dài ba phút, có thể xảy ra 50 nước đi. Thông qua sự khác biệt về trạng thái, một bằng chứng duy nhất và trạng thái cuối cùng có thể chứng minh đầu ra. Mặt khác, các kết quả tổng hợp lạc quan yêu cầu đầu vào của tất cả các trạng thái trung gian.
Hiện đã có một số game được xây dựng trên các engine này. Cả Mud và Dojo đều đang tổ chức hackathons để thu hút các nhà phát triển xây dựng ứng dụng. Curio vừa tung ra bản demo minigame của Warcraft tại ETHCC.
Rõ ràng, FOG/AW đang trở thành một hệ sinh thái quan trọng cho sự cạnh tranh của chuỗi công cộng. AW (Thế giới tự trị) do Lattice đề xuất là một khái niệm lớn, không giới hạn ở các trò chơi mà còn bao gồm nhiều thuộc tính như xã hội và tài chính. Vì vậy, được xây dựng trên đó là một thế giới ảo giàu trí tưởng tượng, Metaverse. Chúng ta có thể mong đợi một số dạng ứng dụng tích hợp mới như trò chơi, mạng xã hội và tài chính.
Reference:
1.https://mirror.xyz/matchboxdao.eth/d3lVAOa9Bi0kY- caoUT 3 lDC 6 E 61 mWJqtP 1 q 6 tME 4 xGY
2.https://jumpcrypto.com/writing/defining-on-chain-gaming/
3.https://www.oneqode.com/what-is-a-game-server/
4.https://medium.com/@qingweilim/how-do-multiplayer-game-sync-their-state-part-2-d746fa303950
5.https://latticexyz.notion.site/Building-Autonomous-Worlds-with-MUD-39d5eb5d31034589bc54a2053efb4c56
6.https://twitter.com/tarrenceva/status/1660686571270705152
7.https://book.dojoengine.org/framework/sozo/overview.html
8. https://www.youtube.com/watch?v=A0OXif6r-Qk


