BI-PGA Programování grafických aplikací
Jdi na navigaci předmětu

Unity3D aplikace v SAGE2

Unity3D aplikace v SAGE2

SAGE2 podporuje spuštění Unity3D aplikaci. Jako přiklad ukážeme vám náš projekt Game of Life 3D.

Na začátku potřebujeme spustit dvě verzi hry. Jednu na SAGE2 a druhou na vaším počítači. Po spuštění v obou verzích vás setká menu připojení.

menu pripojeni

Z verzi pro počítač vytvoříme server stísknutím tlačítka Create Server (O tom, proč potřebujeme server, budeme mluvit trochu později). Pak počkejte chvíli, než se v aplikaci pro SAGE2 objeví nápis "Server Onine" a stískněte tlačítko Connect to Server. Po stísknutí se objeví menu nastavení hry.

menu nastaveni 1

Musíte tady vybrat figuru, jejích počet a uvést velikost plochy, ve které budou buňky žít. Pokud budete chtit zkusit svoje vlastní pravidla, stiskněte tlačitko Custom properties. Mimo pravidel musíte uvést počet buňek, které náhodně objeví na začátku hry. Vratit se mužete stísknutím tlačítka Ready-made figures.

menu nastaveni 2

Po uvédení dát stískněte tlačítko Continue aby začit hru.

hra

Stísknutím po synchronizaci v libovolném programu tlačítka Leave uzavřete všechny clienty a server.

Spuštění Unity aplikace

Za prvé potřebujete project spravně sestavit. Přejdeme do File/Build Settings a změníme platformu na WebGL.

zmena platformy

Dále v menu Build Settings stískneme tlačítko Player Settings. V okně Inspector najdeme Rezolution and Presentation. Tady musíme změnit WebGL Template na Minimal.

webgl template

Dále musíme sestavit projekt, uložit ho do ZIP-souboru a spustit pomoci web clientu. SAGE2 automaticky vygeneruje soubor instructions.json. Pokud ale budete chtit ho napsát sami potřebujete minimálně tento kod.

 {
   "main_script": "UnityLoader.js",
   "width": 300,
   "height": 200,
   "title": "Project Name",
   "animation": true
 }

Uložit JSON soubor musíte do složky ve které se nachází Build folder a index.html.

Interakce s aplikací

SAGE2 podporuje většinu vstupů a UI elementů. Závisí to ale i na tom, jak budete s aplikaci interagovat: pomoci SAGEPointeru nebo přímo na display klientu.

Interakce přímo na display clientu podporuje všechny vstupy. SAGEPointer ale nepodporuje uplně všechno. Napřiklad nefungují Gamepady. Kromě toho mohou špatně fungovat komponenty třídy InputManager ("Horizontal" a "Vertical") a specialní tlačítka (Backspace, Esc, Delete apod.)

Zvláštnosti

Tady řekneme o tom proč používáme v naším projektu server. Vspomeneme si na archetikturu SAGE2. Na počítačích, ke kterým připojeny obrazovky, mame spuštěne display klienty a na jednom počítači beží SAGE server, který display klienty synchronizuje. Při spuštění libovolného programu na SAGE každý display klient spušťuje instance tohoto programu a server je synchronizuje.

Unity aplikace funguji na podobném principu. Jediný problem je v tom, že SAGE2 ne podporuje synchronizaci takových aplikaci mezi display klienty a na moment konce leta roku 2020 neexistuje oficialního způsobu je synchronizovat.

odpoved vyvojaru

A proto pokud budete chtit udělat hru pomoci Unity3D budete muset vymyšlet spůsob synchronizovat náhodné parametry. Napřiklad v naším projektu jsme používali bezplatnou verzi plagynu PhotonUnityNetwork.