Zum Inhalt springen

Schnellstart für Spieleentwickler

Wenn du ein Spieleentwickler bist und eine einfache Möglichkeit suchst, SignalRGB-Effekte für deine Nutzer zu integrieren, willkommen beim Schnellstart-Leitfaden. Unsere Entwickler sind darauf spezialisiert, Effekte mit einer Benutzeroberfläche zum Laufen zu bringen, die normalerweise nicht für unsere Zwecke ausgelegt ist. Benutzer mögen Funktionen wie Farbverläufe, transparente Benutzeroberflächen, anpassbare Skill-UIs, HUD-Elemente, die hüpfen oder wackeln - all das sind Inkonsistenzen, die wir bei der Effektauslösung berücksichtigen müssen. Je schwieriger die Benutzeroberfläche ist, desto weniger können wir für das Spiel und die Benutzererfahrung tun. Mit etwas Teamarbeit zwischen dir und unseren Entwicklern können diese Probleme beseitigt werden und Spielintegrationen auf die nächste Ebene gehoben werden.

Die API von SignalRGB bietet einzigartige und leistungsstarke Werkzeuge für Entwickler zur Analyse visueller Informationen. Einfach ausgedrückt können wir präzise RGB-Farbdaten von jedem Pixel oder einer Gruppe von Pixeln erfassen und Änderungen in stabilen Werten nutzen, um Effekte auszulösen. Zum Beispiel eine sinkende Lebensleiste, ein sich öffnendes Menü oder ein entsättigtes Skill-Symbol - jedes konsistente UI-Element kann genutzt werden, um einen Effekt auf den Peripheriegeräten des Nutzers auszulösen.

Diese Methode gilt als indirekte Kommunikation und bringt mehrere Herausforderungen mit sich, die unsere Entwickler bei jeder Integration berücksichtigen. Die folgenden Abschnitte untersuchen Ideen zur direkten Kommunikation, die derzeit theoretischer Natur sind (Spieleentwickler, kontaktiert uns).

Unser einfachster Auslöser prüft einen bestimmten Farbbereich und gibt “ja” zurück, wenn er übereinstimmt, oder “nein”, wenn nicht. In Datenbegriffen nennt man das ein Bit, und eine Gruppe von acht Bits bildet ein Byte, das bis zu 256 mögliche Zustände repräsentieren kann.

In der Praxis gibst du die Koordinaten fester Pixel auf dem Bildschirm an (bei allen Auflösungen sichtbar). Diese Pixel können gebündelt oder verteilt sein und jede Farbe haben - solange sich der Standort jedes Pixels im Spiel nie ändert und seine Aktivierungsfarbe konstant bleibt. Wenn die Farbe eines Pixels mit der Aktivierungsfarbe übereinstimmt, wird es im Array als “1” registriert. Wenn es eine andere Farbe hat, wird es als “0” registriert. Jedes Frame berechnet die Integration die resultierende Ganzzahl aus dieser Binärfolge und hält den entsprechenden von dir definierten Zustand aufrecht.

Hier ist ein vereinfachtes Beispiel mit nur drei Pixeln, das sechs eindeutige Zustände erzeugt. Das UI-Element in diesem Beispiel ist die Ecke einer Minimap aus einem beliebten Spiel.

Und meine drei Pixel:

Ich habe die Originalfarben als Aktivierungsfarbe gewählt, sodass diese Bit-Anordnung gleich 111 oder “6” ist. Kein Pixel bestehend oder 000 würde “0” ergeben.

Als erstes müssen wir einen “Leerlauf”-Zustand im Spiel festlegen, der einfach alles andere aufrechthält, während wir auf weitere Eingaben warten. Dies wird Zustand “0” sein und könnte durch die folgenden Pixelwerte dargestellt werden:

Ich habe jedes auf rgb(0, 0, 0) gesetzt, was nicht besteht. Allerdings könnten so große Unterschiede für den Benutzer auffällig sein. Im nächsten Beispiel werden wir subtiler vorgehen.

Angenommen, wir haben festgestellt, dass wir im Spiel sind und einen Basiszustand aufrechterhalten. Dein Charakter hat seine erste Fähigkeit eingesetzt, und wir wollen diese Änderung als Effekt registrieren. Der Effekt für “Fähigkeit 1 eingesetzt” wurde als Zustand “1” festgelegt und wird aktiviert, wenn wir Zustand “1” an unsere Integration kommunizieren. Dazu bearbeite ich leicht die Basisfarben für Pixel 1 und 2 (von links), um die 001 zu erstellen.

Es mag nicht viel aussehen, aber Pixel 1 hat seine Helligkeit um etwa 30% verringert und Pixel 2 hat 50% Sättigung gewonnen. Da unser System diese Änderungen leicht erkennen kann, wechselt der Zustand zuverlässig zu “1” und der Fähigkeitseffekt wird ausgelöst. Fähigkeiten mit festgelegten Dauern können sich selbst beenden, aber nehmen wir an, diese wird mit einem Tastendruck aktiviert und mit einem weiteren beendet. Um einen unbestimmten Effekt aufrechtzuerhalten, würde Zustand “1” ihn aktivieren und Zustand “2” könnte ihn basierend auf weiterer Benutzereingabe beenden. Einige Effekte sind sehr analog und müssten immer noch von unseren Entwicklern individuell behandelt werden, aber für die übrigen steht dieses System als zuverlässig dar. Die Hauptbeschränkung ist die Sichtbarkeit der “Pixel”, die während des Gameplay-Zustands konstant sein müssen und wahrscheinlich größer sein sollten als die Auflösung des Zustands-”1”-Pixels.