De indie gamedev-gemeenschap is geweldig: dus bereid om tips, trucs, advies en zelfs gedetailleerde tutorials met uitleg over belangrijke concepten te delen. Hier heb ik een paar dozijn van mijn favoriete voorbeelden uit het internet verzameld, over codering, wiskunde, game-ontwerp en een game-ontwikkelaar. Dit is de kwaliteit van inhoud die we willen bereiken bij Gamedevtuts+.
gerelateerde berichtenDeze AI-tutorial neemt een interessante benadering van pathfinding. Stel in de afbeelding hierboven dat de groene stip een computergestuurd teken is, de witte E de doelbestemming en de bruine blokken onbegaanbare bergen. De basistechniek is om het doelwit een positief veld te laten genereren en de bergen genereren negatieve velden - alsof ze positieve en negatieve elektrische ladingen zijn. De velden worden vervolgens toegevoegd, zoals weergegeven door de verschillende tinten blauw, en de groene stip verplaatst zich eenvoudig naar de aangrenzende positie met de hoogste "pull" (d.w.z. de lichtste blauwe tint).
De tutorial duikt in tot in veel meer detail, laat zien hoe om te gaan met vijandelijke eenheden, lokale minima en andere situaties.
Misschien heb je de handleiding van Stephane Beniak over het klassieke Game of Life hier bij Gamedevtuts + gezien. Deze tutorial, door Mikola Lysenko, bespreekt een interessante nieuwe variant: een generalisatie van het spel van het leven voor soepele ruimtes, toegepast op arbitraire gebogen oppervlakken.
Mikola geeft niet alleen de stappen die nodig zijn om zijn versie opnieuw te maken; hij duikt diep in de wiskunde en concepten die nodig zijn om het te begrijpen, geleidelijk opbouwend tot het uiteindelijke indrukwekkende resultaat.
Dit is een korte en eenvoudige tutorial, bedoeld om te laten zien hoe krachtig de Nape en Starling Flash-bibliotheken zijn, maar ik vind het resultaat echt leuk! De werkelijke logica achter de creatie van het terrein is eenvoudig genoeg om te begrijpen dat je het naar de meeste andere gamedev-platforms kunt overbrengen.
Deze zelfstudie, door Rahul Srivastava van Rotating Canvas-games, gaat misschien goed samen met de Dynamic 2D Water Effects-zelfstudie van Michael Hoffman die we eerder dit jaar publiceerden. Rahul legt uit hoe OpenGL-shaders, een sinusfunctie en willekeurige ruis moeten worden gebruikt om dit nette wateroppervlakeffect te creëren.
Oke, dit is echt meer een rechte CS-tutorial dan een gamedev-specifieke codeerhandleiding, maar ik kon het niet laten om het hier op te nemen omdat ik van de presentatie hou. De schuifelende animaties helpen om te illustreren wat al een duidelijke tutorial is.
Dit artikel onderzoekt een vraag: hoe kunnen we het silhouet van een 3D-object detecteren? Zoals vaak het geval is, is de eerste stap om het probleem duidelijk te definiëren; Zodra dit is gebeurd, loopt de zelfstudie door de specifieke problemen en biedt een aantal voorbeeldcodes aan. Tegen het einde kunt u een willekeurig 3D-model nemen en de 2D-omtrek ervan genereren.
Dit is een van mijn favoriete tutorials aller tijden. Het is uitgebreid en zeer goed uitgelegd, met veel diagrammen en demo's. Zelfs als je geen plannen hebt om kaarten voor je games te genereren, vind ik het een boeiende lezing.
Weet je nog N? Het is een klassieke Flash-platformer, oorspronkelijk uitgebracht in 2005 en uiteindelijk geport naar Xbox, DS en PSP. Het trok echt de aandacht van mensen op het moment voor zijn supergladde bewegingen en botsingsmechanica.
In deze tweedelige (deel twee is hier) leggen de ontwikkelaars van N de basis van hun botsingsdetectiesystemen uit. Als je dit verder wilt doen, schreef Shiu een tutorial voor ons over dezelfde concepten.
De eenvoudige AABB-methode (axis-aligned bounding box) voor botsingsdetectie is geschikt voor veel games, maar in mijn ervaring willen game-ontwikkelaars vaak zo snel mogelijk tot een pixel-perfecte methode. Deze tutorial is vrij specifiek voor XNA, maar het verklaart de concepten duidelijk genoeg dat je ze zou kunnen implementeren in je 2D ontwikkelingsplatform naar keuze.
Dit lavalamp-achtige effect wordt vaak gebruikt om vloeistoffen weer te geven en het is vrij eenvoudig om met code weer te geven - geen aangepaste shaders vereist! Deze zelfstudie is in XNA, maar is eenvoudig genoeg om naar andere platforms te porten.
Rodrigo Monteiro breekt 2D-platformspelers in vier typen - op tegels gebaseerd (puur), tegelgebaseerd (vloeiend), bitmasker en vectorieel - en legt bondig uit hoe beweging in elk geval kan worden geïmplementeerd. Dit is zowel een uitstekende kennismaking met de concepten als een geweldige naslaggids.
Het is misschien niet echt nodig om je eigen raycasters te schrijven, met dank aan bijvoorbeeld Stage3D, Unity en OpenGL, maar ik denk dat het nog steeds interessant is om de basisbegrippen achter het renderen van een ruimte in 3D te leren. Deze tutorial legt het ruwe idee uit, laat zien hoe je de solid-colour raycaster hierboven kunt bouwen, en eindigt met het implementeren van een Wolfenstein 3D-style texture renderer.
U moet dit waarschijnlijk niet proberen te lezen op uw smartphone. Dit enorme artikel van Randy Gaul is een prachtige inleiding, gevuld met veel advies voor het programmeren van spellen in C++.
De Source Engine is het best bekend voor het voeden van FPS-games zoals Half-Life 2 en Team Fortress 2, maar in deze tutorial laat Ben Evans zien hoe je een eenvoudig RPG-prototype maakt. Hij legt uit hoe je speurtochten kunt maken, een dialoog kunt toevoegen en een eindvoorwaarde kunt instellen.
AI voor computergestuurde tegenstanders moet niet noodzakelijkerwijs zijn ontworpen om hen zo competent mogelijk te maken; racen tegen een reeks perfecte rijders zou niet leuk zijn. Hier legt Eduardo Jiminez de "rubberen band" AI uit in Pure, ontworpen om het spel competitief en dus spannend te houden, door te voorkomen dat de speler te ver achter raakt (of te ver voorop gaat!).
In deze 80 minuten durende presentatie (halve presentatie, halve Q & A-sessie), geven Jonathan Blow of Braid en The Witness het advies dat hij zichzelf zou hebben gegeven als een undergraduate game-ontwikkelaar.
Er zijn veel online A * -tracking-tutorials, maar ik geloof dat dit de beste is om mee te beginnen. Patrick Lester legt de methode snel en direct uit, met tips en verduidelijkingen, en biedt zelfs broncode en enkele suggesties voor wat de volgende gidsen moeten zijn.
Als je een goed begrip hebt van de wiskunde van mechanica, lijkt het coderen van een fysica-simulator een eenvoudige taak. Op papier is dat zo. In de praktijk betekent de discrete aard van elke codesimulatie dat u verschillende problemen tegenkomt - bijvoorbeeld, als de deltarij van uw simulator niet overeenkomt met de weergavesnelheid van uw spel, zult u merken dat de simulatie sneller of langzamer verloopt dan u van plan was.
In dit korte maar belangrijke artikel legt Glenn Fielder uit waarom het probleem optreedt en hoe het probleem kan worden opgelost.
Oké, dit is het niet technisch gezien een tutorial, maar het verdient zeker een plaats hier. Chris DeLeon heeft een platformgame op drie niveaus geleverd, compleet met een leveleditor en volledige broncode. Zoals hij het zegt:
Dit is niet zozeer een open source project, maar het is een ongewoon grote hoeveelheid verbonden demonstratie / voorbeeldcode, hoewel bedoeld om evenveel of meer te bevatten over gameontwerp (gebruikerservaring, afstemming, systeemrelaties) en gameproductie (ontwikkelingsruil, efficient authoring, content pipeline) omdat het gaat om de onderliggende programmering.
Quaternionen zijn een handige manier om rotaties in een driedimensionale ruimte weer te geven. [...] Het grote voordeel van Euler-hoeken is dat ze kunnen worden geïnterpoleerd zonder er vreselijk uit te zien. Je kunt rotaties samenstellen door quaternies te vermenigvuldigen, net zoals bij rotatiematrices, maar een eenheidquaternion is altijd een rotatie, terwijl een 3 × 3 matrix een aantal andere typen (mogelijk ongewenste) transformaties kan zijn.
Deze driedelige tutorial van Twisted Oak Studios legt de wiskunde van quaternionen uit. Dit is geen verf op nummer; het gaat ervan uit dat je er belang bij hebt om over dit soort concepten te leren, in plaats van ze gewoon te gebruiken.
Er is een schat aan geweldige inhoud op de site van Paul Firth, maar dit is een post waar ik steeds naar terugverwijder: een paar bruikbare methoden om met convexe polygonen te werken (dat wil zeggen, rechtzijdige vormen die niet dubbel op zichzelf staan).
Paul legt uit hoe je het gebied in een polygoon kunt vinden en hoe je kunt detecteren of een bepaald punt zich binnen een veelhoek bevindt. Niet zo opwindend, maar vaak handig.
Nog een geweldige gids van Paul Firth. Deze keer pakt hij vrijwel alles wat u moet weten, als ontwikkelaar van games, uit om een goed inzicht te hebben in vector wiskunde. Ik gebruik dit als een referentie (het is netjes georganiseerd!) Maar ik geloof dat het ook als een degelijke introductietutorial zou dienen.
David Rosen of Wolfire Games doorloopt de basisprincipes van vectoren en matrices in deze vierdelige serie, met veel game-gerelateerde voorbeelden in zowel 2D als 3D.
Zoals TVTropes voor beslissingen over slechte spelontwerpen. Ernest Adams houdt zich al meer dan een decennium bezig met het bijhouden van "game misfeatures" (zowel vanuit zijn eigen ervaringen als op basis van suggesties van lezers) en heeft ze hier in een gecategoriseerde lijst gecompileerd.
Grote bazen in RPG's moeten moeilijk zijn, maar het is niet leuk als ze niet te verslaan zijn. Hier legt Solitayre uit hoe je de aanvalspatronen van een vijand kunt structureren voor gedenkwaardige, lonende gevechten.
In dit artikel geeft Charmie van FunstormGames de bedrieglijk eenvoudige spelontwerpmethodologie van Wil Mozell door: het hierboven getoonde "kerndiagram". Zoals de post laat zien, is dit verrassend goed voor veel verschillende games, dus het biedt een interessante manier om over design na te denken.
Het is moeilijk om deze post te categoriseren: het bevat tips over codering, verhaalschrijven, gebruikersinterface en teamwork, allemaal gericht op het maken van platformgames. Als je van plan bent een platformgame te maken, lees dit dan, ongeacht je rol!
Kunnen gameplay-vaardigheden worden opgesplitst in een reeks "atomen"? Danc zegt ja, en presenteert zijn methode om dit hier te doen. Op deze manier kunnen de mechanica van een spel een duidelijke structuur krijgen, die op zijn beurt kan worden gebruikt om het spel te ontwerpen om de speler vooruit te helpen, altijd te leren of te verbeteren.
Als je hiervan geniet, bekijk dan ook de presentatie van Danc The Princess Rescuing Application.
Notitie: Zie ook de latere herziene versie van dit artikel (PDF).
Als gameontwerpers hebben we een manier nodig om games te analyseren, te proberen ze te begrijpen en te begrijpen wat werkt en wat hen interessant maakt. We hebben een kritische taal nodig. En aangezien dit eigenlijk een nieuwe vorm is, moeten we er, ondanks de enorme groei en verbluffende diversiteit, een nieuwe uitvinden.
Steve Swink, auteur van Game Feel, bespreekt het concept van virtuele sensatie - "het ding dat je moeder doet leunen naar links en rechts op haar stoel terwijl ze Rad Racer probeert te spelen" - onderzoekt zeven verschillende manieren om het te beïnvloeden. Om zijn punt te helpen illustreren, gebruikt hij voorbeelden van populaire spellen en eenvoudig te spelen demo's die zich richten op de bediening.
Martin Jonasson en Petri Purho laten zien hoe een gewone Breakout-kloon veel leuker kan worden gemaakt door "sap" toe te voegen - kleine vleugjes nagellak. Zorg ervoor dat je de verschillende links bekijkt die zijn gepost onder de video op YouTube.
Dankzij de normale toewijzing kunnen deze eenvoudige 2D-sprites dynamisch worden gearceerd op basis van het licht dat ze raken. Kijk eens naar het skelet in de piratenhoed, in het bijzonder: één kant is blauw verlicht; de andere is rood verlicht. Het is een geweldige manier om retropixelkunst te combineren met de kracht van moderne 3D gamedev-omgevingen.
Geïnspireerd door het bovenstaande bericht, bedacht Matt Greer een methode voor het toevoegen van dynamische verlichting en schaduwen naar 2D pixelart. Deze tutorial gaat dieper in op de eerste, en legt de wiskunde achter het effect uit met enkele voorbeeldcodes.
Colin Northway legt uit hoe hij het inkt-bleed fade-effect creëerde voor menu-overgangen in Incredipede. Afgezien van het verklaren van het coole effect, benadrukt deze post ook het belang van vallen en opstaan.
Ik citeer van de auteur, Radek Koncewicz:
Projectie betekent in feite het nemen van een driedimensionaal object en het weergeven ervan op een 2D-vlak (d.w.z. een scherm). Er zijn verschillende manieren om dit te bereiken, en elke techniek heeft een grote impact op het uiterlijk en de mechanica van een spel.
Voordat ik dit artikel las, had ik projectie in games nooit echt opgemerkt - ik zou een isometrisch spel uit een echt 3D-spel zeker kunnen vertellen - maar zoals dit artikel laat zien, betekende "isometrisch" niet echt wat ik dacht dat het deed ...
Dit is een verzameling stellaire stapsgewijze handleidingen voor het tekenen van cartoonillustraties die geschikt zijn voor games, zonder dat dit echt nodig is trek iets. De gidsen zijn zo eenvoudig dat het meer lijkt op het assembleren van artwork dan het maken ervan - en dat bedoel ik als een compliment.
We hebben eerder gesproken over paletten bij Gamedevtuts +: zowel hoe je ze handmatig kunt kiezen en hoe je ze door spelers kunt laten aanpassen. Dit artikel legt uit hoe je een computer kies een geschikt palet voor je spel - geweldig voor alles met procedureel gegenereerde niveaus!
Hoewel deze tutorial meer dan een decennium oud is, is het nog steeds een geweldige handleiding voor programmeurs zonder enige artistieke vaardigheid om snel fatsoenlijk uitziende pixelkunst te maken.
Ben je artistieker, kijk dan eens in de Pixelututorial van Derek Yu.
Dit is mijn go-to-artikel voor beginnende indie-game-ontwikkelaars die willen weten waar ze aan beginnen. Het staat vol met geweldige kleine citaten als deze:
Spelontwerp en niveauontwerp zijn verschillende vaardigheden: het ene ontwerpt een systeem en het andere werkt aan de manier om dat systeem op de meest lonende manier te presenteren.
Leuk weetje: we gebruikten dit artikel eigenlijk als een van onze naslaggidsen bij het bedenken van de plannen voor Gamedevtuts+.
In onze recente peiling was de meest gebruikte selectie voor het moeilijkste deel van het ontwikkelen van een game het 'afmaken'.
Hier geeft Derek Yu praktisch advies voor het daadwerkelijk krijgen van games. (De post fungeert ook als een motivatie kick-up van de achterzijde!)
Danc legt zijn creatieve proces uit voor het maken van uitstekende games, inclusief het allerbelangrijkste proces van prototyping (en het even belangrijke proces van het wegwerken van slechte ideeën).
Ik ging zitten met ontwikkelaars. We hebben gepraat. Ik speelde hun spellen. Ze vertelden me over hun relaties, hun beproevingen en hun goede hoop. Eerlijk gezegd was het hartverscheurend. Zoveel geweldige games. En toch zoveel gebroken bedrijfsmodellen, gebroken productietechnieken en gebroken filosofieën over wat er toe doet. Tachtig procent van de spellen die getoond worden, maakt hun ontwikkelingsbudgetten niet terug.
Dit is meer een gids voor wat niet Te doen; Danc deelt de meest voorkomende (en verwoestende) fouten die indie game-studio's maken. Leer van anderen.
Vergeet niet: naast het publiceren van gamedev-tutorials delen we ook vaak het beste van het web op onze Twitter-, Facebook- en Google+ kanalen. Ik heb ook een Google+ community opgezet om artikelen als deze te delen. Als je een geweldige tutorial kent die ik heb gemist, laat het me weten!
Bekijk ook de enorme selectie game-achtergronden en andere prachtig ontworpen game-items op Envato Elements.
Spelfaciliteiten op Envato Elements(En natuurlijk, als u een van de artikelen hierboven heeft geschreven, beschouw dit dan als een open uitnodiging om voor ons te schrijven ...)