Designa appar för blandad verklighet som anpassar sig till dynamiska utrymmen

Designa appar för blandad verklighet som anpassar sig till dynamiska utrymmen

Laserdans är ett kommande mixed reality-spel som försöker använda Quests passthrough-kapacitet som mer än bara en bakgrund. I den här gästartikeln förklarar utvecklaren Thomas Van Bouwel sitt sätt att designa ett MR-spel som reagerar dynamiskt på olika miljöer.

Designa appar för blandad verklighet som anpassar sig till dynamiska utrymmen PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Gästartikel av Thomas Van Bouwel

Thomas är en belgisk-brasiliansk VR-utvecklare som för närvarande är baserad i Bryssel. Även om hans ursprungliga bakgrund är inom arkitektur, spänner hans arbete inom VR från indiespel som Kubism till företagsprogramvara för arkitekter och ingenjörer som lösa. Hans senaste projekt, Laserdans, kommer till Quest 3 sent nästa år.

Det senaste året har jag jobbat på ett nytt spel som heter Laserdans. Byggt från grunden för Mixed Reality (MR), är mitt mål att göra ett spel som förvandlar vilket rum som helst i ditt hus till en laserhinderbana. Spelare går fram och tillbaka mellan två knappar, och varje knapptryckning skapar ett nytt parametriskt lasermönster som de måste navigera igenom. Spelet är fortfarande i full utveckling och siktar på att släppas 2024.

Om du vill registrera dig för playtesting Laser Dance, kan du göra så här!

[Inbäddat innehåll]

Laser Dance's teasertrailer, som visades först direkt efter Meta Connect 2023

Den största utmaningen med ett sådant här spel, och möjligen alla rumsskala MR-spel, är att skapa nivåer som anpassar sig väl till alla rum oavsett storlek och layout. Dessutom sedan Laserdans är ett spel som kräver mycket fysisk rörelse, spelet ska också försöka tillgodose skillnader i människors nivå av rörlighet.

För att försöka övervinna dessa utmaningar är det viktigt att ha bra rumsemuleringsverktyg som möjliggör snabb designiteration. I den här artikeln vill jag gå igenom hur nivåer in Laserdans arbeta och dela några av de utvecklarverktyg som jag bygger för att hjälpa mig skapa och testa spelets adaptiva lasermönster.

Lasermönsterdefinition

För att förstå hur Laserdans rumsemuleringsverktyg fungerar måste vi först täcka hur lasermönster fungerar i spelet.

Designa appar för blandad verklighet som anpassar sig till dynamiska utrymmen PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.En nivå i Laser Dance består av en sekvens av lasermönster – spelare går (eller kryper) fram och tillbaka mellan två knappar i motsatta ändar av rummet, och varje knapptryckning aktiverar nästa mönster. Dessa lasermönster kommer att försöka anpassa sig till rummets storlek och layout.

Eftersom lasermönstren in Laserdans nivåer måste anpassas till olika typer av utrymmen, de specifika positionerna för lasrar är inte förutbestämda, utan beräknas parametriskt baserat på rummet.

Flera metoder används för att placera lasrarna. Det enklaste är att applicera ett enhetligt mönster över hela rummet. Ett exempel visas nedan på en nivå som applicerar ett enhetligt rutnät av svängande lasrar över rummet.

Ett exempel på en mönsterbaserad nivå, ett enhetligt rörelsemönster appliceras på ett rutnät av lasrar som täcker hela rummet.

Andra nivåer kan använda knapporienteringen i förhållande till varandra för att bestämma lasermönstret. Exemplet nedan visar ett mönster som skapar en sekvens av blinkande laserväggar mellan knapparna.

Blinkande väggar av lasrar är orienterade vinkelrätt mot den imaginära linjen mellan de två knapparna.

Ett av de mer mångsidiga verktygen för nivågenerering är en anpassad sökvägsalgoritm, som skrevs för Laserdans by Mark Schramm, gästutvecklare på projektet. Denna algoritm försöker hitta vägar mellan knapparna som maximerar avståndet från möbler och väggar, vilket gör en säkrare väg för spelare.

Banorna som skapas av denna algoritm tillåter flera lasermönster, som en tunnel av lasrar, eller att placera ett laserhinder mitt på spelarens väg mellan knapparna.

Den här nivån använder sökväg för att skapa en tunnel av lasrar som slingrar sig runt möblerna i det här rummet.

Rumsemulering

De olika teknikerna som beskrivs ovan för att skapa adaptiva lasermönster kan ibland leda till oväntade resultat eller buggar i specifika rumslayouter. Dessutom kan det vara utmanande att utforma nivåer samtidigt som man försöker ha olika typer av rum i åtanke.

För att hjälpa till med detta tillbringade jag mycket av den tidiga utvecklingen för Laserdans på att bygga en uppsättning rumsemuleringsverktyg för att låta mig simulera och direkt jämföra hur en nivå kommer att se ut mellan olika rumslayouter.

Rum lagras i spelet som en enkel textfil som innehåller alla vägg- och möbelpositioner och dimensioner. Emuleringsverktyget kan ta dessa filer och skapa flera rum bredvid varandra direkt i Unity-redigeraren.

Du kan sedan byta ut olika nivåer, eller till och med bara individuella lasermönster, och emulera dessa sida vid sida i olika rum för att direkt jämföra dem.

Ett anpassat verktyg byggt i Unity skapar flera rum sida vid sida i en ortografisk vy, som visar hur en viss nivå i Laser Dance skulle se ut i olika rumslayouter.

Tillgänglighet och spelaremulering

Precis som rummen som folk spelar i kan skilja sig åt, kommer de som spelar själva att vara väldigt olika också. Alla kanske inte kan krypa på golvet för att undvika lasrar, eller känna sig kapabla att klämma sig igenom en smal korridor av lasrar.

På grund av den fysiska naturen av Laserdans spelet kommer det alltid att finnas en gräns för dess tillgänglighet. Men i den mån det är möjligt skulle jag ändå vilja försöka få nivåerna att anpassa sig till spelare på samma sätt som de anpassar sig till rum.

För närvarande tillåter Laser Dance spelare att ställa in sin höjd, axelbredd och den lägsta höjd de kan krypa under. Nivåer kommer att försöka använda dessa värden för att justera vissa parametrar för hur de skapas. Ett exempel visas nedan, där en nivå vanligtvis förväntar sig att spelare ska krypa under ett fält av lasrar. När du justerar den minsta kryphöjden anpassar sig detta mönster till det nya värdet, vilket gör nivån mer förlåtande.

Tillgänglighetsinställningar gör det möjligt för spelare att skräddarsy några av Laser Dances nivåer efter deras kroppstyp och rörlighetsbegränsningar. Det här exemplet visar hur en nivå som skulle få spelare att krypa på golvet kan anpassa sig för personer med mer begränsad vertikal rörlighet.

Dessa spelarvärden kan också emuleras i de anpassade verktyg jag bygger. Olika spelarförinställningar kan bytas ut för att direkt jämföra hur en nivå kan se olika ut mellan två spelare.

Laser Dances emuleringsverktyg låter dig byta ut olika förinställda spelarvärden för att testa deras effekt på lasermönstren. I det här exemplet kan du märka hur byte till ett mer tillgängligt spelarvärde gör tunneln av lasrar bredare.

Data, testning och sekretess

Ett nyckelproblem med att designa ett adaptivt spel som Laser Dance är att oväntade rumslayouter och miljöer kan bryta en del av nivåerna.

För att försöka förbereda sig för detta under utvecklingen finns det en knapp i inställningarna som spelare kan välja att trycka på för att dela sin rumsdata med mig. Med hjälp av dessa emuleringsverktyg kan jag sedan försöka reproducera deras problem i ett försök att lösa det.

Designa appar för blandad verklighet som anpassar sig till dynamiska utrymmen PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Speltestare kan trycka på en knapp i inställningarna för att dela sin rumslayout. Detta möjliggör lokal reproduktion av potentiella problem som de kan ha sett, med hjälp av emuleringsverktygen som nämns ovan.

Detta borde naturligtvis väcka vissa integritetsproblem, eftersom spelare i huvudsak delar delar av sin hemlayout med mig. Ur utvecklarens synvinkel har det en klar fördel för design- och kvalitetskontrollprocessen, men som konsumenter av MR bör vi också ha en aktiv oro för vilka personuppgifter utvecklare ska ha tillgång till och hur de används.

Personligen tycker jag att det är viktigt att delning av känslig data som denna kräver aktivt samtycke från spelaren varje gång den delas – därav knappen som aktivt måste tryckas in i inställningarna. Tydlig kommunikation om varför denna data behövs och hur den kommer att användas är också viktig, vilket är en stor del av min motivation till att skriva den här artikeln.

När det kommer till MR-plattformar är en aktiv diskussion om datasekretess också viktig. Vi kan inte alltid anta att känslig rumsdata kommer att användas i god tro av alla utvecklare, så som spelare bör vi förvänta oss tydlig kommunikation och tydliga begränsningar från plattformar angående hur appar kan komma åt och använda den här typen av känslig data, och vara vaksamma på hur och varför vissa appar kan begära åtkomst till denna data.

Behöver du bygga anpassade verktyg?

Är det ett krav att bygga en handfull anpassade verktyg för att utveckla adaptiv Mixed Reality? Lyckligtvis är svaret på det: förmodligen inte.

Vi ser redan meta och Apple komma ut med egna verktyg för emulering av blandad verklighet, som låter utvecklare testa sina appar i en simulerad virtuell miljö, även utan headset. Dessa verktyg kommer sannolikt bara att bli bättre och mer robusta med tiden.

Det finns fortfarande fördelar med att bygga anpassade verktyg i vissa fall, eftersom de ger dig den största flexibiliteten att testa mot dina specifika krav. Att kunna emulera och jämföra mellan flera rum eller spelarprofiler samtidigt i Laserdans är ett bra exempel på detta.

- - - - -

Utveckling av Laserdans är fortfarande i full gång. Min förhoppning är att jag ska sluta med ett roligt spel som också kan fungera som en introduktion till mixed reality för nykomlingar till mediet. Även om det tog lite tid att bygga ut dessa emuleringsverktyg, kommer de förhoppningsvis både möjliggöra och påskynda nivådesignprocessen för att hjälpa till att uppnå detta mål.

Om du vill hjälpa till med utvecklingen av spelet, vänligen överväg registrera dig för playtesting!


Om du tyckte att dessa insikter var intressanta, kolla in Van Bouwels andra gästartiklar:

Tidsstämpel:

Mer från Vägen till VR