BOLT: Công cụ trò chơi chuỗi đầy đủ ECS dựa trên Solana

Liên kết video:

Diễn giả: Andrea, Gabriele, Đồng sáng lập Magicblock

演讲标题:A FRAMEWORK FOR ON-CHAIN GAMING

Lời nói đầu của người dịch: "BOLT là một công cụ trò chơi chuỗi đầy đủ được phát triển bởi nhóm Magicblock cho hệ sinh thái Solana. Bài viết này được tổng hợp từ phần trình bày của hai nhà sáng lập Magicblock tại sự kiện Breakpoint 2023. "

Xin chào mọi người, đây là bài phát biểu cuối cùng trước Halloween, và tôi hy vọng nội dung bài phát biểu sẽ thú vị với mọi người. Tên tôi là Andrea và tôi là người đồng sáng lập của tôi, Gabriele. Hôm nay, chúng tôi sẽ giới thiệu một khung chơi game toàn chuỗi (công cụ) mới.

**01.Tại sao bạn cần một trò chơi toàn chuỗi **

Tôi sẽ bắt đầu với những điều cơ bản, đó là lý do tại sao bận tâm xây dựng một trò chơi chuỗi đầy đủ với cả trạng thái và logic trên chuỗi, và đối phó với tất cả những phức tạp đi kèm với nó. Lý do đơn giản là để có được các tính năng mà cơ sở hạ tầng chơi game truyền thống không có.

Tính năng đầu tiên là mod không được phép. Điều này có nghĩa là tất cả người chơi và nhà phát triển có thể tùy chỉnh bất kỳ thành phần nào trong trò chơi, bao gồm giới thiệu các plugin hoặc mod, bắt đầu từ ứng dụng khách nâng cao. Ngay cả logic cơ bản của trò chơi cũng có thể được mở rộng thông qua các hợp đồng thông minh. Về cơ bản, đây là một chế độ mới, nơi mỗi trò chơi là một nền tảng mới theo mặc định và bạn có thể trở thành một cường quốc nội dung bất kể nhóm của bạn nhỏ đến đâu.

Đặc điểm thứ hai là Kiên trì. Thế giới tự trị và thực tế là những trải nghiệm ảo này có thể tồn tại mãi mãi đã gây ra rất nhiều hậu quả. Bởi vì không có máy chủ nào có thể bị kiểm duyệt hoặc tắt, những trải nghiệm này thực sự giới thiệu một ý nghĩa hoàn toàn mới. Trò chơi đã trở thành một nền tảng để người chơi chơi, giao lưu và tiến hành thương mại toàn cầu, phổ biến hơn các nền tảng trò chơi truyền thống.

Đặc điểm cuối cùng là nền kinh tế mở. Các trò chơi có thể tận dụng hệ thống thanh toán không ma sát toàn cầu mở của blockchain, đặc biệt là các khoản thanh toán vi mô trong hệ sinh thái của chúng tôi và tái sử dụng cơ sở hạ tầng trên chuỗi hiện có như DEX hoặc thị trường NFT.

02.Giải pháp hiện có

Vấn đề hiện tại với các trò chơi omnichain là trải nghiệm phát triển rất tệ và chúng tôi xem xét các giải pháp trên thị trường và thấy rằng có một số khung phát triển cố gắng đơn giản hóa trải nghiệm của nhà phát triển.

Một số trong số chúng rất thú vị ở chỗ chúng cố gắng lặp lại trên các phiên có thể chứng minh được, nơi bạn có thể thực hiện các tính toán ngoài chuỗi và chứng minh tính toàn vẹn của các tính toán trên chuỗi. Hoặc giới thiệu thời gian chạy theo sự kiện phù hợp hơn với các công cụ trò chơi blockchain, thay vì thời gian chạy dựa trên vòng lặp.

Nhưng tất cả các framework này đòi hỏi sự đánh đổi giữa hiệu suất và khả năng kết hợp để đạt được hiệu suất cao hơn và TPS cao hơn. Thông thường, bạn sẽ tạo một sự cô lập hoặc giới thiệu một thời gian chạy khác với các phân đoạn.

Nhưng chúng tôi không hài lòng với sự đánh đổi đó. Chúng tôi tự hỏi, điều gì sẽ xảy ra nếu có một khuôn khổ có thể hỗ trợ TPS mà chúng tôi cần? Khi trò chơi của bạn thành công, bạn không phải hy sinh trải nghiệm người dùng của họ, ngay cả với hàng triệu người chơi, vì chiến tranh gas sẽ không xảy ra. Và framework không yêu cầu phân mảnh và phân mảnh, vì vậy bạn có thể sử dụng các phiên trò chơi có thể chứng minh và thậm chí mô phỏng thời gian trôi qua mà không phải trả phí gas. Không cần phải phân mảnh hệ thống hoặc sử dụng Lớp 3.

**03.Công cụ phát triển trò chơi chuỗi đầy đủ trên Solana: BOLT **

Đó là lý do tại sao chúng tôi rất vui mừng được giới thiệu BOLT, một khung phát triển trò chơi toàn chuỗi hiệu suất cao, có thể kết hợp, dựa trên SVM.

BOLT là mô-đun và có thể kết hợp, cho phép anh ta sử dụng tất cả các cơ sở hạ tầng hiện có trên Solana. Anh ấy làm việc với các cơ sở trên chuỗi hiện có của chúng tôi như nhận dạng trên chuỗi, API không khí, khóa phiên, cũng như khung phát triển Anchor hiện có và tất cả các chương trình hiện có trên Solana. Cả hai đều có thể mở rộng quy mô ở mức độ cao hơn nhờ Ephemeral Rollups, là các phiên trò chơi được mở và đóng theo nhu cầu của người dùng và được mở rộng khi cần.

BOLT nhanh như chớp và chúng tôi có thể đạt được mức hiệu suất tương tự như một công cụ trò chơi truyền thống trước khi sử dụng các thời gian chạy chuyên dụng này để tăng tốc một số hoạt động nhất định.

Đây là màn hình toàn cảnh của khung BOLT. Anh ấy rõ ràng được xây dựng cho Solana, nhưng anh ấy có thể sử dụng nó trên bất kỳ nền tảng tương thích SVM nào, chẳng hạn như Lớp 2 tương thích SVM. BOLT có hai mục tiêu chính, khả năng kết hợp và khả năng mở rộng.

Hệ thống ECS (Entity Component) là một trong những cách chúng tôi đơn giản hóa việc sử dụng các thành phần on-chain. Cái còn lại là Ephemeral Rollup, đã được đề cập ngắn gọn trước đó và tôi sẽ đi sâu vào cả hai công nghệ này trong giây lát.

BOLT đã được tích hợp với các công cụ trò chơi cũ được sử dụng phổ biến nhất, chẳng hạn như Unity, thường đóng vai trò là giao diện người dùng của trò chơi. Tất nhiên, điều này cũng bao gồm các công cụ trò chơi mã nguồn mở và được yêu thích khác như Godot và Phaser. Chúng tôi thậm chí còn làm việc với một ứng dụng khách trò chơi được cập nhật, Turbo, tập trung vào việc cải thiện trải nghiệm cho các nhà phát triển độc lập và tạo điều kiện tạo trò chơi nhanh chóng. Có thể có nhiều đối tác hơn trong tương lai.

Tôi sẽ bắt đầu ở đây và tiếp tục giải thích lý do tại sao chúng ta cần một hệ thống thành phần thực thể ECS. Câu trả lời rất đơn giản, bởi vì anh ta cho phép khả năng kết hợp tối đa, có nghĩa là chúng ta có thể tạo và tái sử dụng các thành phần làm sẵn.

Như tên cho thấy, ECS được tích hợp thành ba yếu tố chính: thực thể, về cơ bản là số nhận dạng được đăng ký cho một phiên bản thế giới trò chơi riêng biệt, các thành phần, xác định cấu trúc dữ liệu để về cơ bản chúng là dữ liệu được liên kết với thực thể và cuối cùng là hệ thống, là logic thao tác các thành phần gắn liền với thực thể.

Ưu điểm của kiến trúc này là tất cả các hệ thống và thành phần đều có thể tái sử dụng. Chúng có thể được xuất bản trong sổ đăng ký công khai và các nhà phát triển có thể dễ dàng đóng góp, xây dựng, khám phá và tích hợp bất kỳ loại thành phần nào, vì vậy bạn không phải viết một dòng mã nào từ đầu nữa, nhưng có thể sử dụng lại tất cả các thành phần hiện có và cuối cùng đóng góp cho chúng. Ví dụ, chúng ta có thể có cấu trúc dữ liệu lưới (chẳng hạn như mê cung hoặc chiến trường), hệ thống di chuyển hoặc hệ thống bằng chứng không có kiến thức cho sương mù chiến tranh.

** 04.Thực hành lập trình ECS động cơ BOLT **

**(Lưu ý của người dịch: Phần này được khuyến nghị cho các nhà phát triển xem video gốc, những người không phải là nhà phát triển có thể bỏ qua phần này) **

BÂY GIỜ, TÔI SẼ CHUYỂN SANG IDE CỦA MÌNH VÀ CHO BẠN THẤY MỘT VÍ DỤ TRÒ CHƠI ĐƠN GIẢN BẰNG CÁCH SỬ DỤNG CÔNG CỤ BOLT ECS.

Chúng ta sẽ xác định một số thực thể, một thành phần vị trí và hai hệ thống sẽ thao tác và thay đổi dữ liệu cho thành phần vị trí này. Vì vậy, điểm đầu vào đầu tiên là tương tác với Chương trình Thế giới. Chương trình Thế giới là một phần của khung BOLT và hiển thị một số trích xuất cho phép bạn đăng ký Phiên bản Thế giới mới.

Bạn có thể thêm các thực thể vào Phiên bản Thế giới của mình và bạn có thể đăng ký các thành phần với các thực thể bạn vừa xác định, về cơ bản được xác định bởi chương trình thành phần. Chương trình thành phần chứa hai chỉ thị, chỉ thị đầu tiên là khởi tạo, tạo và phân bổ không gian để lưu trữ các hàng dữ liệu sẽ được sử dụng trong thành phần của bạn. Trong ví dụ đơn giản này, chúng ta đang định nghĩa một thành phần vị trí và nếu chúng ta nhìn vào ngữ cảnh của chỉ thị khởi tạo, chúng ta có thể thấy rằng chúng ta có dữ liệu thành phần và dữ liệu thành phần chỉ xác định cấu trúc với tọa độ XYZ có thể lưu trữ ví dụ như vị trí của người chơi.

Bây giờ, chỉ thị thứ hai có lẽ là thú vị nhất, nó là một điểm vào cho phép chúng ta thực hiện bất kỳ logic nào. Anh ta sẽ nhận các thành phần và hệ thống tùy ý của chúng tôi làm đầu vào và thực thi logic được xác định nội bộ trong hệ thống bằng cách thực thi trên các vị trí lập trình. Bây giờ, nếu bạn nhìn vào dòng 15, chúng ta có lệnh gọi CPI (Giao diện lập trình chung), sẽ thực thi logic được xác định nội bộ thông qua CPI. Anh ta sẽ thực hiện tất cả các tính toán được xác định bởi hệ thống và sau đó quay trở lại vị trí của chúng tôi, nơi chương trình thành phần sẽ truy xuất và đặt nó trở lại dữ liệu của chúng tôi.

Bây giờ, chúng ta hãy thử xem xét ngữ cảnh của hàm apply của chúng ta, nơi chúng ta có thể thấy rằng về cơ bản chúng ta chỉ có hai tài khoản. Đầu tiên là tài khoản chứa dữ liệu của các thành phần của chúng tôi và thứ hai là chương trình hệ thống. Kết quả là, một chương trình hệ thống bây giờ là một giao diện chứ không phải là một chương trình duy nhất. Do đó, bất kỳ chương trình nào tuân thủ giao diện hệ thống BOLT của chúng tôi đều có thể được thực thi thông qua ứng dụng này.

05.Ý nghĩa của hệ thống ECS

Về cơ bản, điều này thay đổi cách bạn thiết kế logic của trò chơi và biến các quy trình truyền thống lên đầu. Trước đây, nếu bạn muốn tạo hoặc đóng gói một số logic trong chương trình của mình, bạn thường sẽ thêm các tính năng trước, mỗi tính năng là một chỉ thị trong chương trình, và cuối cùng tại một số điểm, bạn sẽ khóa chương trình trò chơi bạn đang phát triển.

Tuy nhiên, với mô hình ECS, thay vào đó, chúng ta có thể có một chương trình bất biến ngay từ đầu và sau đó với cơ chế proxy này, chúng ta có thể thêm một hệ thống được xây dựng trong nhà hoặc bởi bất kỳ ai, để chúng ta có thể có một trò chơi có thể chạy mãi mãi, có thể mở rộng và bất kỳ ai cũng có thể thực sự thay đổi logic của trò chơi.

Họ có thể triển khai các hệ thống mới sẽ hoạt động trên các thành phần đó. Giờ đây, giao diện cũng cho phép bạn thực hiện một số kiểm tra, vì vậy chúng tôi có thể thiết kế một cơ chế trò chơi giúp bạn không cần thêm các hệ thống mới có thể sửa đổi dữ liệu thành phần.

Hoặc chúng ta có thể thiết lập một giao diện để kiểm tra xem hệ thống có cho phép thực thi trên thành phần hay không. Ví dụ: bạn có thể thiết kế một hệ thống quản trị trong đó nếu ai đó đang đề xuất một logic mới và logic đó được chấp thuận, thì tất cả người chơi có thể sử dụng logic đó trong trò chơi.

Điều này thậm chí có thể dẫn đến một ngã ba trong thế giới của trò chơi (Hợp đồng thế giới). Trong một thế giới, bạn sở hữu hệ thống bay. Và ở một thế giới khác, nếu hệ thống không được phê duyệt, có thể có các quy tắc khác nhau và mọi người vẫn có thể đóng góp cho phiên bản thế giới của riêng họ.

Bây giờ chúng ta hãy xem làm thế nào để xây dựng một hệ thống có thể sửa đổi thành phần đó. Hệ thống về cơ bản chỉ là một chương trình trên Solana xác định lệnh thực thi và lệnh thực thi là lệnh chúng ta gọi từ chương trình thành phần trong CPI (Giao diện lập trình chung). Ở đây, anh ta chỉ gói gọn một logic rất đơn giản trong đó anh ta nhận hướng đầu vào, tính toán delta, sau đó thay đổi vị trí X và Y của thành phần.

Vì vậy, chúng ta hãy xem xét một hệ thống khác có thể được triển khai bởi người khác, ngay cả sau khi chúng tôi phát hành trò chơi. Đây là một ví dụ khác về một hệ thống thực hiện ute. Ở đây, vị trí Z được tăng thêm 1, vì vậy ai đó đang cố gắng thêm một hệ thống sườn, có thể là một giao diện với một lớp khác trên đầu trò chơi của bạn.

Vì vậy, ý tưởng bây giờ là tất cả các hệ thống này, tất cả các thành phần này thực sự có thể kết hợp được, người dùng trò chơi không còn là người dùng đơn giản nữa, trò chơi đã trở thành một nền tảng mở, có thể mở rộng và liên tục. Vì vậy, tôi sẽ cố gắng thực hiện các bài kiểm tra đơn vị mà tôi đã chuẩn bị trong ví dụ này và tôi sẽ sử dụng BOLT CLI, được xây dựng trên Anchor, một khung hợp đồng thông minh cho Solana, vì vậy nếu bạn đã quen thuộc với Solana, bạn không cần phải học bất cứ điều gì mới.

Bây giờ, bạn có thể phát triển các chương trình trên Solana, chỉ cần phát triển các chương trình, chương trình thử nghiệm, vì vậy ở đây tôi đang chạy xây dựng bu lông và kiểm tra bu lông, và ở đây tôi đang triển khai chương trình của chúng tôi, và sau đó tôi đang thực hiện kiểm tra kiểu mà tôi đã chuẩn bị ở đây.

Vì vậy, ở đây thử nghiệm đang gửi một giao dịch để khởi tạo một thế giới mới. Chúng tôi đang đăng ký một vài thực thể, chúng tôi đang gắn các thành phần vị trí vào một số trong số chúng, và sau đó có thể phần thú vị là thực hiện một số hệ thống ở đây. Vì vậy, ở đây chúng ta gọi hàm apply, và sau đó chúng ta đang sử dụng một trong những hệ thống đó. Vì vậy, đây chỉ là một hệ thống mặc định.

Ở đây chúng tôi đang gọi một động thái đơn giản, và sau đó chúng tôi đang bay một động thái ở đây. Chà, bây giờ, nếu chúng ta nhìn vào nhật ký của thử nghiệm, trong giao dịch đầu tiên, ở đây chúng ta sử dụng một hệ thống di chuyển có hướng đi lên, tăng vị trí Y lên 1. Trong giao dịch thứ hai, chúng tôi sử dụng cùng một hệ thống để di chuyển sang phải, và cuối cùng, chúng tôi thực hiện hệ thống bay, đang làm ngược lại, tăng vị trí Z của chúng tôi lên 1. Đó chỉ là một ví dụ đơn giản, nhưng anh ấy cung cấp một cơ chế rất mạnh mẽ cho phép bất kỳ ai phát triển, mở rộng và có khả năng làm cho trò chơi của bạn trở nên thú vị.

06.Bản tổng hợp tạm thời

Bây giờ chúng ta sẽ quay trở lại slide, tôi sẽ mô tả khía cạnh thú vị thứ hai của khung BOLT, đó là giải pháp khả năng mở rộng của chúng tôi, mà chúng tôi gọi là Ephemeral Rollup.

Người ta thường cho rằng Solana đã rất nhanh và rẻ, và nó hiện đang tạo ra một khối cứ sau 400 mili giây và có thể xử lý hàng nghìn giao dịch, vì vậy nó thực sự đã sẵn sàng để xây dựng một trò chơi toàn chuỗi. Tuy nhiên, nếu bạn có một chuỗi logic cũ cho nhiều người chơi, cập nhật vị trí sẽ quá chậm.

Vì vậy, chúng ta có thể xây dựng một lớp tăng tốc ngắn hạn hoàn toàn tương thích với thời gian chạy của Solana. Thời gian được sử dụng là tùy chọn, anh ta có thể đóng vai trò là gia tốc thực sự của một hoạt động cụ thể, trong khi hầu hết logic vẫn được thực thi trên chuỗi chính, vì vậy anh ta dựa vào tính năng mà tất cả trạng thái trên Solana được lưu trữ trong tài khoản.

Thông thường, bạn sẽ có một chương trình trò chơi xác định logic và sau đó tất cả trạng thái sẽ được lưu trữ trong tài khoản này, vì vậy chúng tôi có thể ủy quyền một số tài khoản đó cho lớp tạm thời này sử dụng công cụ BOLT.

Trong ví dụ này, có hai tài khoản được ủy quyền lưu trữ vị trí của người chơi và nhà cung cấp đang tích cực lắng nghe các yêu cầu ủy quyền và yêu cầu cung cấp. Anh ấy sẽ bắt đầu một thời gian chạy mới khi cần thiết, nhanh chóng, có thể tùy chỉnh, không có giao dịch gas hoặc tích tắc và cho phép chúng tôi thực sự thực hiện các giao dịch dưới 50ms và có thể mở rộng quy mô bằng cách có nhiều thời gian chạy chuyên dụng.

Bây giờ, phần thú vị khác là tất cả sự phức tạp này có thể được trừu tượng hóa khỏi người dùng. Chúng tôi có một bộ định tuyến RPC, về cơ bản tương tự như bộ định tuyến RPC truyền thống. Máy khách RPC có thể tương tác trực tiếp với RPC để gửi giao dịch. Bởi vì trên Solana, tất cả các giao dịch được khai báo trước cho tất cả các tài khoản có thể thay đổi và có thể đọc được, các bộ định tuyến RPC về cơ bản có thể định tuyến các giao dịch, truy vấn dữ liệu và truy xuất đến đúng tầng.

Sau đó, tại một số điểm, lớp Ephemeral (như tên gọi của nó) sẽ bị đóng và tất cả các trạng thái sẽ được giải quyết trong lớp cơ sở Solana, đó là trách nhiệm của trình sắp xếp, người theo dõi tất cả các tài khoản.

Một cách khác để xem xét cơ chế này là chúng ta có hai lớp và chúng thực hiện các giao dịch song song. Chúng tôi đã ủy quyền các tài khoản cho phép chúng tôi cập nhật với độ trễ thấp hơn mà không cần sử dụng thông lượng chuỗi chính. Và sau đó chúng tôi có các tài khoản khác, không được ủy quyền và được thực thi trên chuỗi chính.

Bây giờ, một điều rất thú vị là các chương trình, công cụ, khuôn khổ và cơ sở hạ tầng đều nằm trên chuỗi chính. Bạn không cần phải triển khai chương trình của mình trong Rollup, mặc dù điều này phổ biến trong nhiều kiến trúc khác. Mọi thứ đều nằm trên cùng một lớp, mọi thứ đều có thể kết hợp được và như chúng tôi đã đề cập, thời gian chạy chuyên dụng này cũng có thể mở rộng và thực sự có thể được tùy chỉnh.

Giờ đây, điều này mở ra một thể loại trò chơi hoàn toàn mới, mà anh ấy xây dựng trên blockchain và có độ trễ thấp. Giống như bạn làm với một máy chủ nhiều người chơi truyền thống, nhưng vẫn có thể kết hợp với mọi thứ có sẵn trên hệ sinh thái Lớp 1.

Bạn có quyền truy cập vào thanh khoản hiện có, bạn có thể gửi tin nhắn thông qua các giao thức, đúc NFT, sử dụng trừu tượng tài khoản, khóa phiên, bảng xếp hạng và một hệ sinh thái thống nhất, mọi người đều làm phong phú thêm cùng một hệ sinh thái.

Cảm ơn bạn rất nhiều vì đã lắng nghe. Bạn có thể đăng ký quyền truy cập sớm vào khung của chúng tôi bằng mã QR và kiểm tra kho lưu trữ. Bạn đã có thể tìm thấy tài liệu mạnh mẽ và sách trắng mô tả chi tiết khuôn khổ mà chúng tôi vừa giới thiệu. Cảm ơn rất nhiều.

Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
Không có bình luận
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)