Brzi start za programere igara
Ako ste programer igara i tražite jednostavan način za integraciju SignalRGB efekata za vaše korisnike, dobrodošli u vodič za brzi start. Naši programeri su specijalizovani za pokretanje efekata sa korisničkim interfejsom koji obično nije dizajniran za naše svrhe. Korisnici vole funkcije kao što su gradijenti, transparentni korisničlki interfejsi, prilagodljivi UI-ji veština, HUD elementi koji se odskakuju ili tresu — sve to su nekonzistentnosti koje moramo uzeti u obzir pri aktiviranju efekata. Što je teži korisnički interfejs, to manje možemo da radimo za igru i korisničko iskustvo. Uz malo timskog rada između vas i naših programera, ovi problemi mogu biti eliminisani i integracije igara mogu biti podignute na sledeći nivo.
Osnove aktiviranja
Section titled “Osnove aktiviranja”API SignalRGBa pruža jedinstvene i moćne alate programerima za analizu vizuelnih informacija. Jednostavno rečeno, možemo preuzeti precizne RGB podatke o boji sa bilo kog piksela ili grupe piksela i koristiti promene u stabilnim vrednostima za aktiviranje efekata. Na primer, opadajuća traka zdravlja, otvaranje menija ili desaturisan simbol veštine — svaki konzistentan element korisničkog interfejsa može se koristiti za aktiviranje efekta na perifernim uređajima korisnika.
Ova metoda se smatra indirektnom komunikacijom i nosi nekoliko izazova koje naši programeri razmatraju pri svakoj integraciji. Sledeći odeljci istražuju ideje o direktnoj komunikaciji, koje su trenutno teorijske prirode (programeri igara, kontaktirajte nas).
Ideja 1 — Binarna komunikacija
Section titled “Ideja 1 — Binarna komunikacija”Naš najjednostavniji okidač proverava određeni opseg boja i vraća “da” ako se poklapa, ili “ne” ako ne. U terminima podataka, to se zove bit, a grupa od osam bitova čini bajt koji može predstavljati do 256 mogućih stanja.
U praksi, navodite koordinate fiksnih piksela na ekranu (vidljivi na svim rezolucijama). Ovi pikseli mogu biti grupisani ili raspoređeni i imati bilo koje boje — sve dok se lokacija svakog piksela u igri nikada ne menja i njegova boja aktiviranja ostaje konstantna. Kada boja piksela odgovara boji aktiviranja, registruje se u nizu kao “1”. Kada ima drugu boju, registruje se kao “0”. Svaki frejm, integracija izračunava rezultujući celi broj iz ovog binarnog niza i održava odgovarajuće stanje koje ste definisali.
Evo pojednostavljenog primera sa samo tri piksela, koji generiše šest jedinstvenih stanja. UI element u ovom primeru je ugao minimape iz popularne igre.

I moja tri piksela:

Odabrao sam originalne boje kao boju aktiviranja, pa je ovaj raspored bitova jednak 111 ili “6”. Nema piksela koji odgovaraju ili 000 bi dalo “0”.

Najpre moramo utvrditi “idle” stanje u igri, koje jednostavno održava sve ostalo dok čekamo dalji unos. Ovo će biti stanje “0” i može biti predstavljeno sledećim vrednostima piksela:

Postavio sam svaki na rgb(0, 0, 0), što ne odgovara. Međutim, tako velike razlike mogu biti uočljive korisniku. U sledećem primeru bićemo suptilniji.
Pretpostavimo da smo utvrdili da smo u igri i održavamo osnovno stanje. Vaš lik je upotrebio svoju prvu sposobnost i želimo da registrujemo ovu promenu kao efekat. Efekat za “sposobnost 1 upotrebljena” je postavljen kao stanje “1” i aktivira se kada komuniciramo stanje “1” našoj integraciji. Da bih to postigao, neznatno izmenjujem osnovne boje za piksel 1 i 2 (s leva), da bih kreirao 001.

Možda ne izgleda puno, ali piksel 1 je smanjio osvetljenost za oko 30% i piksel 2 je dobio 50% zasićenja. Budući da naš sistem lako može da otkrije ove promene, stanje se pouzdano menja na “1” i efekat sposobnosti se aktivira. Sposobnosti sa fiksnim trajanjima mogu se same završiti, ali pretpostavimo da se ova aktivira pritiskom tastera i završava još jednim pritiskom. Da bismo održali neodređeni efekat, stanje “1” bi ga aktiviralo i stanje “2” bi ga moglo završiti na osnovu daljeg korisničkog unosa. Neki efekti su veoma analogni i moraju se i dalje tretirati individualno od strane naših programera, ali za ostale, ovaj sistem stoji kao pouzdan. Glavno ograničenje je vidljivost “piksela”, koji moraju biti konstantni tokom stanja igranja i verovatno bi trebalo da budu veći od rezolucije stanja “1” piksela.