Terwijl veel Unite-conferenties dit jaar gericht waren op technologiegerelateerde aspecten van de Unity-engine, waren er veel gesprekken van ontwikkelaars over hun ervaringen met het ontwikkelen van games met kleine teams die Unity gebruiken. In dit artikel zal ik ingaan op enkele van de geweldige inzichten die Unity-ontwikkelaars van over de hele wereld te bieden hebben, samen met enkele technische tips die ik onderweg heb opgepikt..
Met dank aan Bluecadet voor de voorbeeldafbeelding.
Meisjes houden van robotsWees niet bang om uw ontwerpen te delen.
Ziba Scott, Popcannibal
In Ziba Scott's post-mortem van zijn game Girls Like Robots liep hij door de grote successen en kostbare fouten die Popcannibal leed op het pad naar het creëren van een succesvol spel voor volwassenenzwemmen..
Hij benadrukte eerst het belang van het niet durven delen van game-ontwerpen met mensen om je heen. Aanvankelijk leek het idee om zijn vroege ontwerpen voor Girls Like Robots te delen gevaarlijk. Scott herinnerde zich dat, hoewel de angst bestond dat het delen van zijn ontwerpen zou leiden tot de diefstal van zijn ideeën, het tegenovergestelde gebeurde. Wanneer hij om feedback vroeg, zouden de mensen om hem heen daadwerkelijk zijn ontwerpen verbeteren door te wijzen op enkele van de complexiteiten en inconsistenties die hij zelf niet kon zien.
Langs dezelfde lijnen suggereerde hij dat het gebrek aan pre-productie de algehele perceptie van het spel door de mensen die eraan werken, schaadde. Er was meer van het spel in Ziba's hoofd dan buiten om het team te laten inspireren. Hij suggereerde dat als hij meer van zijn plannen voor de game had geëxternaliseerd, dit zou hebben geleid tot een betere gedeelde visie tussen alle teamleden en een meer tastbaar concept voor het team om te ondersteunen en gemotiveerd te worden door. Hij peinsde dat een klein beetje concept art een heel eind zou zijn gegaan om het team enthousiast te houden over het einddoel.
Het uitzetten van je ontwerpen voor iedereen om uit elkaar te halen, kan heel beangstigend zijn, maar dit dwingt het ontwerp om op zijn eigen waarde te staan. Niet alleen krijg je waardevolle feedback vanuit verschillende gezichtspunten, maar de handeling om je spel uit te zetten voor onderzoek heeft als neveneffect dat je gedwongen wordt om je eigen ontwerpbeslissingen te onderzoeken. Onthoud alleen dat externe feedback belangrijk is, maar dat u als ontwerper de uiteindelijke beslissing neemt.
Lijkwade van de Avatar: Forsaken VirtuesHeb een 'waarachtigheid' aan de realiteit die je creëert.
Richard "Lord British" Garriott, Portalarium
Richard Garriott heeft een lange en interessante geschiedenis in de game-ontwikkelingsindustrie. Als maker van de Ultima-serie en producent van City of Heroes en Tabula Rasa, heeft hij behoorlijk wat ervaring met het maken van grote, aanhoudende virtuele gamewerelden (hij is in feite de man die in 1997 de term MMO introduceerde). Zijn nieuwste onderneming, Shroud of the Avatar: Forsaken Virtues, wordt gebouwd met behulp van Unity, waarvan Garriott beweert dat hij in 18 maanden tijd een 'Ultima-scale' game kan maken..
In zijn keynote gaf Garriott enig inzicht in wat zijn meer dan 30 jaar ervaring met RPG en MMO hem heeft geleerd over het creëren van boeiende spelwerelden. In de kern suggereerde hij dat elke gamewereld enige 'truthiness' moet hebben (om een term van Stephen Colbert te lenen). Deze waarheid leek drie hoofdconcepten te omvatten:
Gecombineerd helpen deze concepten om de waargenomen diepte van de spelwereld te vergroten.
Geweren van IcarusGames ontwikkelen is wetenschappelijk onderzoek, geen productie.
Brian Kehrer, Muse Games
Na het succes van Guns of Icarus, werd het team van Muse Games benaderd om een online versie te ontwikkelen. Hoog van hun eerste succes en enthousiast over hernieuwde belangstelling van financiers, werd een document met 130 pagina's met een speldesign geschreven. Hoewel hun game in omvang groeide van Guns of Icarus, was hun teamformaat dat niet. Na negen maanden van heel hard werk, merkten ze dat ze nauwelijks hun doelen bereikten.
Op dat moment besloot Kerher dat er iets moest veranderen. Hij had een manier nodig om meer te herhalen met hetzelfde aantal mensen. In zijn lezing suggereerde Kerher dat Agile de manier is om dit te bereiken en heeft Guns of Icarus Online aangekondigd als bewijs dat zijn aanpak zeer positieve resultaten kan opleveren.
Een onderdeel van de Agile-methodologie is om aan het einde van elke ontwikkelingscyclus een functioneel stuk software te hebben. Om aan deze vereiste te voldoen, zorgde Kerher ervoor dat alle ontwikkeltaken werden opgesplitst in taken die binnen twee tot drie weken konden worden voltooid. Met deze kleinere taken konden kleinere delen van het ontwerp in een kortere tijd worden geïtereerd. Ontwerpen die niet werkten of niet logisch waren, werden al heel vroeg gevangen. Kerher betoogde dat, omdat er zoveel mogelijke oplossingen zijn voor een 'leuke' monteur, de enige manier om de optimale mechanica te plagen, is om te experimenteren.
Hardware: scheepsbrekers (sinds hernoemd naar Thuiswereld: scheepsbrekers)Schrijf code zodat de programmeur er niet hoeft te zijn.
Gerald Orban & Lance Mueller, Blackbird Interactive
Gerald Orban en Lance Mueller van Blackbird Interactive hadden een probleem: tijdens het schrijven van hun GUI-zware game Homeworld: Shipbreakers, merkten ze dat ze steeds meer tijd besteedden aan het bijstellen van waarden en debugging-systemen voor de artiesten dan dat ze nieuwe code aan het schrijven waren. In hun talk nemen ze het iteratieve proces door dat hen leidde naar het flexibele, artiestvriendelijke GUI-systeem dat ze nu gebruiken in de productie..
Al vroeg in het ontwikkelingsproces begreep Orban dat de GUI in Homeworld: Shipbreakers van vitaal belang was voor het spelen van games. Meer zelfs dan de meeste RTS-games, had Homeworld meerdere gegevenslagen die zouden verschijnen, verdwijnen, combineren en scheiden, afhankelijk van het zoomniveau en wat er op het scherm stond. Met honderden pictogrammen tegelijkertijd weergegeven, was de eerste noodzaak om al deze gegevens in verschillende lagen te organiseren, zeer vergelijkbaar met hoe Google Maps openbaar vervoer, plaatsen en verkeersinformatie scheidt.
De eerste iteratie was pixel gearceerd, op voorwaarde dat er geen WYSIWYG was en er moest een programmeur zijn om toevoegingen of modificaties aan te brengen. Hoewel de layering van gegevens hielp om dingen visueel te segmenteren, waren er geen haken in de editor om wijzigingen aan te brengen, dus moesten de wijzigingen in kleuren en pictogrammen door de ontwikkelaar worden aangebracht via code.
De tweede en derde iteraties werden marginaal beter gemaakt door de GUI-objecten bloot te leggen die gemanipuleerd moesten worden in de scène. Hoewel dit het voor kunstenaars mogelijk maakte om GUI-elementen te transformeren, wilden ze toch meer controle over de individuele look en feel.
Eindelijk, na de achtste iteratie, begonnen ze te haken in Unity's editor scripting-functionaliteit. Hierdoor kunnen de artiesten de GUI effectiever manipuleren en kunnen ze hun eigen problemen debuggen door eerst te zorgen dat er geen probleem is met de configuratie van dat specifieke GUI-element.
Ga gek en laat snel los.
David Helgason, oprichter en CEO van Unity Technologies
Eén ding dat David Helgason in zijn keynote benadrukte, was dat de dingen nu heel snel gaan - zo snel dat het maken van games zeer snel voorbijgaat aan de driejarige ontwikkelingscyclus die de game-ontwikkelingsindustrie in de afgelopen jaren heeft gedomineerd. 'First to market' en 'quick to market' worden steeds belangrijker naarmate er meer informele platforms ontstaan, waardoor ontwikkelaars in de richting van snellere iteraties komen te staan. Snellere iteraties betekent kleinere, verzendbare games, in een kortere tijdspanne.
Hij versterkte dit idee verder door uit te diepen over wat hij een 'entertainmenthalfwaardetijd' noemde. Creaties in verschillende media duren in wezen verschillende tijdsduren voordat ze vergeten of irrelevant worden. Oudere muziek blijft langer hangen dan oudere films. Oudere films blijven langer hangen dan traditionele games. En mobiele games hebben over het algemeen de kortste halfwaardetijd van alle media. Om te extrapoleren betekent dit dat voor mobiele games het tijdsbestek om geld te verdienen veel korter is in vergelijking met andere media.
Of dit goed is voor de industrie is niet helemaal duidelijk. Omdat het kortere tijdsbestek de ontwikkeltijd verkort, kan de complexiteit van games ook afnemen. In plaats van bedachtzaam games te ontwerpen, kan de industrie een "see what sticks" mentaliteit aannemen. Aan de andere kant, omdat de investering zo laag is, heeft een mislukking minder impact, wat meer vrijheid in handen van ontwerpers geeft om buiten de doos te ontwerpen.
Obsesseer niet over [marketing] tactieken.
Darren Williams, Marketing Director, Unity Technologies
Williams begon zijn verhaal door te zeggen wat veel indie-gameontwikkelaars zich voelen: marketing is slecht. Alleen al nadenken over waar te adverteren, hoe te prikkelen, CPI / CPA-doelen en de kosten in tijd en geld om je game te laten opvallen, is genoeg om een indieontwikkelaar naar een interventie van de uitgever te doen verlangen. Williams ging een lijst maken van enkele fouten die gamebedrijven maken en hoe zelfs een onafhankelijke ontwikkelaar kan leren genieten van marketing.
Een fout die bedrijven maken (of denken te moeten maken) is om zich te concentreren op marketingtactieken. Williams sprak over de krachtige marketingoplossingen die nu bestaan, maar deze oplossingen kosten geld. In plaats daarvan stelde hij voor te focussen op meer organische groei door zich te richten op specifieke soorten publiek, waarvan hij suggereert dat er vier zijn: innovator, Vroege adoptie, Massamarkt, en achterblijver.
Vernieuwers zijn doorgaans erg techisch op de hoogte en hebben een enorme invloed op de doelgroeptypen die erboven staan. Door je game te promoten in communities waar Innovators leven, leg je de basis voor een community.
Zodra uw game alpha in handen is van Innovators, is het tijd om een pre-release community te bouwen. Terwijl Innovators meer te weten komen over je game, willen ze dat een website of forum terugkeert naar waar ze echt specifieke technische details en updates kunnen vinden. Naarmate de tijd vordert, stelde Williams voor om hogere en minder technische updates vrij te geven naarmate Early Adopters arriveerden.
Met een community achter je spel, is het gewoon een kwestie van voorbereiden op een lanceringsdatum. Williams ging niet direct in op hoe een game te spelen van de publieksgroepen Innovator / Early Adopter naar de massamarkt, maar zei dat het hebben van een organische pre-releasegemeenschap ongelooflijk nuttig is als je ondersteuning wilt krijgen voor zaken als Steam Greenlight en Kickstarter.
Een aspect van game-ontwikkeling waar Unity-ontwikkelaars niet veel tijd aan besteden, is het beheren van het geheugen. De reden hiervoor is dat de scripting engine van Unity een garbage collector implementeert die op automatische wijze zorgt voor het opruimen van die vervelende objecten waarnaar niet langer wordt verwezen door de scène. Hoewel deze garbagecollector het geheugenbeheer eenvoudig maakt voor de ontwikkelaar, zijn er meerdere gotchas en optimalisaties die u kunnen helpen om de beste prestaties uit uw scripts te verwijderen.
Het eerste dat je moet begrijpen over de vuilnisman van Unity is dat het gebruik ervan is markeren en vegen door bomen van verwijzingen bladeren om ongebruikte voorwerpen te vinden. Omdat objecten verwijzingen naar andere objecten maken, worden deze bomen groter en duurt het langer om over te steken. Om de grootte van deze bomen klein te houden, stellen ontwikkelaars voor om waar mogelijk POD's te gebruiken. Omdat POD's niet naar objecten kunnen verwijzen, blijven de referentiestammen veel kleiner. Een eenvoudig voorbeeld hiervan is om de index in een array te verwijzen in plaats van het object in de array.
De tweede tip om ontwikkelaars van garbage collection-snelheden te verbeteren, was om zoveel mogelijk structuren en arrays te gebruiken in plaats van klassen of een lijst. Zowel structuren als matrices worden toegewezen in aaneengesloten geheugen, wat de toegangssnelheid verbetert en het scannen van deze referenties gemakkelijker maakt voor de garbage collector.
Ten slotte is de beste veronderstelling niets aan te nemen. Soms is er een verwachting dat omdat een stukje code er schoner uitziet, het efficiënter is. Een voorbeeld hiervan is wanneer er twee worden toegevoegd Vector3
structeert samen. Normaal gesproken zou dit gedaan worden met behulp van de +
operator (v1 + v2
, of v1 + = v2
), wat uiteindelijk een tijdelijke toewijzing oplevert Vector3
om de waarde vast te houden voordat u deze opnieuw toewijst v1
. Minder geheugen wordt toegewezen door alleen maar toe te voegen v2
's X
, Y
, en z
componenten direct naar v1
componenten.
Terwijl Unite 2013 geen samenhangend thema had, was de onderliggende boodschap in elk gesprek duidelijk: "Ga heen en maak games." Maak ze snel en maak ze leuk en maak ze voor iedereen. Naarmate de technologie om games te maken eenvoudiger wordt, neemt de toegangsdrempel voor onafhankelijke ontwikkelaars af en heeft deze een democratisch effect op de industrie. Kortere ontwikkelingsiteraties verschuiven de macht van grote bedrijven terug naar individuele videomakers en hierdoor zullen uitgevers zich voor de volgende generatie games wenden tot onafhankelijken.
Als je geïnteresseerd bent in het bekijken van video's van de Unite-conferentie, kun je de besprekingen van deze en voorgaande jaren vinden in Unity's Unite Archive.