In deze tutorial leg ik uit hoe je levels voor videogames ontwerpt, gebaseerd op mijn ervaring als ontwerper voor de Ratchet & Clank-, Resistance- en Skylanders-franchises. Ik ga niet diep in individuele concepten duiken, maar geef eerder een schets van het proces op hoog niveau dat ik gebruik bij het ontwerpen van een niveau.
Ik leid je door een voorbeeldniveau dat ik helemaal opnieuw maak, zodat je de typische resultaten van elke fase van het proces kunt zien.
Aan het begin van een ontwerp is het moeilijkste gedeelte uitzoeken wat er in een level gaat gebeuren. Als ontwerper kun je veel beslissen, maar je hoeft niet altijd alles te beslissen, vooral als je in een groot team werkt.
In een groot team zullen de meeste van uw beperkingen van andere mensen komen. Er zijn zakelijke beperkingen, franchisebeperkingen, beperkingen van het publiek, wettelijke beperkingen, motorbeperkingen, enzovoort. Meestal komen deze beperkingen van ver uit de keten.
Dichter bij je zullen de beperkingen zijn die worden toegepast door de visie van de creatief directeur, art director en iemand anders die op dat niveau beslissingen neemt.
Als je als indie alleen werkt, ben jij degene die deze beslissingen zal nemen, dus je moet je beperkingen nog steeds goed begrijpen.
Er zijn een paar algemene beperkingen die ik probeer te onthouden wanneer ik een niveau ontwerp; Ik vind dat deze van toepassing zijn op de meeste spellen waar ik ooit aan heb gewerkt. Ik heb voorbeeldantwoorden gegeven voor de vragen over deze beperkingen hieronder om u het detailniveau te tonen dat u nodig hebt om aan de slag te gaan, en ik gebruik deze voorbeeldbeperkingen om een voorbeeldniveauontwerp te maken in deze zelfstudie.
Dit is een kort niveau van maximaal ongeveer 30 minuten.
Onze denkbeeldige game-engine heeft koele effecten voor binnenverlichting, dus ik wil veel coole binnenruimtes hebben.
Dit artikel is geschreven in de loop van enkele maanden, maar het niveauontwerp aspect zelf duurde ongeveer twee of drie dagen om te voltooien.
Notitie: Ik verwacht dat dit proces ongeveer 5 weken duurt voor een volledig level op een echt spel.
Voor een spel dat niet als voorbeeld van een zelfstudie is gemaakt, zijn deze vereisten meestal afkomstig van de uitgever, de investeerders, de marketingafdeling, enzovoort.
Het platform waarvoor je het spel maakt, legt beperkingen op. Een game voor een telefoon kan niet zoveel verwerkingskracht gebruiken als, bijvoorbeeld, een game voor PS4 of pc. Een virtual reality-spel legt beperkingen op aan de bewegingsvrijheid van de camera om bewegingsziekte te voorkomen. Mobiele games hebben lengtebeperkingen omdat mensen in korte bursts spelen. Ken je beperkingen.
Laten we omwille van dit voorbeeld zeggen dat de game is gericht op de consoles van de laatste generatie (PlayStation 3, Xbox 360) en pc.
Dit is het derde niveau van het spel en als zodanig zullen de uitdagingen niet te moeilijk zijn.
Deze game is een sci-fi-game, redelijk gewelddadig. Het krijgt waarschijnlijk een M (of 18+) rating. We richten dit op hardcore gamers van 18 jaar en ouder.
Als je merkt dat je in de gelukkige situatie verkeert dat iemand je betaalt om een level te ontwerpen, onthoud dan dat ze dit niveau / spel met een reden willen. Als de dingen die je maakt niet aan die reden voldoen, zullen ze je niet betalen (of zouden ze niet moeten betalen), of de ontwikkelingsstudio waar je voor werkt. Bevredigende klanten zijn de beste manier om ervoor te zorgen dat ze jou of je studio opnieuw huren, dus zorg ervoor dat je vragen stelt over wat die reden is.
Deze kritieke vragen variëren van project tot project, maar ongeacht of ik een niveau ontwerp voor mezelf of voor anderen, vind ik dat er vier vragen zijn die bijna altijd het belangrijkste zijn om als eerste te stellen:
Laten we elk van deze opnieuw bekijken:
Het doel van het voorbeeldniveau is om een VIP te redden die vastzit in een militaire faciliteit en vervolgens het gebied in een helikopter verlaat.
Omwille van dit voorbeeld:
Elk gebied dat je ontwerpt, moet rekening houden met dingen zoals de bewegingssnelheid van de speler, de grootte van de speler, de grootte van de monsters, hoogten springen enzovoort.
Elk van deze informeert hoe groot je gangen en ruimtes moeten zijn, en welke hoogte en lengte beschikbaar zijn om te gebruiken als sprongen.
Al vroeg in de ontwikkeling van een spel wordt meestal een kort document ontwikkeld dat in zeer vage termen bepaalt wat er in elk niveau gebeurt. (Bekijk deze D.I.C.E. 2002-toespraak van Mark Cerny voor meer informatie over macro-ontwerpen.)
Een macrolocatie geeft aan welke puzzels en vijanden er op elk niveau zijn, hoeveel gebruik van elke soort per niveau wordt verwacht, welke beloningen je krijgt en dingen van die aard. Dit legt verdere beperkingen op aan uw ontwerp.
Omwille van ons voorbeeld zijn hier onze Macro-beperkingen:
Ten eerste: dit is een eenvoudig first-person vechtspel. Geen puzzels en eenvoudige gevechten met vier soorten vijanden:
Ten tweede: zodra de speler de VIP heeft gered, moet er een snelkoppeling terug naar het begin van het level zijn, zodat de speler het hele ding niet hoeft te doorkruisen.
Ten derde: de VIP bevindt zich in de laatste gevechtsruimte. Ze wordt gevangen gehouden door elite soldaten.
Zodra ik vrij ben van mijn beperkingen, begin ik te brainstormen. Bijvoorbeeld:
Wanneer ik een niveau ontwerp, denk ik graag in termen van verschillende "gebieden" binnen het niveau. Dat maakt het makkelijker om mijn werk te onderverdelen in hanteerbare brokken. "Gebieden" is een losse term voor elk deel van het niveau, van elke willekeurige grootte, vorm of locatie. Het enige echte criterium voor het feit of iets een gebied is of niet, is dat het je moet helpen sneller te werken om er zo over te denken. Als je op die manier dingen moeilijker maakt, maak je er dan geen zorgen over.
Voor ons voorbeeld wil ik dat spelers afzonderlijk over nieuwe vijanden leren en dan de vijanden samen in de loop van het level combineren, zodat alles complexer wordt. Dit is een goede intensiteitstoename.
Om dat goed te doen, hou ik meestal van ten minste zeven gebieden om mee te werken. (Het is enorm buiten het bestek van dit artikel om uit te leggen waarom, maar u kunt hier meer lezen over de "Regel van Zeven" om enkele van de stimulerende voordelen te zien die dit met zich meebrengt). Als ik een laatste gebied nodig heb voor iets, zoals een kamer voor een scène waar je de VIP redt, voeg ik meestal een extra gebied toe. Voor dit voorbeeld betekent dat 8 gebieden.
Voor elk gebied wijs ik vervolgens enkele basisideeën of -vereisten toe, zodat ik een korte lijst heb die me de structuur van mijn niveau vertelt.
Voor het voorbeeldniveau is dit wat ik bedacht voor gebieden:
Voordat ik me heel wat tijd en energie schenk aan het maken van een definitief ontwerp, iets in de motor bouwen, of zelfs begin te denken aan individuele gebieden, wil ik altijd een idee hebben van het algehele niveau en hoe het stroomt. Dit weerhoudt me ervan om fouten te maken en mijn ontwerpen zo vaak opnieuw te moeten maken.
Om het hele niveau te visualiseren en hoe zijn gebieden verbonden zijn, maak ik een Bubble Diagram.
Een bellendiagram is een heel eenvoudige kaart van het hele niveau, met cirkels die gebieden in het niveau aangeven en pijlen die de stroom en verbindingen tussen de gebieden aangeven.
In de brainstormfase uit deel 2 hebben we alle stukken van ons niveau bedacht. Het idee van een bellendiagram is om u te helpen visualiseren waar al deze stukken zich bevinden ten opzichte van elkaar. Het helpt je ook om na te denken over de paden door je niveau, en welke soort padstructuur het meest geschikt is voor je doelen.
Dit is het bellendiagram dat ik heb gemaakt voor ons lineaire voorbeeldniveau, met twee soorten pijlen om aan te geven of de verbinding tweerichtings- of eenrichtingsverkeer is:
Bijna elke ontwerper die ik ken maakt deze een beetje anders, en dat is goed! De enige vereisten zijn dat u consistent moet zijn en dat het eindproduct leesbaar moet zijn. Een onderdeel van het maken van bubble-diagrammen is dat ze kunnen worden gebruikt om je ideeën aan anderen te communiceren, houd daar dus rekening mee wanneer je ze maakt..
Notitie: Zie mijn artikel over Views and Vistas voor informatie over het instellen van set-pieces en het beslissen over views. Dit is een goede fase in het proces om te bepalen waar die naartoe gaan.
Zodra ik het beldiagram heb voltooid, weten we wat er op dit niveau gebeurt en weten we hoe elk gebied op elkaar is aangesloten.
De volgende stap is om de lijst te doorlopen en een ruw ontwerp voor elke bubbel te maken. Ik doe dit bijna altijd op papier of in Illustrator, omdat ik het zo heb geleerd, maar ik ken een aantal geweldige ontwerpers die dit soort dingen in de motor doen om een beter beeld van de ruimte te krijgen. Wat je het snelst doet werken, is het beste hier.
Hieronder ziet u een voorbeeld van een van de bubbels (met name Bubble 3: Tight Corridors) ziet eruit als nadat ik het op papier heb ontworpen (van boven naar beneden):
De speler begint bovenaan dit gebied en gaat verder naar de onderkant. Dit gebied maakt gebruik van rechte hoeken om vijanden te introduceren als een verrassing voor de speler
Ik zal dit onderbreken:
Merk op hoe dit gebied geïsoleerd van de andere is ontworpen en schaal wordt beschouwd, maar niet opgeroepen. Merk op dat de afstanden en hoogtes nog steeds niet goed gedefinieerd zijn.
In deze moeilijke fase is het echt handig om dingen snel te kunnen veranderen, dus ik finaliseer die gegevens pas als ik klaar ben om het ontwerp af te maken. Ik probeer echter de schaal relatief consistent te houden tussen alle gebieden, omdat dit mijn taak in de volgende stap zal vergemakkelijken wanneer we de gebieden met elkaar verbinden.
Laat je niet teveel vasthouden aan nauwkeurigheid of kleine details. Dingen over dit ontwerp zullen vanaf nu constant veranderen totdat de game wordt verzonden (zelfs nadat we het ontwerp hebben "gefinaliseerd"). Niets wordt in steen gebeiteld
Nadat ik elke bubbel heb genomen en deze in ruw, op papier heb ontworpen, koppel ik ze (grofweg) met elkaar. Voor de leesbaarheid heb ik het hier in Adobe Illustrator gedaan, maar dit kan ook op papier worden gedaan.
Merk op hoe de gebieden allemaal van begin tot eind zijn aangelegd, dus ik weet hoe ze verbinding zullen maken, maar ik heb nog niets afgerond.
Probeer de intensiteit op te voeren, gebied voor gebied. Zorg ervoor dat je je vijandtypen goed combineert, en dat in het algemeen de moeilijkheidsgraad, complexiteit en intensiteit van je vijandelijke ontmoetingen of puzzels in de loop van het level toeneemt.
Zorg ervoor dat je van tijd tot tijd voldoende rustpunten tussen gevechten of uitdagingen toevoegt aan een lagere intensiteit. Als je de intensiteit constant op 10 houdt, worden er 10 de nieuwe 5.
Het eindproduct (zoals in de bovenstaande afbeelding) is wat ik noem ruwe kaart.
Deze stap is wanneer ik finaliseer hoe alle gebieden in fysieke ruimte met elkaar verbonden zijn. Alle overgangen zijn voltooid en ik heb de hoogten en afstanden van alles voltooid.
Verschillende ontwerpers doen deze stap op verschillende manieren. Veel ontwerpers duiken graag rechtstreeks in de motor en bouwen dit uit, wat geweldig is. Mijn voorkeur gaat meestal uit naar het afmaken van de 2D-kaart, omdat ik de neiging heb om een beetje langzamer te zijn dan de meeste bij het bouwen van niveaus in de motor en dit versnelt me. De beste manier is datgene waardoor u sneller kunt werken en uw eindproduct beter maakt.
De uiteindelijke niveaukaart. (Full-sized PDF-versie hier beschikbaar.)Opmerkingen:
Raadpleeg de PDF die aan deze zelfstudie is gekoppeld als u wilt inzoomen en details van de definitieve kaart wilt bekijken. Je kunt ook zien hoe het is georganiseerd (verschillende delen in verschillende lagen) om een idee te krijgen van hoe ik deze construeer.
De oranje vakjes zijn triggers. Vijanden in een kamer zullen spelers niet aanvallen totdat spelers de trekker overhalen.
Elke doos op het raster is 2x2 speleenheden. Door deze kaart van bovenaf op een raster zoals deze te plaatsen en door hoogtes met getallen te markeren (bijvoorbeeld +70 in de kaart hierboven), kan ik in alle drie dimensies aanwijzingen geven over waar de dingen naartoe moeten gaan.
Houd er rekening mee dat alles wat we tot nu toe hebben gedaan, slechts een ontwerp is. Zodra je de motor in de motor hebt gedraaid en ermee begint te spelen, zul je een hoop dingen vinden die je wilt verbeteren, maar een degelijke basis hebben voordat je in de tools gaat, heeft me in de loop van de jaren enorm geholpen.
Ik hoop dat deze beschrijving van mijn methode nuttig voor je is geweest. De meeste mensen willen niet precies zo werken, en dat is goed - kies gewoon de onderdelen die je sneller maken, of die je resulterende werk meer samenhangend maken, en gebruik die.
Ik begin het proces door alle beperkingen en beperkingen op het niveau te begrijpen. Als ik vastbesloten ben om aan mijn eisen te voldoen, is het niet nodig om opnieuw te werken om het gemis later op te lossen.
Vervolgens brainst ik ideeën en krijg ik een ruwe structuur voor hoe het niveau eruit zal zien: hoeveel gebieden ik nodig zal hebben en wat er fundamenteel in zit. Dit wordt meestal een eenvoudig genummerde lijst, met name voor lineaire niveaus zoals die waaraan we in dit artikel hebben gewerkt.
Vervolgens maak ik een bellendiagram zodat ik kan begrijpen hoe al mijn gebieden bij elkaar passen. Het geeft me een basis om de basisstroom van mijn nieuwe niveau in één oogopslag te begrijpen.
Daarna maak ik een ruwe kaart. Meestal ontwerp ik elk gebied apart, op papier, en zoek ik later uit hoe ik ze samen rijg. Zodra ik ze heb waar ik ze wil, kan ik zien of er veranderingen moeten worden aangebracht in alles wat ik heb ontworpen om de gebieden te passen die bij elkaar passen.
Zodra ik een ruwe kaart heb, begin ik ofwel in de motor te werken of de kaart af te werken. Als ik aan mijn eigen projecten werk, ga ik in de motor. Wanneer ik voor anderen werk, maak ik meestal een kaart. Een kaart is een zeer effectief communicatiemiddel en als u het relatief up-to-date houdt, kan het nuttig zijn voor mensen om naar te kijken tijdens vergaderingen.