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 động cơ Roblox. Khi một người chơi có quyền sở hữu mạng của 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 những đố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 cho các khách hàng có nhân vật người chơi gần đó để phân phối tải của mô phỏng vật lý. Hệ thống này cải thiện khả năng phản hồi nhưng tạo ra những vấn đề bảo mật đáng kể mà mọi nhà phát triển 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:
Manipulation 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 giành quyền sở hữu và kiểm soát càng nhiều phần và lắp ráp không được neo càng tốt mà máy chủ cho phép.
- Manipulate 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.
- Những kẻ khai thác có thể đặt Humanoid WalkSpeed của họ thành bất kỳ giá trị nào. Các thuộc tính có thể được sửa đổi 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ó thể được đọc từ các kịch bản cục bộ.
- Chơi các hoạt ảnh tùy ý và thao tác trạng thái hoạt ảnh.
- Bỏ qua các chướng ngại vật vật lý và thay đổi va chạm của chúng.
Manipulation 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 cả 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 đoan (bao gồm Inf hoặc NaN), điều này có thể can thiệp vào vật lý của các phần/lắp ráp không được neo khác, ngay cả những cái không thuộc về kẻ khai thác. Điều này thường được sử dụng để ném các nhân vật người chơi khác và các phần gần đó. Manipulate việc kích hoạt các sự kiện Touched, bao gồm cả việc không kích hoạt Touched chút nào.
Nếu trò chơi 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 xem xét việ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 các trò chơi cạnh tranh, việc xác thực chuyển động của người chơi ở 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 nào tồn tại do các cơ chế gameplay khác nhau.
Các phương pháp truyền thống thường không đủ 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ò chơi bắn súng cạnh tranh nhưng thất bại trong các trò chơi 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 tính đến độ trễ mạng.
Cho đến khi quyền lực máy chủ có sẵn, các nhà phát triển thực hiện xác thực phía khách hàng phải hiểu rằng các phương pháp hiệu quả thay đổi đáng kể. Các heuristics cơ bản có thể đánh dấu những người chơi vô tội với kết nối không ổn định, và các phép tính tốc độ đơn giản bị phá vỡ trong các trò chơi có hệ thống chuyển động phức tạp. Các cập nhật vị trí phải chịu độ 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ò rỉ hoạt động tốt để xử lý các chuyển động bùng nổ trong khi ngăn chặn các vi phạm kéo dài.
Việc triển khai thực tế thường yêu cầu chiếu 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 pháp trong khi phát hiện dịch chuyển ngang. Các trò chơi có cơ chế dịch chuyển hợp pháp cần các hệ thống miễn trừ rõ ràng. Tần suất xác thực, mức độ dung sai và 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 từng trò chơi.