Enhets visdom Vad jag lärde mig att förena 2013

Medan många av årets Unite-konferens fokuserade på teknikrelaterade aspekter av Unity-motorn var det många samtal från utvecklare om deras erfarenheter att utveckla spel med små grupper med hjälp av Unity. I den här artikeln kommer jag att gå över några av de stora insikter som Unity-utvecklare från hela världen har att erbjuda, tillsammans med några tekniska tips som jag plockade upp under vägen.

Kredit till Bluecadet för förhandsgranskningsbilden.


Designtips

Var inte rädd för att dela dina mönster.
Ziba Scott, Popkannibal

Flickor gillar robotar

I Ziba Scotts efterföljande av hans spel Girls Like Robots gick han på rummet genom de stora framgångarna och kostsamma misstag Popcannibal led på vägen till att skapa ett framgångsrikt vuxen simma spel.

Han påpekade först vikten av att vara oförskämd att dela speldesigner med människor runt omkring dig. Inledningsvis verkade tanken att dela med sig av sina tidiga mönster för tjejer som robotar farliga. Scott erinrade om att även om det fanns en rädsla för att dela hans mönster skulle leda till stöld av hans idéer, hände motsatsen. När han bad om återkoppling skulle människorna kring honom faktiskt hjälpa till att förbättra sina mönster genom att påpeka några av de komplexiteter och inkonsekvenser som han inte kunde se sig själv.

På samma sätt föreslog han att bristen på förproduktion skadade den övergripande uppfattningen av spelet av de personer som arbetade med det. Mer av spelet fanns i Zibas sinne än utanför för laget att bli inspirerad av. Han föreslog att om han hade externiserat flera av sina planer för spelet skulle det ha lett till en bättre gemensam vision mellan alla lagmedlemmar och ett mer konkret begrepp för laget att stödja och motiveras av. Han muserade att bara en liten konceptkonst skulle ha gått långt för att hålla laget upphetsat om slutmålet.

Att lägga ut dina mönster för att alla ska kunna plocka isär kan vara väldigt läskigt, men det gör att designen ska stå på egen vinst. Inte bara får du värdefull återkoppling från olika synvinklar, men en handling som ger ditt spel ut för kontroll har biverkningen att tvinga dig att undersöka dina egna designbeslut. Kom bara ihåg att, medan extern feedback är viktig, gör du som designare det slutliga beslutet.

Ha en "truthiness" till den verklighet du skapar.
Richard "Lord British" Garriott, Portalarium

Shroud av Avatar: Förlösta Dygder

Richard Garriott har en lång och intressant historia i spelutvecklingsbranschen. Som skapare av Ultima-serien och producent av City of Heroes och Tabula Rasa har han ganska stor erfarenhet av att skapa stora, ihållande virtuella spelvärldar (i själva verket är han killen som myntade termen MMO 1997). Hans senaste ansträngning, Avatar av Shroud: Forsaken Virtues, byggs med hjälp av Unity, som Garriott hävdar kommer att tillåta honom att göra ett "Ultima-scale" -spel på bara 18 månader.

I sitt huvudtal gav Garriott viss inblick i vad hans 30+ års RPG och MMO-erfarenhet har lärt honom att skapa övertygande spelvärldar. Kärnan föreslog han att någon spelvärld måste ha en viss "truthiness" till den (att låna en term från Stephen Colbert). Denna sanningen tycktes omfatta tre huvudbegrepp:

  • En förenklad sanning: Detta inkluderar alla numerologiska eller grafiska symboler som hjälper till att ge en matematisk eller vetenskaplig grund till den virtuella världen.
  • Social relevans: Evenemang som är personliga för spelaren och dagens samhälle hjälper till att visa spelet genom en mer realistisk lins och gör det lättare för spelaren att tro på det.
  • Kulturella bevis: Ett "visuellt språk" för att beskriva objekt i spelvärlden tvingar beslut att fattas baserat på historien, historien och kulturen, vilket gör världen verkar mer sammanhängande, konsekvent och fullständig.

Kombinerade bidrar dessa begrepp till att öka det upplevda djupet i spelvärlden.


Utvecklingstips

Utveckling av spel är vetenskaplig forskning, inte tillverkning.
Brian Kehrer, Muse Games

Kanoner av Icarus

Efter framgången med Icarus-vapen, blev laget på Muse Games närmade sig för att utveckla en online-version. Högst upp av sin första framgång och upphetsad om förnyat intresse från funders, skrivs ett 130-sidigt speldesigndokument upp. Medan deras spel växte inom ramen för Guns of Icarus, gjorde deras lagstorlek inte. Efter nio månader av mycket hårt arbete fann de sig knappt möta sina mål.

Det var vid denna tidpunkt som Kerher bestämde sig för att något var tvungen att förändras. Han behövde ett sätt att iterera mer med samma antal människor. I sitt samtal föreslog Kerher att Agile är vägen för att åstadkomma detta och utropade Guns of Icarus Online som ett bevis på att hans tillvägagångssätt kan ge mycket positiva resultat.

En del av Agile-metoden är att ha ett funktionellt programstycke i slutet av varje utvecklingscykel. För att möta detta krav såg Kerher till att alla utvecklingsuppgifter var uppdelade i uppgifter som kunde slutföras inom en period av två till tre veckor. Dessa mindre uppgifter tillåts för mindre delar av konstruktionen att bli itererade på en kortare tid. Utformningar som inte fungerade eller visste inte var fångade mycket tidigt. Kerher hävdade att eftersom det finns så många potentiella lösningar för en "rolig" mekaniker är det enda sättet att reta ut den optimala mekaniken att experimentera.

Skriv kod så att programmeraren inte behöver vara där.
Gerald Orban & Lance Mueller, Blackbird Interactive

Hårdvara: Shipbreakers (sedan bytt namn till Homeworld: Shipbreakers)

Gerald Orban och Lance Mueller of Blackbird Interactive hade ett problem: medan de skrev sina GUI-tunga spel Homeworld: Shipbreakers, fann de sig spendera mer och mer tid att justera värden och felsökningssystem för artisterna än de skrev ny kod. I sitt samtal går de över den iterativa processen som ledde dem till det flexibla, artistvänliga GUI-systemet som de nu använder i produktionen.

Tidigt i utvecklingsprocessen förstod Orban att GUI i Homeworld: Shipbreakers var avgörande för gameplay. Ännu mer än de flesta RTS-spel hade Homeworld flera lag av data som skulle visas, försvinna, kombinera och skilja sig beroende på zoomnivå och vad som var på skärmen. Med hundratals ikoner gjorda samtidigt var den första nödvändigheten att organisera all denna data i olika lager, vilket väsentligen liknar hur Google Maps skiljer kollektivtrafik, platser och trafikinformation.

Den första iterationen var pixelskuggad, tillhandahöll ingen WYSIWYG, och krävde att en programmerare var där för att göra tillägg eller modifieringar. Medan lagring av data hjälpte till att segmentera saker visuellt, fanns inga krokar i redigeraren för att göra några ändringar, så ändringar i färger och ikoner måste göras av utvecklaren via kod.

Den andra och tredje iterationen gjordes marginellt bättre genom att exponera GUI-objekten som skulle manipuleras i scenen. Medan detta gjorde det möjligt för artister att transformera GUI-element, ville de fortfarande ha mer kontroll över det individuella utseendet.

Slutligen, efter den åttonde iterationen, började de ansluta sig till Unitys redigeringsskriptfunktionalitet. Detta gör att artisterna kan manipulera GUI effektivare och tillåter dem att felsöka sina egna problem genom att först försäkra sig om att det inte finns något problem med konfigurationen av det aktuella GUI-elementet.


Affärsråd

Gå nötter och släpp snabbt ut.
David Helgason, grundare och koncernchef, Unity Technologies


En sak som David Helgason betonade i hans huvudtal var att sakerna rör sig väldigt snabbt nu - så fort att spelar väldigt snabbt tar man över den treåriga utvecklingscykel som dominerat spelutvecklingsbranschen år efter. "Först till marknad" och "snabb till marknad" blir allt viktigare, eftersom fler casual plattformar dyker fram och driver utvecklare mot snabbare iterationer. Snabbare iterationer innebär mindre överförbara spel, i en kortare tidsram.

Han fördjupade denna idé ytterligare genom att utarbeta vad han kallade ett "halveringstid för underhållning". I huvudsak är skapelser i olika medier olika olika längder innan de blir glömda eller irrelevanta. Äldre musik tenderar att hålla sig längre än äldre filmer. Äldre filmer tenderar att hålla sig längre än traditionella spel. Och mobila spel tenderar att ha den kortaste halveringstiden för alla medier. För att extrapolera innebär det att för mobilspel är tidsramen för att tjäna pengar mycket kortare i förhållande till andra medier.

Om det här är bra för branschen är det inte helt klart. Eftersom den kortare tidsramen minskar utvecklingstiden, kan spelets komplexitet också minska. I stället för att tankeväckande utforma spel kan branschen ta på sig en "se vilken pinne" mentalitet. Å andra sidan, eftersom investeringen är så låg, har ett misslyckande mindre påverkan som ger mer frihet i händerna på designers att utforma utanför lådan.

Observera inte [marknadsföring] taktik.
Darren Williams, marknadschef, Unity Technologies


Williams började prata med att säga vad många indie spelutvecklare känner: marknadsföring suger. Tänk bara på var du ska annonsera, hur man stimulerar, KPI / CPA-mål och kostnaden i tid och pengar för att få ditt spel att märka är tillräckligt för att göra en indieutvecklare längtan efter en utgivarens ingripande. Williams fortsatte med att lista några misstag som spelföretag gör och hur ens en oberoende utvecklare kan lära sig att njuta av marknadsföring.

Ett misstag spelföretag gör (eller tror att de måste göra) att fokusera på marknadsföring taktik. Williams pratade om de kraftfulla marknadsföringslösningarna som finns nu, men dessa lösningar tar pengar. Istället föreslog han att man fokuserade på mer organisk tillväxt genom att rikta in specifika publiktyper, av vilka han föreslår att det finns fyra: Innovatör, Tidig Adopter, Massmarknaden, och SÖLKORV.

Innovatörer är vanligtvis mycket tekniskt medvetna och har ett stort inflytande på publikens typer ovanför dem. Genom att marknadsföra ditt spel i samhällen där innovatörer bor, lägger du grunden för ett samhälle.

När ditt spel alfa är i händerna på Innovators, är det dags att börja bygga ett community med förhandsavgivning. Som innovatörer lär dig om ditt spel, vill de ha en webbplats eller ett forum för att återvända till var de kan hitta riktigt specifika tekniska detaljer och uppdateringar. När tiden går vidare, föreslog Williams att börja släppa högre nivå, mindre tekniska uppdateringar när tidiga adoptrar börjar anlända.

Med ett samhälle bakom ditt spel handlar det bara om att förbereda ett lanseringsdatum. Williams gick inte direkt in i hur man tar ett spel från innovatörs / Early Adopter-publiktyperna till massmarknaden, men nämnde att det är oerhört fördelaktigt att ha ett organiskt förutsläppsgemenskap när man försöker få stöd för saker som Steam Greenlight och Kickstarter.


Tekniska utvecklings tips

Memory and Garbage Collection


En aspekt av spelutveckling som Unity-utvecklare inte spenderar mycket tid på är att hantera minne. Det beror på att Unitys skriptmotor implementerar en sopsamlare som auto-magiskt tar hand om att städa upp de orenheter som inte längre refereras av scenen. Medan denna sopsamlare gör minneshanteringen enkel för utvecklaren, finns det flera gotchaser och optimeringar som kan hjälpa till att klämma ut det mesta av dina skript.

Det första du förstår om Unity s sopor är att det är användningar markera och sopa att korsa träd med referenser för att hitta oanvända föremål. Eftersom föremål hänvisar till andra föremål växer dessa träd i storlek och tar längre tid att korsa. För att hålla storleken på dessa träd små, föreslår utvecklare att de använder POD när det är möjligt. Eftersom POD inte kan referera till objekt, håller referensstromen mycket mindre. Ett enkelt exempel på detta skulle vara att referera till indexet i en array istället för objektet i arrayen.

Det andra tipset för att förbättra sopsättningshastighetsutvecklare föreslog var att använda strukturer och arrays där det var möjligt istället för klasser eller en lista. Både strukturer och arrays tilldelas i sammanhängande minne, vilket förbättrar åtkomsthastigheten och gör avsökning av dessa referenser enklare för sopsamlaren.

Slutligen är det bästa antagandet att anta ingenting. Ibland finns det en förväntan att eftersom en bit kod ser renare ut att den är effektivare. Ett exempel på detta är när man lägger till två Vector3 strukturerar tillsammans. Normalt skulle detta göras med hjälp av + operatör (v1 + v2, eller v1 + = v2), vilket slutar tilldela en tillfällig Vector3 för att hålla värdet innan det läggs tillbaka till v1. Mindre minne tilldelas genom att bara lägga till v2's x, y, och z komponenter direkt till v1s komponenter.


Slutgiltiga tankar


Medan Unite 2013 inte hade ett sammanhängande tema var det underliggande budskapet i varje prat klart: "Gå ut och skapa spel". Gör dem snabbt och gör dem roliga och gör dem till alla. Eftersom tekniken för att göra spel blir enklare, sjunker inmatningsbarriären för oberoende utvecklare och har en demokratiseringseffekt på branschen. Kortare utvecklingsteerationer skiftar kraft från stora företag tillbaka till enskilda skapare och på grund av detta kommer utgivare att vända sig till oberoende för nästa generations spel.

Om du är intresserad av att titta på videoklipp från Unite-konferensen kan du hitta detta och tidigare års samtal på Unitys Unite Archive.