ISA
Eigen ras in de starcraft editor
Auteurs: Versie: Datum: Onderdeel:
Pieter Hoekstra & Kevin Wilmink 1.1 6-‐5-‐2011 ISA
Inhoudsopgave ISA
1
EIGEN RAS IN DE STARCRAFT EDITOR
1
1. WAT IS STARCRAFT?
3
2. WAAROM DE STARCRAFT EDITOR
4
3. OORSPRONKELIJKE IDEE
5
4. TRANSFORMATIE NAAR NIEUWE IDEE (EIGEN STARCRAFT 2 RAS)
6
5. EIGEN STARCRAFT 2 RAS
7
6. ONDERZOEK NAAR BESTAANDE RASSEN
8
7. UNIEKE GAME MECHANICS VAN HET NIEUWE RAS
9
8. TECH TREE
10
9. UNIT TREE
11
10. STARCRAFT 2 EDITOR
12
10.1 STARCRAFT 2 EDITOR PROGRESSIE 10.2 UNITS 10.3 ACTORS 10.4 ABILITIES 10.5 REQUIREMENTS 10.6 REFLECTIE
12 12 13 13 14 14
11. PLANNING EN UREN
15
1. Wat is starcraft? Starcraft is een realtime-‐strategy spel. Het speelt zich af in de toekomst in de ruimte, waar 3 rassen elkaar bevechten. Zo heb je de Terran, die menselijk zijn en van de planeet Aarde komen om het universum te ontdekken. Natuurlijk zijn ze niet de enigen in dit Universum en daarbij hoort de Protoss ook, dat een een alien ras zijn die beschikking hebben tot high technology, onderandere de macht om te teleporteren(warpen). En naast een alien ras, zijn er ook nog de Zerg, de beest soortigen in het universum, die gebruik maken van snelheid door een soort van uitspreidende ‘creep’ op de grond te krijgen. Starcraft is voornamelijk bekend geworden omdat het uitgroeide tot een e-‐sport, waarbij top spelers het spel beoefenen als een sport en er toernooien over de wereld heen worden georganiseerd waarbij de besten elkaar te bevechten in voornamelijk 1 tegen 1 strijden. Dat het een e-‐sport is is niet zo gek, omdat het spel de random factor zo veel mogelijk vermijd. Waardoor juist competitie en de elementen tot goed zijn worden versterkt. Starcraft is dan een realtime strategy spel, waarbij je begint met enkel een paar werkers en een hoofdgebouw. Door grondstoffen te verzamelen kun je je basis groter maken en op den duur een leger vormen en daarmee je tegenstander te lijf gaan. Starcraft staat ook bekend als een spel waarbij ontzettend veel dingen tegelijk plaats vinden, waardoor je veel moet Multi-‐tasken en kan worden afgestraft als je je teveel focust op je leger omdat anders je economie(macro) je in de steek gaat laten.
2. Waarom de starcraft editor We hebben gekozen om in de starcraft editor te werken om verschillende redenen. Affiniteit Beiden spelen we veel starcraft 2 online en zitten daarom diep in het spel. Het leek ons dan ook erg interessant en leuk om op deze manier nog dieper in het spel in te gaan. Ook denken we dat omdat we alle units goed kennen in starcraft 2 we wellicht sneller de editor snappen en ermee kunnen werken. Uitgebreid Na een klein onderzoekje hadden we ook al snel door dat de editor enorm uitgebreid is terwijl de data wel goed georganiseerd is. De onderdelen in de editor zouden vergeleken kunnen worden met kleine lego steentjes die individueel aangepast kunnen worden en een uitgebreid systeem vormen waarneer ze op elkaar gestapeld worden. Robuuste editor De editor is gemaakt door blizzard en blizzard is een uitgever die ontzettend veel tijd, geld en resources steekt in het optimalizeren van hun producten. De support voor de starcraft editor is hoog en op internet is er veel hulp te vinden. Tevens is de editor veel getest en daarom zijn veel kleine bugs eruit verwijderd en is het geheel robuust en stabiel. Opbouw van een RTS (editor) We zitten er sterk aan te denken in het nieuwe schooljaar een Real time strategy game te maken. Inzicht in hoe een goede RTS (editor) werkt kan ons volgend jaar veel voordeel verschaffen bij onze eigen opbouw. Zowel qua technisch design en samenhang alsmede gameplay technieken. Toekomstige projecten De kennis die we opdoen in de editor kunnen we goed meenmen in eventuele verdere uitgebreidere projecten in de editor. En hoewel het vergezocht is, mocht de gelegenheid zich aan doen en er een kans liggen om bij blizzard te kunnen stage lopen (werken?) dan kan een kennis in de editor een geweldige pre zijn. Playerbase Starcraft 2 kent een geweldige playerbase maar wat het voor ons veel interessanter maakt is dat veel mensen op de hku (in de klas) ook starcraft 2 spelen. Dit geeft dus een breed publiek van bekende mensen die wellicht geinterresseert zijn in onze creaties.
3. Oorspronkelijke idee Het oorspronkelijke ISA voorstel was het maken van een game-‐modus binnen in Starcraft 2. Hierbij hebben we veel customs games gespeeld die Starcraft 2 online aanbied en zo inspiratie opgedaan van wat we zouden kunnen maken voor onze eigen game-‐modus. Veel voorkomende game-‐modussen die je online tegen komt zijn: Tower Defense; waarbij waves aan units van punt A naar punt B proberen te komen en jij moet dit proberen te stoppen door het bouwen van torens. Er zijn vaak verschillende type torens en elke wave krijg je meer geld om je torens uit te breidden of juist meer te bouwen. Tug of War; dit is een soort van Tower Defense, waarbij je ook units naar de tegenstander kunt sturen, hierbij gaat het juist erg om wat de tegenstander doet en daarop reageren. Bij Tug of War moet je voorkomen dat je hoofdgebouw niet kapot gaat en je dus er voor moet zorgen dat de tegenstanders hoofdgebouw eerder kapot gaat dan die van jouw. Er waren nog vele andere game-‐modussen, maar voornamelijk van deze 2 zag je de meesten. Vanuit de inspiratie die we hadden opgedaan zijn we zelf wezen brainstormen en zijn we tot heel veel ideeen gekomen. Hieronder het idee, waar we het meest aan hebben gewerkt. Race spel; Hierbij ging je strijden tegen meerdere spelers om van punt A naar punt B te komen. Alleen is het niet alleen racen, maar ook kan het voertuig dat je bestuurt veranderen in andere units, om op die manier tegenstanders het leven zuur te maken. Zo kon je veranderen in een caster unit, die langzaam loopt en spelers irriteren, maar ook veranderen in een snel fragiel unit en je kon in een uiterst langzame unit veranderen die immuun is tegen zowat alles. De opdracht was om een object op te pakken die op punt B ligt en die terug te brengen naar punt A. Hierbij hoopten we dat er veel interessante situaties gaan ontstaan bij de terugkeer en dat het ook meer een physologische strijd wordt ipv een vaardigheids test, van wie het snelst en het best is in zijn handelingen.
4. Transformatie naar nieuwe idee (eigen starcraft 2 ras) Aangezien we ons meer wouden focussen op game-‐design ipv het leren van een editor, gingen we verder brainstormen en zijn we op den duur uitgekomen tot het maken van een ras ipv een game-‐modus. Hierbij hebben we veel gekeken naar de bestaande 3 rassen en zijn we wezen brainstormen naar een uniek element dat ons nieuwe ras, het ras zo uniek maakt ten opzichte van de rest. Dus hebben we onderzoek gedaan naar de bestaande rassen en is ons snel opgevallen dat ze allerlei met een paar woorden goed te omschrijven zijn: Terran: immobiel en sterk als een schildpad, Protoss: duur en sterk als een tijger, Zerg: snel en moet het hebben van omsingeling en aantal.(mieren) Ons ras ging de volgende eigenschap hebben: prikker, voorkomen dat de tegenstander op volledige kracht komt.(dolfijnen)
5. Eigen starcraft 2 ras Met enkel het idee in ons achterhoofd een ras te maken dat veel prikt en de tegenstander niet met rust laat, maar er toch voor zorgen dat spelers die het ras spelen, niet enkel door gaan pushen, moesten we hier iets op verzinnen. Het eerste idee dat we hiervoor hadden was dat het leger health verliest wanneer het aanvalt, zodat je op den duur wel terug moet trekken omdat je je anders je units verliest doordat ze aanvallen. Dit idee bracht als negatieve feedback op het ras en moesten we dus iets anders verzinnen. Het tweede idee was, dat we ieder unit een aantal zogenaamde stacks geven, die ze automatisch gebruiken en die dienen tot een extra effect of meer damage aan hun attacks. Hierdoor is het ras inn hun strike heel goed en daarna zijn ze normaal. Hiermee dachten we het probleem opgelost te hebben, maar langer nagedacht te hebben, brengt zo’n mechanisme tot intensief veel micro en moesten we dus een nieuw idee komen. Uiteindelijk hebben we veel van het tweede idee meegenomen in het derde idee. Waarbij je hoofdgebouw energy genereerd en je met een skill: “propoganda” kunt activeren waardoor al je units speciale aanvallen of extra schade doen voor de periode dat “propoganda” geactiveerd is. Hierdoor is het ras even heel goed en wordt dus het “prikken” gestimuleerd, zonder dat het intensief veel aan micro bevat. Precies wat we wouden met ons ras en het gene dat het uniek maakt. Naast dit mechanisme wouden we graag een ras maken die heel reactie response is. Hiervoor lieten de 3 basis units maken die kunnen transformeren tot weer andere gevechts units, op ieder moment in het spel. Hierdoor kun je op het laatste moment het leger creeren dat jij denkt dat goed is tegen dat gene waarmee de tegenstander aan komt. Voor het gebouwen structuur van het ras wouden we een soortgelijke bij doen. Hierbij wouden we het ras, workers en builders geven. Waarbij builders de gebouwen maken voor het ras. Voor een gebouw zijn bijvoorbeeld 4 builders nodig om het te bouwen en die verdwijnen in het gebouw. Het voordeel hiervan is, dat je op het laatste moment met 16 builders bijvoorbeeld in moment van tijd 4 gebouwen kunt plaatsen, want we wouden graag een ras creeren die reageert op zijn tegenstander en dus ook met zijn gebouwen keuze.
6. Onderzoek naar bestaande rassen Ieder ras in Starcraft hebben zijn eigen unieke eigenschappen en varieren veel van elkaar. In zowel de gebouw structuur, units maar ook de speelwijze. Terran: Terran bestaat uit een immobiel leger dat zich zeer sterk kan vestigen op locaties. Het is een ras dat veel lijkt om Andere strategie spellen. Waarbij je huisjes moet maken voordat je meer units kunt maken en dat je andere gebouwen unlocked door andere gebouwen te bouwen. Terran bestaat uit alleen maar ranged units, dat betekent dat een key van het ras is in het ‘kiten’ van de tegenstander. Dit houdt in dat je de tegenstander schiet en dan wegloopt en dan weer schiet etc. Terran zijn zeer goed in area controll en doen langzame pushes, die bijna onmogelijk tegen te houden zijn. Door hun onmobieliteit, zijn ze hierop te pakken t.o.v. andere rassen. Protoss: Protoss is een duur ras, waarbij units veel kosten maar indien goed gebruikt veel waarde hebben voor het Protoss leger. Wat Protoss uniek maakt is dat ze gebruik maken van shields naast health. Shields regeneren zeer snel nadat ze een tijd geen damage hebben gekregen en hierin zit ook de kracht van het Protoss leger. In de gebouwen structuur moeten ze powersources bouwen(pylons) om andere gebouwen binnenin hun range te kunnen bouwen. Dit is een nadeel, maar het voordeel ervan is dat je units in kunt warpen(teleporteren) in dezelfde powersource gebieden. Hierdoor kun je overal op de map snel units krijgen als je hier pylons hebt staan. Protoss is een zeer gevreesd indien ze de volledige aantal units hebben die er op een moment op de map kunnen zijn, maar het is heel duur om tot dat punt te komen en het is de kunst om daarvoor te zorgen als een Protoss speler. Zerg: Zerg draait allemaal op map-‐controll, uitbreidden en hierdoor omsingelen. Zerg is een van de meeste unieke rassen. Zij maken geen units door een gebouw te selecteren en dan een unit te bouwen, maar door een larva te selecteren en vanuit daar een unit bouwen. Larven spawnen uit het hoofdgebouw van de Zerg en kunnen door middel van een Queen meer gemaakt worden over tijd. Het voordeel hierop is dat Zerg in no-‐time heel veel units kan maken en dus weinig gebouwen nodig heeft. Hierop is het ras ook gebouwd en is map-‐controll heel belangrijk. Doordat je van ver van te voren kunt zien met wat de tegenstander aan komt, kun je de ‘counter’ units maken en zijn ze klaar voordat de tegenstander in je basis is. Maar Zerg heeft t.o.v. de andere rassen het zwakste leger en moet dus agressief te werk gaan en voorkomen dat zijn tegenstander niet de kans krijgt om een groot leger te kunnen maken.
7. Unieke game mechanics van het nieuwe ras Ons ras is veel gebasseerd op de Zerg, maar het mechanisme wat meer in het extreme genomen. Het ras moet er ook voor zorgen dat de tegenstander ook volledige kracht komt door veel te prikken en kan ook zijn units bepalen vlak voordat die aanvalt. Maar in de gebouwen is het ras ook uniek, aangezien je in no-‐time een paar gebouwen kunt maken. Het ras is dus een puur reactie-‐ras op wat de tegenstander doet. Het nadeel van het ras moet dan ook liggen in dat het zwakkere units heeft en zelfs zwakkere units moet hebben dan de Zerg. Bij ons ras gaat het niet op map-‐controll maar juist om de tegenstanders uitbreiding/opbouwen te voorkomen. Het ras maakt gebouwen uit builders, variërend aan het gebouw gaan er de hoeveelheid vereiste builders in het gebouw om het te bouwen. Dit heeft geen bouwtijd, maar een builders aantal die er in moeten om het te maken. Voor de units is dat er substanties uit deze gebouwen gemaakt kunnen worden en waar dan ook op de map kunnen transformeerd worden tot units. Er zijn 3 verschillende substantie units, van light tot heavy units en een air unit.
8. Tech tree De tech-‐tree van het ras bestaat uit een aantal gebouwen, die weer kunnen veranderd worden in de gekozen gebouwen. Hierdoor kan het ras zijn keuze voor wat hij gaat langer uitstellen. Toch heeft het ras bepaalde andere gebouwen nodig, om weer andere gebouwen te unlocken. Hieronder de tech-‐tree van het ras.
9. Unit tree De units van het ras worden gebouwd uit een paar substantie units, die gemaakt worden vanuit de gebouwen. En die elk moment veranderd kunnen worden in een aantal andere units. Hierdoor kan het ras perfect op tijd reageren op wat de tegenstander doet en aangezien het een zwak leger is, heeft het ras dat ook nodig. Hieronder de unit-‐tree.
10. Starcraft 2 editor De starcraft 2 editor is een enorm uitgebreide editor. Met deze editor wil blizzard de community een krachtige tool geven. In de editor word alle data van elkaar gescheiden door het catogorieseren van de data. Op deze manier kan er naar hartelust gecombineerd worden in de editor en is zelfst het kleinste onderdeeltje aan te passen. Op internet zijn zelfs maps te vinden die in starcraft editor zijn gemaakt die niets meer met RTS te maken hebben. (shooters, rpg’s, etc). De downside van deze uitgebreide mogelijkheden is dat de editor erg complex is en vrij veel tijd en doorzettingsvermogen kost om door te krijgen.
10.1 Starcraft 2 editor progressie
Vertellen over onze (soms moeizame) progressie in de editor. Ook vertellen hoe we het aangepakt hebben deze editor eigen te maken. (filmpjes, samen spelen erin, lezen, etc). Ook vertellen dat we vooral met unit/data tab bezig zijn geweest en niet met terrain etc. Wij hebben ons erg verkeken op de complexiteit van de editor. We hadden al enkele ervaring met de warcraft 3 editor en hadden verwacht dat we onze kennis daarvan snel om zouden kunnen zetten in resultaten in de starcraft 2 editor. We kwamen echter bedrogen uit. Het lastige zit hem vooral in de actors. (zie hoofdstuk ‘actors’). We zijn begonnen te spelen in de editor maar kwamen er al snel achter dat dit weinig zin had. We zijn daarna begonnen met het bekijken van tutorial filmpjes op het internet. Na verschillende filmpjes zijn we weer opnieuw begonnen aan een poging het nu zelf eens te proberen. Met veel backtracken naar filmpjes hebben we uiteindelijk enkele creaties kunnen maken. Verschillende keren hebben we onze maps ‘weggegooid’ en opnieuw begonnen omdat we in het proces enkele bestaande assets gewijzigd hadden en er een rommeltje van hadden gemaakt. We hebben intensief samen gewerkt door altijd naast elkaar te zitten of door over internet een skype verbinding open te houden. Op die manier konden we elkaar te hulp schieten mocht iemand vast lopen. Gaande weg zijn we erachter gekomen dat een volwaardig ras te veel was voor de schoop van deze isa. We hebben besloten ons doel bij te stellen en een goede ‘basis’ kennis van de editor op te bouwen en enkele van de begin units van het uiteindelijke ras te gaan creëeren.
10.2 Units
Een unit heeft in starcraft 2 betekenissen je hebt de units in het spel (complete combinaties van: abilities, effecten, modellen, actors, etc) en de unit bouwsteen. In dit hoofdstuk word ingegaan op hoe een unit is opgebouwd. De unit bouwsteen houd de statestieken van een unit bij (hitpoints, snelheid etc). Aan de unit hangt een actor(de art), een wapen (bepaald de schade die een unit uitdeelt), en nog eventuele abilities. De unitbouwsteen is het best te vergelijken met hoe de units gebouwd werden in de warcarft 3 editor. Bij het creeëeren van nieuwe units is het een goed idee om gedrag over te erven van bestaande units. Maar hierna ben je nog niet klaar om de unit in game te gebruiken. Er dient nog een actor ingesteld te worden.
10.3 Actors
Actors zijn de artmoddelen van een unit/gebouw/effect etc. Een actor dient verboden te worden aan bijvoorbeeld een unit of effect. Per unit/effect moet er een unieke actor zijn. In de actor kan dmv actor events aangegeven worden welke animatie er afgespeeld moet worden. Validators kunnen hier tussen gezet worden om af te vangen of de animatie afgespeeld moet worden. Een validator is een soort logica blokje (die op zijn beurt ook weer kan bestaan uit meerdere validators) die bijvoorbeeld zegt: target staat voor eigen unit met afstand <1 yard (melee range). Als deze validator waar is zou bijvoorbeeld de hak animatie afgespeeld kunnen worden.
10.4 Abilities
Abilities zijn de skills die spelers kunnen activeren binnen hun units. Abilities kunnen in veel verschillende gedragstypen vallen. Bij het maken van een nieuwe abilitie moet één van de bestaande typen geinheritanced worden. Een voorbeelden hiervan zijn: effect-‐ target (na activeren word het effect op de target gegooid die nu als volgende aangeklikt wordt). Een ability moet aan de unitbouwsteen gebonden worden. (via een nieuwe bouwsteen ‘button’ kan ingesteld worden dat button B ability A bij unit U activeerd. Nu kan een ability geactiveerd worden maar doet hij nog niets. Doorgaans zet een ability een bouwsteen ‘effect’ in werking. Dit effect zal vervolgens meestal zorgen voor een serie effecten die samen de ability vormen. Een voorbeeld is bijvoorbeeld de ‘poisson dot’ van de venommancer (werktitel: Archer). Dit is een ability die afgevuurt wordt op een target. De target ontvangt om de seconde schade en zijn loopsnelheid wordt vertraagd. De ability roept 2 bouwstenen van het type effect aan: PoissonDotSet en PoissonSlow. PoissonDotSet zet vervolgens een bouwsteen ‘behaviour’ op de target. Een behaviour een gedragbouwsteen die voor een bepaalde tijd blijft, en waarbij ingesteld kan worden dat er een effect wordt aangeroepen om de x tijd. In het geval van de poissondot wordt er om de seconde het effect: poissonDotDamage aangeroepen, een bouwsteen van het type ‘effect’ met als classificering ‘damage’. PoissonSlow zet net als PoissonDotSet een behaviour op de target. Alleen dit keer is in de behaviour ingesteld dat de target zijn loopsnelheid verminderd is (bijvoorbeeld 0.5 van de normale snelheid (50% slow). Om de gebruiker op de hoogte te houden dat een unit een effect opzich heeft is er in de UserInterface tab van de behaviour bouwsteen een icoon en een text ingesteld. Een actor kan gebonden worden aan deze ability. In het geval van de poissonDot is er een actor aangehangen die een animatie van een ontplofend slijm toont. Deze is via actor events gekoppeld aan het moment waarop de poissondot elke seconde damage doet. Het geluid is ook een actor, wie ook gekoppeld is aan de damage die de target krijgt. Door het op deze manier combineren van talloze bouwstenen kunnen complexe en interessante abilities gecreëerd worden. Ook is het mogelijk om bepaalde abilites een requirements mee te geven. Of abilities te maken die bijvoorbeeld uit of aangezet kunnen worden (bijvoorbeeld stealth). Door goed te kijken naar bestaande abilities -‐
vooral hoe deze samengesteld zijn-‐ hebben we veel geleerd en hebben we uiteindelijk het systeem doorgekregen.
10.5 Requirements
Requirements zijn bouwstenen die gezet kunnen worden tussen abilities en de activatie ervan. Een voorbeeld van requirements die wij gebruikt hebben is die bij alle abilities van de units (bijvoorbeeld de poissonDot). Deze abilities kijken of aan een bepaalde requirement is voldaan. In dit geval de requirement: Propaganda. Deze requirement kijkt of de unit propaganda center de behaviour: propaganda heeft (wie een propaganda center krijgt voor x seconden nadat een abilitie dit zet). Op deze manier kunnen structuren gezet worden van bepaalde kettingen die gezet moeten zijn iets gebruikt kan worden.
10.6 Reflectie
De bedoeling was om een nieuwe unieke speelmodus te maken met een nieuw speltype. We zijn op tijd begonnen met deze isa en hebben gedurende het schooljaar telkens tussendoor veel tijd gestoken in het stroomlijnen van het idee. De drukke perioden hebben we het er minder over gehad maar het heeft altijd rondgezwerft achterin ons hoofd. Halvewegen het jaar en na veel iteraties op een speelmodus kwamen we op het idee een eigen ras te creëeren. Hoewel we in het begin erg twijfelden hebben we ons hier uiteindelijk voor ingezet omdat dit dichter lag bij het (multiplayer) spel dat wij het liefst speelden in starcraft 2. Achteraf was deze switch misschien niet zo handig. Een game mode was sneller te verwezenlijken dan een compleet nieuw ras. Ook was het een goed idee om eerst in de editor te duiken voordat we begonnen met het spuien van (vette) ideeëen. Onze beredenatie om dit niet te doen was dat technische moeilijkheden niet een grens moesten zijn voor ons idee/concept. We hebben ook te veel zitten brainstormen en tweaken zonder ook maar iets in de editor gedaan te hebben. We hadden eerder ideeen vast moeten zetten en vanuit hier verder werken, ipv alles zo open te laten zoals we nu hebben gedaan. Ook hebben we tussenstappen in het proces te weinig vast gelegd waardoor nu sommige informatie verloren is gegaan. Voortaan moeten we sneller iets uittesten en op deze manier tweaken ipv enkel in ons hoofd/papier.
11. Planning en uren Een overzicht van de (ongeveer) gemaakte uren: Onderdeel Spel modus; idee uitwerken Spel modus finetuen Idee bijstellen naar nieuw ras Onderzoek (rassen en balans in starcraft 2) Starcraft editor tutorials kijken (voorzichtig mee spelen) Ras idee finetuen Starcraft editor individueel inlezen Ras maken Verslag uitschrijven Totaal
Uren Pieter 6 3* 2 (6) 4
Uren Kevin 6 3* 2 (6) 4
10
10
20
20
3* 2 (6) 40
3* 2 (6) 40
20 4
20 4
116
116