Quyền sở hữu mạng là một trong những khía cạnh tinh vi và thường bị hiểu nhầm của engine Roblox. Khi một người chơi có quyền sở hữu mạng đối với một phần hoặc lắp ráp, họ có quyền kiểm soát hoàn toàn đối với mô phỏng vật lý cho các đối tượng đó. Theo mặc định, máy chủ cấp quyền sở hữu mạng cho các phần không được neo đến các khách hàng có nhân vật người chơi gần bên nhằm phân phối tải cho mô phỏng vật lý. Hệ thống này cải thiện tính phản hồi nhưng tạo ra các vấn đề bảo mật nghiêm trọng mà mọi nhà phát triển đều phải hiểu.
Hiểu quyền sở hữu mạng
Khi một khách hàng có quyền sở hữu mạng đối với các phần (bao gồm cả nhân vật của họ), họ có quyền truy cập vào:
Quản lý lắp ráp:
- Dịch chuyển đến bất kỳ vị trí nào.
- Điều này có thể được sử dụng để nhanh chóng chiếm quyền sở hữu và kiểm soát bao nhiêu phần và lắp ráp không được neo mà máy chủ cho phép.
- Điều chỉnh chuyển động và trạng thái của chúng, chẳng hạn như bay hoặc thay đổi tốc độ của chúng.
- Người khai thác có thể đặt giá trị Humanoid WalkSpeed của họ thành bất kỳ giá trị nào. Các thuộc tính có thể được chỉnh sửa cục bộ mà không kích hoạt bất kỳ sự kiện nào trên khách hàng cục bộ, và không có những thay đổi thuộc tính như vậy có khả năng được đọc từ các script cục bộ.
- Chơi các hoạt ảnh tùy ý và điều chỉnh trạng thái hoạt ảnh.
- Bỏ qua các trở ngại vật lý và thay đổi va chạm của chúng.
Quản lý vật lý
- Kiểm soát vị trí và xoay của bất kỳ phần hoặc cơ chế không được neo nào, bao gồm việc sao chép các thành phần Inf hoặc NaN trong CFrames. Đặt vận tốc của phần thành các giá trị cực trị (bao gồm Inf hoặc NaN), có thể gây ảnh hưởng đến vật lý của các phần/lắp ráp khác không được sở hữu bởi kẻ khai thác. Điều này thường được sử dụng để văng các nhân vật người chơi khác và các phần gần đó. Điều chỉnh việc kích hoạt các sự kiện Touched, bao gồm cả không kích hoạt Touched.
Nếu trải nghiệm của bạn cần các phần hoặc lắp ráp không được neo hoàn toàn quan trọng cho gameplay, hãy cân nhắc sử dụng API quyền sở hữu mạng để thiết lập quyền sở hữu thủ công hoặc tắt quyền sở hữu tự động.
Xác thực chuyển động
Trong những trải nghiệm cạnh tranh, việc xác thực chuyển động của người chơi từ phía máy chủ là rất quan trọng cho tính toàn vẹn của mô phỏng, vì các khách hàng kiểm soát chuyển động và vật lý của nhân vật. Tuy nhiên, không có giải pháp phổ quát do các cơ chế gameplay khác nhau.
Các phương pháp truyền thống thường không đủ hiệu quả trong các tình huống phức tạp. Các phép tính khoảng cách theo thời gian đơn giản có thể đủ cho các trò bắn súng cạnh tranh nhưng thất bại trong các trải nghiệm có cường độ vật lý cao liên quan đến xe cộ, bay hoặc các tương tác phức tạp. Việc xác thực cũng phải xem xét độ trễ mạng.
Cho đến khi quyền kiểm soát máy chủ có sẵn, các nhà phát triển triển khai xác thực từ phía khách hàng phải hiểu rằng các phương pháp hiệu quả thay đổi rất nhiều. Các heuristics cơ bản có thể đánh dấu những người chơi vô tội có kết nối không ổn định, và các phép tính tốc độ đơn giản sẽ thất bại trong trải nghiệm với các hệ thống chuyển động phức tạp. Các cập nhật vị trí phải chịu ảnh hưởng của độ trễ internet, yêu cầu trung bình theo thời gian. Nhiều nhà phát triển thấy rằng các bộ tích lũy kiểu xô rỉ nước hoạt động tốt cho việc xử lý chuyển động bùng nổ trong khi ngăn ngừa các vi phạm kéo dài.
Việc triển khai thực tế thường yêu cầu dự đoán chuyển động lên các mặt phẳng cụ thể (ví dụ: XZ cho chuyển động trên mặt đất) để tránh phạt chuyển động thẳng đứng hợp lệ trong khi phát hiện việc dịch chuyển ngang. Các trải nghiệm có cơ chế dịch chuyển hợp lệ cần các hệ thống miễn trừ rõ ràng. Tần suất xác thực, mức độ dung lượng, và các chiến lược thực thi nên được điều chỉnh theo các yêu cầu cụ thể của mỗi trải nghiệm.