Bỏ qua để đến nội dung

Khởi đầu nhanh cho nhà phát triển game

Nếu bạn là nhà phát triển game và đang tìm kiếm cách đơn giản để tích hợp các hiệu ứng SignalRGB cho người dùng của mình, chào mừng bạn đến với hướng dẫn khởi đầu nhanh. Các nhà phát triển của chúng tôi chuyên kích hoạt các hiệu ứng từ giao diện người dùng thường không được thiết kế cho mục đích của chúng tôi. Người dùng thích các tính năng như gradient, giao diện người dùng trong suốt, giao diện kỹ năng có thể điều chỉnh, các phần tử HUD bật lên hoặc rung lắc — tất cả đây là những điểm không nhất quán mà chúng tôi phải tính đến khi kích hoạt hiệu ứng. Giao diện người dùng càng phức tạp, chúng tôi càng ít có thể làm cho game và trải nghiệm người dùng. Với một chút hợp tác giữa bạn và các nhà phát triển của chúng tôi, những vấn đề này có thể được loại bỏ và các tích hợp game có thể được nâng lên một tầm cao mới.

API của SignalRGB cung cấp các công cụ độc đáo và mạnh mẽ cho các nhà phát triển để phân tích thông tin trực quan. Nói đơn giản, chúng tôi có thể lấy dữ liệu màu RGB chính xác từ bất kỳ pixel hoặc nhóm pixel nào và sử dụng những thay đổi trong các giá trị ổn định để kích hoạt hiệu ứng. Ví dụ: thanh sinh mạng giảm dần, mở menu hoặc biểu tượng kỹ năng bị mất màu — bất kỳ phần tử giao diện người dùng nhất quán nào cũng có thể được sử dụng để kích hoạt hiệu ứng trên thiết bị ngoại vi của người dùng.

Phương pháp này được coi là giao tiếp gián tiếp và mang theo một số thách thức mà các nhà phát triển của chúng tôi xem xét trong mỗi tích hợp. Các phần tiếp theo khám phá các ý tưởng về giao tiếp trực tiếp, hiện đang có tính chất lý thuyết (các nhà phát triển game, hãy liên hệ với chúng tôi).

Bộ kích hoạt đơn giản nhất của chúng tôi kiểm tra một phạm vi màu cụ thể và trả về “có” nếu khớp, hoặc “không” nếu không. Về mặt dữ liệu, điều đó được gọi là một bit, và một nhóm tám bit tạo thành một byte có thể đại diện cho tối đa 256 trạng thái có thể.

Trong thực tế, bạn chỉ định tọa độ của các pixel cố định trên màn hình (hiển thị ở mọi độ phân giải). Các pixel này có thể được nhóm lại hoặc phân tán và có bất kỳ màu nào — miễn là vị trí của mỗi pixel trong game không bao giờ thay đổi và màu kích hoạt của nó vẫn không đổi. Khi màu pixel khớp với màu kích hoạt, nó được đăng ký trong mảng là “1”. Khi nó có màu khác, nó được đăng ký là “0”. Mỗi khung, tích hợp tính toán số nguyên kết quả từ mảng nhị phân này và duy trì trạng thái tương ứng mà bạn đã xác định.

Đây là ví dụ đơn giản hóa chỉ với ba pixel, tạo ra sáu trạng thái duy nhất. Phần tử UI trong ví dụ này là góc minimap của một game phổ biến.

Và ba pixel của tôi:

Tôi đã chọn màu gốc làm màu kích hoạt, vì vậy bố cục bit này bằng 111 hoặc “6”. Không có pixel nào khớp hoặc 000 sẽ cho ra “0”.

Đầu tiên chúng ta phải xác định trạng thái “idle” trong game, chỉ đơn giản là duy trì mọi thứ khác trong khi chúng ta đợi thêm đầu vào. Đây sẽ là trạng thái “0” và có thể được đại diện bởi các giá trị pixel sau:

Tôi đã đặt mỗi pixel thành rgb(0, 0, 0), không khớp. Tuy nhiên, những thay đổi lớn như vậy có thể nhìn thấy đối với người dùng. Trong ví dụ tiếp theo, chúng ta sẽ tinh tế hơn.

Giả sử chúng ta đã xác định rằng chúng ta đang ở trong game và duy trì trạng thái cơ bản. Nhân vật của bạn đã sử dụng kỹ năng đầu tiên và chúng ta muốn đăng ký thay đổi này như một hiệu ứng. Hiệu ứng cho “kỹ năng 1 đã sử dụng” được đặt là trạng thái “1” và kích hoạt khi chúng ta thông báo trạng thái “1” cho tích hợp của mình. Để đạt được điều này, tôi thay đổi nhẹ các màu cơ bản cho pixel 1 và 2 (từ trái), để tạo ra 001.

Có lẽ trông không nhiều, nhưng pixel 1 đã giảm độ sáng khoảng 30% và pixel 2 đã đạt được 50% độ bão hòa. Vì hệ thống của chúng tôi có thể dễ dàng phát hiện những thay đổi này, trạng thái thay đổi đáng tin cậy thành “1” và hiệu ứng kỹ năng kích hoạt. Các kỹ năng với thời gian cố định có thể tự kết thúc, nhưng hãy giả sử kỹ năng này được kích hoạt bằng một lần nhấn phím và kết thúc bằng một lần nhấn khác. Để duy trì hiệu ứng không xác định, trạng thái “1” sẽ kích hoạt nó và trạng thái “2” có thể kết thúc nó dựa trên đầu vào người dùng tiếp theo. Một số hiệu ứng rất tương tự và vẫn phải được xử lý riêng lẻ bởi các nhà phát triển của chúng tôi, nhưng đối với những hiệu ứng còn lại, hệ thống này đứng vững và đáng tin cậy. Hạn chế chính là khả năng hiển thị của các “pixel”, phải nhất quán trong suốt các trạng thái gameplay và có lẽ phải lớn hơn độ phân giải của pixel trạng thái “1”.