Handige tips

Econ kerel

Pin
Send
Share
Send
Send


De ontwikkeling van computerspellen kan door één persoon of het bedrijf (ontwikkelingsteam) worden gedaan. Commerciële spellen worden gemaakt door ontwikkelingsteams die zijn ingehuurd door één bedrijf. Bedrijven kunnen zich specialiseren in de productie van games voor personal computers, gameconsoles of tabletcomputers. Ontwikkeling kan worden gefinancierd door een ander, groter bedrijf - de uitgever. De uitgever aan het einde van de ontwikkeling houdt zich bezig met de distributie van het spel en maakt de bijbehorende kosten. De tegenovergestelde benadering is een dergelijke ontwikkeling wanneer een bedrijf kopieën van games op zichzelf distribueert (zonder de deelname van uitgevers), bijvoorbeeld door middel van digitale distributie.

De ontwikkeling van de grootste budgetgames kan tientallen miljoenen dollars kosten, en in de afgelopen decennia [ wanneer? ] deze budgetten zijn voortdurend gegroeid, evenals het aantal ontwikkelteams en ontwikkeltijden. Dus eind jaren negentig kon een game voor de PlayStation-console voor de eindklant worden gemaakt door een team van 10 personen per jaar, voor PlayStation 2 (de eerste helft van de jaren 2000) was een team van 30-50 mensen en twee jaar ontwikkeling nodig, tegen 2012 is het Het ging al over teams van meer dan 100 ontwikkelaars en een looptijd van ongeveer drie jaar. Volgens Alex Moore, een game-ontwerper bij Sumo Digital, zouden games in 2012 als de prijs van de game voor de eindconsument in dezelfde verhouding zou stijgen, met andere woorden $ 1800 kosten om de verhoogde budgetten terug te verdienen met behoud van dezelfde prijzen in winkels, uitgevers moeten veel meer exemplaren van games verkopen.

Een groot budgetgame voor twee platforms - de Xbox 360 en PlayStation 3 - kostte in 2012 gemiddeld $ 20 miljoen, en om te kunnen renderen moesten er ongeveer twee miljoen exemplaren worden verkocht.

rol

In de vroege jaren tachtig, nadat de eerste thuiscomputers en gameconsoles verschenen, kon een programmeur bijna alle taken beheren die aan het ontwikkelen van een game waren verbonden. De ontwikkeling van moderne spellen vereist een breed scala aan vaardigheden en ondersteunend personeel. Om aan één project te werken, zijn hele teams vereist, meestal met vertegenwoordigers van een aantal specialisaties.

Hoe maak je zelf een spel?

Om een ​​spel te maken, moet je de programmeertaal kennen, en nu zijn ze allemaal in het Engels, en ze zijn complex, ze hebben hun eigen, zogenaamde syntaxis, die je ook moet kennen. Dus je stelt je voor dat je een spel maakt, toch?

Natuurlijk worden bijna alle games met een hoog budget gemaakt met behulp van een van de belangrijkste talen, maar voor een beginner is zelfs dit niet nodig om te weten.

Er zijn speciale programma's voor het maken van games, waaronder Game Maker. Ze zijn speciaal gemaakt voor het maken van spellen (het programma wordt de spelmaker genoemd). Persoonlijk werk ik in Game Maker en hiermee kan ik games van vrij hoge kwaliteit maken voor elk platform, van Android tot iOS.

U kunt ook Unity of adviseren Construct 2, als goede alternatieven.

Al deze tools ontwikkelen zich, en voor Game Maker Studio 2 is onlangs het tweede deel vrijgegeven, waarover ik hier schreef: Wat is nieuw in Game Maker Studio 2? GMS 2 review

Mijn persoonlijke mening is dat Game Maker een van de handigste programma's is voor het maken van games specifiek voor beginners, terwijl het volledig beheersen van Unity veel langer kan duren.

Als je Game Maker kiest, zullen mijn blog en kanaal je aanzienlijk helpen bij de ontwikkeling ervan, maar als je kiest voor Unity of iets anders, is er ook een enorme hoeveelheid gratis educatief materiaal van hoge kwaliteit in het Russisch.

In elk geval is de eerste fase (nul :) de keuze van een programma voor het maken van games.

De eerste fase is het ontwerpdocument

Vervolgens moet u een ontwerpdocument maken voor de nieuwe game. Met andere woorden, je hebt een idee nodig voor het spel. Waar gaat de game over? Wat zal daar gebeuren? Wat voor soort genre zal het zijn? Hoeveel tijd en geld kost ontwikkeling? Er zijn veel van dergelijke vragen, en voordat je een spel begint te maken, is het erg handig om een ​​soort ruw plan te maken.

Algemene dingen over het schrijven van een ontwerpdocument voor de game, vindt u hier:

  • Hoe een papieren spelontwerp te schrijven

Geloof me, zonder een voorlopig plan en puur op enthousiasme met een grote waarschijnlijkheid zul je het spel niet afmaken.

Het belangrijkste en belangrijkste deel van het maken van een spel is in feite de creatie ervan, het schrijven van code. Het hangt allemaal af van de omgeving en het programma waarin je het spel maakt, maar in de Game Maker en voor beginners is er een drug & drop-systeem - slepen en neerzetten.

Een soortgelijk systeem zit niet alleen in GM, maar ook in kaarteditors en ontwerpers voor populaire spellen. Trouwens, met mods voor populaire spellen raad ik je aan om spellen te gaan maken.

  • Waar te beginnen met game-ontwikkeling

Om je eerste game helemaal opnieuw te maken, hoef je de programmeertaal niet te kennen, gebruik gewoon het drug and drop-systeem, dat er ongeveer zo uitziet:

Een opmerkelijk kenmerk van Game Maker Studio 2 is dat al deze elementen automatisch worden gedecodeerd in de programmacode die de ontwikkelaar ziet.

Dit stelt u in staat om geleidelijk de code te leren en van drug te gaan en naar codering te gaan.

Specifieke vragen zoals: hoe maak je een beweging, hoe maak je een opname, wat zijn de effecten en al die jazz die je kunt vinden op mijn YouTube-kanaal in de vorm van speciale lessen over de basisprincipes van het maken van games.

Hoe lang duurt het om een ​​spel te maken?

De vraag is complex, het hangt allemaal af van je vaardigheden, van wat voor soort spel het is en andere factoren.

Soms kan een ervaren persoon in een paar weken een eenvoudig telefoonspel maken, soms worden games van gemiddelde kwaliteit gemaakt door een klein team van meerdere mensen in 6-12 maanden, maar grote projecten worden gemaakt door grote studio's en ontwikkeling kan 1-2 of meer jaar duren, terwijl werk een team van 100 of meer mensen.

Volgens geschatte gegevens duurt het maken van een grote game ongeveer 2-3 jaar voor een team van 200 mensen, als we het hebben over serieuze projecten zoals GTA 5.

Vergeet niet dat er uitzonderingen zijn op de regels. Notch schreef de eerste versie van Minecraft in een week en deze versie had al de meeste basisstructuren. maar uiteindelijk duurde de ontwikkeling enkele jaren, hoewel in tegenstelling tot GTA een heel klein team aan Minecraft werkte en de inkomsten van Minecraft zeer serieus waren.

Hoewel dit meer een uitzondering is, geen regel. Nu is de concurrentie veel groter en verschijnen dergelijke super succesvolle en super goedkope projecten steeds minder.

De derde fase - afbeeldingen

Graphics worden meestal parallel aan het proces van het ontwikkelen en schrijven van code gedaan, en meestal is dit het individu. Het is heel moeilijk om het werk van niet alleen een programmeur, maar ook een ontwerper te combineren, maar soms kan het alleen worden gedaan, bovendien vereisen sommige projecten geen afbeeldingen van zeer hoge kwaliteit of worden er kant-en-klare foto's en sprites gemaakt.

  • Lees: Waar sprites voor games te krijgen?

Afbeeldingen en tekenen is een zeer duur proces.

Mijn ervaring is dat als je het spel alleen maakt, het 40-60% van de totale tijd aan afbeeldingen kan kosten. Voor een individuele ontwikkelaar kan een goede grafische weergave in feite de totale tijd verdubbelen die nodig is om een ​​game te maken. En als verdubbeling van 1 maand naar 2 niet eng is, dan is verdubbeling van 2 naar 4 jaar veel.

Daarom wordt het ten zeerste aanbevolen voor beginnende ontwikkelaars om alle mogelijke manieren te gebruiken om gratis afbeeldingen te krijgen (misschien een artiest / ontwerper als aandeel) of om het grafische ontwerp minimaal te maken als de eerste spellen.

In extreme gevallen kunt u afbeeldingen aan de zijkant apart bestellen, met behulp van outsourcing.

Als u echter alles zelf wilt doen, zijn er veel manieren om te leren tekenen. Ik ben ook aan het leren (recent gekocht boord) en voor het lesgeven in tekenen kan ik je een aantal goede YouTube-kanalen adviseren:

  • Goede YouTube-kanalen over Gamedev en Graphics

Hoe lang duurt het om tekenen te bestuderen?

Over het algemeen kun en moet je, zoals elk bedrijf, je hele leven leren, maar er is geen limiet aan perfectie. Kijk echter nog een keer mijn tekeningen.

Nou, horror is niet direct, toch? Slecht natuurlijk, maar niet hier?

Nou, ik tekende dit met een computermuis in een zeer eenvoudige grafische editor, en ik leerde 1-2 maanden tekenen, maximaal 1 afbeelding per week.

Ik denk dat je over een jaar een heel goed niveau kunt bereiken als je 1-3 uur per dag besteedt aan het tekenen en bestuderen van de theoretische basis.

Ik heb een video (16 minuten):

Project selectie

Dus waar begin je? Het is gemakkelijker om te antwoorden waar te beginnen, het is het niet waard, namelijk bij grote projecten, zoals volledige 3D FPS, MMO of zelfs een lang platformspel van het 16-bits tijdperk. De meest voorkomende fout van beginnende ontwikkelaars is om te beginnen met een groot project op basis van het Cool Idee of een project te nemen dat eenvoudig lijkt en eindigt met een half afgemaakte bos spaghetti-code. In eerste instantie moeten kleine projecten worden opgezet.

In vroege projecten is je hoofddoel om te studeren, niet om Cool Ideas te implementeren. Door het project klein te houden, kunt u zich concentreren op het leren van nieuwe technieken, in plaats van veel tijd te besteden aan het beheren van code en refactoring. Ondanks het feit dat je coole idee geweldig kan zijn, is de realiteit van de ontwikkelingsindustrie dat hoe groter het project, des te waarschijnlijker het is om een ​​fout in de architectuur te maken. En hoe groter het project, hoe duurder deze fout is. Herinner je het verhaal van Daedalus en zijn zoon Icarus? Daedalus creëerde vleugels van was en veren voor zijn zoon. Hij waarschuwde Icarus om niet te dicht bij de zon te vliegen. Maar Icarus negeerde de waarschuwing en de vleugels smolten, waarna de zwaartekracht hem overviel.

Onthoud daarom: vlieg niet te dicht bij de zon op uw nieuwe programmeervleugels.

Gezien het bovenstaande zijn hier een paar tips over waar te beginnen.

Graphics en gebeurtenisverwerking

Als je nog nooit iets hebt geprogrammeerd met betrekking tot afbeeldingen of een grafische gebruikersinterface, moet je beginnen met iets kleins om "je voeten nat te maken". Mijn eerste project was tic-tac-toe, dus zelfs ik had een bescheiden start. Een paar ideeën voor het eerste project:

  • Simulator eenarmige bandiet

  • Zwarte jack

  • Boter, kaas en eieren

  • Vier op een rij

Het doel van uw eerste project is om over te schakelen van console-ontwikkeling naar evenementgestuurde grafische toepassingen. Hij leert je ook de basisprincipes van gamelogica en architectuur. Ik beveel iets stapsgewijs aan, omdat bewegingsgames een heel ander beest zijn.

Probeer het project eenvoudig te houden, zodat je het kunt voltooien en de interesse niet halverwege kunt verliezen, zonder het spel te beëindigen. Het is belangrijk om het spel te voltooien omdat je het ontwikkelproces niet leert als je verschillende onafgemaakte spellen op je harde schijf hebt.

Er is één punt dat ik wil wijzen op degenen die een boterham of vier op een rij maken. Maak je nu geen zorgen over kunstmatige intelligentie. Om een ​​spel voor slechts twee spelers te maken of om te spelen met een computer die willekeurige bewegingen maakt, is genoeg om te beginnen.

Als u zich daarvoor met grafische en gebeurtenisverwerking bezighield en u zich op uw gemak voelt in dit gebied, kunt u direct doorgaan naar de volgende stap.

Synchronisatie, beweging, botsingen, animatie

Nu je genoeg hebt van de grafische afbeeldingen, is het tijd om iets in realtime te doen. Hier zijn een paar suggesties:

  • Eendenjacht

  • pong

  • Space Invaders

  • Galaga

  • Tetris

Hier maak je kennis met beweging, tijd, animatie, botsingsdetectie, de spelcyclus, berekening van punten, overwinningen en nederlagen en andere belangrijke basisconcepten die in elke game worden gebruikt.

Duck Hunt en Pong zijn goede projecten voor degenen die al ervaring hebben met het programmeren van grafische afbeeldingen en evenementen. Ze hebben eenvoudige botsingsdetectie en alle belangrijke basisprincipes van realtime games.

Space Invaders en Galaga zijn goede keuzes voor het tweede / derde project. Ze hebben niveaus, dus je moet leren hoe je van niveau naar niveau kunt gaan met behulp van een statusmachine. U kunt hier lezen over eindige toestandsmachines. Games in de stijl van "shoot them all" vereisen ook het creëren van eenvoudige gedragspatronen voor vijanden, wat een stap is in de richting van kunstmatige intelligentie.

Tetris is goed voor een tweede / derde project. Het heeft heel weinig logica nodig om een ​​puzzelspel te maken. Dit is een redelijk groot spel, dus je moet leren hoe je je programma kunt splitsen in meerdere bronbestanden, waarover je hier meer kunt lezen. Onderschat Tetris niet. Ik heb het onderschat en kijk gewoon naar deze enge puinhoop in de Lazy Blocks-code.

Pereinzhenering

Een typische newbie-fout is proberen het beste spel aller tijden te maken, eindigend met een nieuwe techniek. Dat wil zeggen, wanneer hij probeert de beste game / engine te schrijven en het uiteindelijk allemaal slechts een klein deel van wat er is geschreven gebruikt.

Toen ik een beginner was, heb ik AI opnieuw ontworpen voor tic-tac-toe. Ik wilde een spel maken met onoverwinnelijke AI. Ik heb dit voor elkaar gekregen door een computer te programmeren om alle mogelijke vallen te kennen. Klinkt goed toch? Het kostte bijna 40.000 duizend regels van meestal gekopieerde code en een maand van mijn vrije tijd.
Later leerde ik datastructuren en leerde ik over het Minimax-algoritme, dat met een kleinere codegrootte niet alleen het juiste deed, maar het ook beter deed.

Dus leer van mijn fouten en wees niet te ambitieus. Focus op het leren spelen van games, niet alleen op het maken ervan.

Planning, botsingsanalyse, fysica, niveaus, kunstmatige intelligentie

Nu je twee of drie kleine spellen achter je hebt, is het tijd om je eerste grote project te maken.

Tot nu toe heb je waarschijnlijk geprogrammeerd zoals je moet. Het zal op dit punt eindigen. In de echte wereld worden de meeste ontwikkelingsprocessen voltooid voordat de eerste regel code wordt geschreven. Niets is erger dan het besef dat je, om aan je spel toe te voegen wat je wilt, alle geschreven code moet weggooien omdat je niet alles van tevoren hebt gepland. Nu je ervaring hebt met het maken van games, weet je waaruit het ontwikkelingsproces bestaat. Nu kun je de spellen plannen voordat je ze gaat maken.

Nu over je volgende spel. Break Out en Puzzle Bobble zijn goed voor het derde project omdat ze geavanceerde botsherkenning en fysica bevatten. Fysica is belangrijk omdat het de game een realistisch gevoel geeft. Zelfs Super Mario Brothers heeft een gevoel van zwaartekracht en traagheid. Biljart is een uitstekend project voor diegenen die gyrus met fysica willen belasten.

In games zoals biljart, moet je niet alleen botsingen detecteren, maar ze ook in een specifieke volgorde verwerken. Collision handling is dramatisch anders dan de detectie ervan. Hoewel het maken van biljart of een 2D-platformer eenvoudig lijkt, is botsingsanalyse in de juiste volgorde een verwarrend proces en moet niet worden onderschat.

Break-out en Puzzle Bobble bevatten ook niveauontwerp en vereisen het laden en vrijgeven van hun middelen. Het is een goede ervaring om een ​​level-editor voor de game te maken. Met editors kunt u eenvoudig niveaus maken en ze niet dwingen in de applicatie te solderen. Ik heb een artikel (eng.) Over het maken van een niveau-editor.

Misschien wilt u ook oefenen met het schrijven van kunstmatige intelligentie (AI). Een optie is om terug te keren naar tic-tac-toe of vier op een rij en een onoverwinnelijke AI te schrijven. Nu zou u de gegevensstructuren al moeten kennen en in staat moeten zijn om de kennis van bomen te gebruiken om het Minimax-algoritme te gebruiken. Met dit algoritme kun je alle mogelijke uitkomsten van tic-tac-toe berekenen en een onoverwinnelijke AI creëren. Het is grappig om je vrienden ermee van streek te maken. Misschien wilt u ook verschillende moeilijkheidsgraden doen. Een spel brengt geen vreugde als het niet gewonnen kan worden.

Pac Man is een geweldige manier om het schrijven van AI te oefenen. Je moet de boom- / grafiekstructuren en zoekalgoritmen, zoals A *, kennen, zodat de geesten door het doolhof kunnen gaan. Het zal ook nodig zijn om de geesten in een team te laten werken. Dit komt van pas als je games maakt met complexe AI, zoals realtime strategieën. U kunt hier lezen over de basisprincipes van AI.

Platformers, actie / avontuur, RPG, RTS, motoren

Nu je de ervaring hebt opgedaan met het maken van een goed gepland spel, ben je klaar om een ​​actie / avontuur / platform te maken. Het zal het hoogtepunt zijn van grafische afbeeldingen, beweging, animatie, botsingsanalyse / -detectie, fysica, AI, software-architectuur en al het andere dat u op dit punt zult leren. Voor degenen die ambitieuzer zijn, kunt u een realtime strategie (RTS) of een rollenspel (RPG) voorstellen. Wees voorzichtig, want RPG en RTS zijn echt enorme projecten.

RPG's hebben een complexe architectuur en vereisen veel planning. Je moet elk wapen, pantser, accessoire, aanval, voorwerp, spell, dagvaarding, vijand, kaart, baas, kerker, enz. Plannen. tot in het kleinste detail. Dit zou allemaal in harmonie moeten werken, en op zijn zachtst gezegd, dit is geen gemakkelijke taak. Dus als uw ontwerpproject op een script of een strip lijkt, moet u meer doen veel werk.

RTS's zijn ook architectonisch complex en vereisen ook veel AI. U moet het pad voor de eenheden zoeken, opdrachten van hen ontvangen, ander gedrag afhankelijk van de ontvangen opdrachten. Als je nog nooit eerder AI hebt gedaan, kun je het beste beginnen met de Pac Man-kloon om aan de slag te gaan.

Je zult waarschijnlijk voor het eerst een engine voor je spel moeten maken. Wat moet worden vermeden, is het creëren van een universele motor. Создавая движок не пытайтесь сделать его подходящем для любой игры. Если ваша игра требует x, y и z, делайте движок который умеет x, y и z. Движки создают исходя из того что нужно для конкретной игры, а не из того что любой игре может потенциально понадобится.

Другая распространенная среди новичков ошибка — это попытка создать движок в качестве первого проекта. И обычно это универсальный движок. Вам не нужен движок с фантастической графикой для создания Pong'а или Space Invaders. Программируя, легко закопаться в деталях. Концентрируйтесь на общей картине и завершайте свои игры.

Het lijkt erop dat iedereen de volgende grote MMO wil doen. Online spellen maken is niet iets dat je snel kunt begrijpen. Ik besefte dit toen ik probeerde online poker te spelen direct na de voltooiing van tic-tac-toe.

Het toevoegen van een netwerk bemoeilijkt het spel enorm. Wanneer een speler iets doet, moet u daarover informatie naar alle anderen verzenden. Het is alsof je rechterhand niet wist wat de linkerhand doet. U moet ook kiezen tussen het laden van de server en wat deze kan besturen. Hoe meer het servergedeelte, hoe minder mogelijkheden er zijn om vals te spelen op de client, maar dit betekent ook een grotere belasting van de server. Voor actie en andere snelle games moet je je zorgen maken over netwerklatentie en pakketverlies.

Je moet ten minste één goed gepland spel voltooien voordat je probeert een netwerkspel te maken. Probeer als het eerste netwerkproject iets te doen dat niet cruciaal is voor snelheid. Een eenvoudige chatserver / client zou bijvoorbeeld een goede gewoonte zijn. Je kunt ook terugkeren naar de tic-tac-toe / vier op een rij en de mogelijkheid toevoegen om online op hen te spelen. U kunt ook een netwerkkaart of bordspel proberen te maken.

Nadat je eerste netwerkproject klaar is, probeer je iets in realtime te doen. In uw eerste netwerktoepassing hebt u waarschijnlijk TCP gebruikt om ervoor te zorgen dat de gegevens die u ontvangt, aankomen in de volgorde waarin u deze hebt verzonden. Voor games waarin veel actie wordt ondernomen, zijn de vertragingen die door TCP zijn veroorzaakt waarschijnlijk te groot, dus u moet UDP gebruiken. UDP biedt geen garantie voor de leveringsorder en voor de levering zelf in het algemeen. Omdat UDP geen extra integriteitscontroles uitvoert, is het sneller. Je zult het gemak van het gebruik van TCP moeten opofferen in ruil voor UDP-snelheid en de noodzaak om onafhankelijk de integriteit van de gegevens te verifiëren bij het maken van het spel.

Voordat je 3D-spellen maakt, moet je minstens één goed geplande game maken en een goed begrip hebben van driedimensionale vectorwiskunde, lineaire en Newtoniaanse fysica. Hier heb je te maken met hoekpunten, texturen, verlichting, schaduwen, het bepalen van de interactie met objecten in driedimensionale ruimte, het laden van modellen en andere moeilijk klinkende dingen.

Het goede nieuws is dat als je al 4 of 5 spellen hebt gemaakt, je al de basis weet die nodig is om een ​​spel te maken. Je bent al bekend met het ontwikkelingsproces en kent je vaardigheden als programmeur. Ongeacht een driedimensionale shooter of tweedimensionale, hij is nog steeds een shooter. 2D RPG of 3D RPG is nog steeds een RPG.

Beschouw dit niet als een excuus om 2D over te slaan en meteen naar 3D te gaan. Voordat je leert rennen, moet je leren lopen.

Bekijk de video: Specialization and Trade: Crash Course Economics #2 (September 2021).

Pin
Send
Share
Send
Send