La community indie gamedev è fantastica: è così disponibile a condividere suggerimenti, trucchi, consigli e persino tutorial dettagliati che spiegano concetti importanti. Qui, ho raccolto alcuni dozzine dei miei esempi preferiti di Internet, che riguardano la programmazione, la matematica, il game design e lo sviluppo di giochi. Questa è la qualità dei contenuti che aspiriamo a raggiungere su Gamedevtuts+.
Post correlatiQuesto tutorial di intelligenza artificiale ha un approccio interessante al path-finding. Nell'immagine sopra, supponiamo che il punto verde sia un personaggio controllato dal computer, che la E bianca sia la sua destinazione obiettivo ei blocchi marroni siano montagne invalicabili. La tecnica di base è far sì che il bersaglio generi un campo positivo e le montagne generano campi negativi - come se fossero cariche elettriche positive e negative. I campi vengono quindi aggiunti, come rappresentato dalle diverse tonalità di blu, e il punto verde si sposta semplicemente nella posizione adiacente con la "trazione" più alta (ovvero la tonalità più chiara di blu).
Il tutorial si immerge in molti più dettagli, mostrando come affrontare unità nemiche, minimi locali e altre situazioni.
Potresti aver visto il tutorial di Stephane Beniak sul classico gioco della vita qui su Gamedevtuts +. Questo tutorial, di Mikola Lysenko, discute un'interessante nuova variante: una generalizzazione del gioco della vita per spazi lisci, applicata a superfici curve arbitrarie.
Mikola non si limita a dare i passaggi necessari per ricreare la sua versione; si immerge profondamente nella matematica e nei concetti necessari per comprenderlo, costruendo gradualmente fino al risultato finale impressionante.
Questo è un tutorial breve e semplice, destinato a mostrare la potenza delle librerie Nape e Starling Flash, ma mi piace molto il risultato! La vera logica alla base della creazione del terreno è abbastanza facile da capire che potresti portarla sulla maggior parte delle altre piattaforme di gioco.
Questo tutorial, di Rahul Srivastava di Rotating Canvas, andrebbe forse benissimo con il tutorial di Dynamic Water Effects di Michael Hoffman, pubblicato quest'anno. Rahul spiega come utilizzare gli ombreggiatori OpenGL, una funzione seno e il rumore casuale per creare questo pulito effetto superficie dell'acqua.
Ok, questo è davvero più un tutorial diretto di CS che un tutorial di programmazione specifico per gamedev, ma non ho potuto resistere includendolo qui perché amo la presentazione. Le animazioni di mischiare aiutano ad illustrare ciò che è già un chiaro tutorial.
Questo articolo esplora una domanda: come possiamo rilevare la silhouette di un oggetto 3D? Come spesso accade, il primo passo è definire chiaramente il problema; una volta fatto, il tutorial analizza i problemi specifici e offre alcuni esempi di codice. Alla fine, puoi prendere un modello 3D arbitrario e generare il suo contorno 2D.
Questo è uno dei miei tutorial preferiti di tutti i tempi. È completo e molto ben spiegato, con molti diagrammi e demo. Anche se non hai intenzione di generare mappe per i tuoi giochi, penso che troverai una lettura affascinante.
Ricorda N? È un classico platform Flash, originariamente pubblicato nel 2005 e successivamente trasferito su Xbox, DS e PSP. Ha catturato l'attenzione della gente in quel momento per il suo movimento super-liscio e la meccanica di collisione.
In questo due parter (la seconda parte è qui), gli sviluppatori di N spiegano le basi dei loro sistemi di rilevamento delle collisioni. Se vuoi fare ulteriormente, Shiu ha scritto un tutorial per noi sugli stessi concetti.
Il semplice metodo AABB (bound-axis bounding box) del rilevamento delle collisioni è adatto a molti giochi, ma nella mia esperienza gli sviluppatori di giochi spesso desiderano ottenere un metodo perfetto per i pixel il più rapidamente possibile. Questo tutorial è abbastanza specifico per XNA, ma spiega chiaramente i concetti che potresti implementarli nella tua piattaforma di sviluppo 2D di scelta.
Questo effetto lampada lavica viene spesso utilizzato per il rendering di liquidi, ed è abbastanza semplice da eseguire il rendering con il codice: non sono richiesti shader personalizzati! Questo tutorial è in XNA, ma è abbastanza facile da eseguire il porting su altre piattaforme.
Rodrigo Monteiro suddivide i platform 2D in quattro tipi: tile-based (pure), tile-based (smooth), bitmask e vectorial - e spiega brevemente come il motion possa essere implementato in ciascun caso. Questo riesce ad essere sia un'ottima introduzione ai concetti sia un'ottima guida di riferimento.
Potrebbe non essere strettamente necessario scrivere i tuoi raycast in questi giorni, grazie a artisti come Stage3D, Unity e OpenGL, ma penso che sia ancora interessante apprendere i concetti di base alla base del rendering di una stanza in 3D. Questo tutorial spiega l'idea approssimativa, mostra come costruire il raycaster in tinta unita nella foto sopra e termina implementando un renderer di texture in stile 3D Wolfenstein.
Probabilmente non dovresti provare a leggerlo sul tuo smartphone. Questo enorme articolo di Randy Gaul è un ottimo primer, pieno di ottimi consigli per i giochi di programmazione in C++.
Il Source Engine è meglio conosciuto per l'alimentazione di giochi FPS come Half-Life 2 e Team Fortress 2, ma in questo tutorial, Ben Evans ti mostra come creare un prototipo RPG di base. Spiega come creare missioni, aggiungere dialoghi e impostare una condizione finale.
L'intelligenza artificiale per gli avversari controllati dal computer non dovrebbe essere necessariamente progettata per renderli il più competenti possibile; correre contro una serie di piloti perfetti non sarebbe divertente. Qui, Eduardo Jiminez spiega l'IA "elastico" in Pure, progettata per mantenere il gioco competitivo, e quindi eccitante, evitando che il giocatore cada troppo indietro (o si stia spingendo troppo in avanti!).
In questo talk di 80 minuti (mezza presentazione, metà sessione di domande e risposte), Jonathan Blow of Braid e The Witness danno il consiglio che si sarebbe dato come sviluppatore di giochi universitari.
Ci sono molti tutorial di pathfinder A * online, ma credo che sia il migliore per iniziare. Patrick Lester spiega il metodo in modo rapido e diretto, con suggerimenti e chiarimenti, e fornisce anche il codice sorgente e alcuni suggerimenti su quali guide leggere dopo.
Se hai una conoscenza decente dei calcoli della meccanica, la codifica di un simulatore di fisica sembra un compito semplice. Sulla carta, lo è. In pratica, la natura discreta di qualsiasi simulazione di codice ti consente di incappare in vari problemi: ad esempio, se il tempo delta del tuo simulatore non corrisponde alla frequenza di visualizzazione del tuo gioco, scoprirai che la simulazione è più veloce o più lenta di quanto previsto.
In questo breve ma importante articolo, Glenn Fielder spiega perché si verifica il problema e come risolverlo.
Ok, questo non lo è tecnicamente un tutorial, ma sicuramente merita un posto qui. Chris DeLeon ha fornito un gioco platform a tre livelli, completo di un editor di livelli e di un codice sorgente completo. Come dice lui:
Questo non è tanto un progetto open source quanto una pila insolitamente estesa di codice dimostrativo / di esempio collegato, sebbene inteso a incapsulare tanto o più sulla progettazione del gioco (esperienza dell'utente, messa a punto, relazioni di sistema) e produzione di giochi (compromessi di sviluppo, efficiente authoring, content pipeline) così come lo è sulla programmazione sottostante.
I quaternioni sono un modo conveniente per rappresentare le rotazioni nello spazio tridimensionale. [...] Il vantaggio principale che hanno sugli angoli di Eulero è che possono essere interpolati senza sembrare orribili. Puoi comporre rotazioni moltiplicando i quaternioni, in modo simile alle matrici di rotazione, ma un quaternione di unità è sempre una rotazione, mentre una matrice 3 × 3 potrebbe essere un numero di altri tipi di trasformazioni (forse indesiderabili).
Questo tutorial in tre parti di Twisted Oak Studios spiega la matematica dei quaternioni. Questa non è una vernice per posta; presume che tu abbia un interesse a conoscere questo tipo di concetti, piuttosto che metterli semplicemente in uso.
Nel sito di Paul Firth c'è una grande quantità di contenuti fantastici, ma questo è un post a cui mi riferisco ancora: un paio di metodi utili per lavorare con poligoni convessi (cioè forme con lati retti che non si raddoppiano su se stessi).
Paul spiega come capire l'area all'interno di un poligono e come rilevare se un determinato punto si trova all'interno di un poligono. Difficilmente eccitante, ma spesso utile.
Un'altra grande guida di Paul Firth. Questa volta, affronta praticamente tutto ciò che è necessario sapere, come sviluppatore di giochi, per avere una buona conoscenza della matematica vettoriale. Lo uso come riferimento (è ben organizzato!) Ma credo che servirebbe anche come tutorial introduttivo decente.
David Rosen di Wolfire Games ripercorre le basi di vettori e matrici in questa serie in quattro parti, con molti esempi di giochi in 2D e 3D.
Come TVTropes per decisioni di progettazione di giochi scadenti. Ernest Adams ha tenuto sotto controllo le "misfeatures del gioco" per oltre un decennio (sia dalle sue esperienze personali che basate su suggerimenti dei lettori), e li ha compilati in una lista categorizzata qui.
I grandi capi nei giochi di ruolo dovrebbero essere duri, ma non è divertente se sono impossibili da battere. Qui, Solitayre spiega come strutturare gli schemi di attacco di un nemico per creare battaglie memorabili e gratificanti.
In questo articolo, Charmie of FunstormGames trasmette la metodologia di progettazione del gioco di Wil Mozell, ingannevolmente semplice: il "Diagramma Core" mostrato sopra. Come mostra il post, questo si applica sorprendentemente bene a molti giochi diversi, quindi offre un modo interessante di pensare al design.
È difficile classificare questo post: contiene suggerimenti su codifica, scrittura di storie, interfaccia utente e lavoro di squadra, tutti incentrati sull'argomento di creare giochi di piattaforma. Se stai pensando di creare un platform, leggi questo, qualunque sia il tuo ruolo!
Le abilità di gameplay possono essere suddivise in una serie di "atomi"? Danc dice sì, e presenta il suo metodo per farlo qui. In questo modo, a una meccanica del gioco può essere data una struttura chiara, che può a sua volta essere utilizzata per progettare il gioco per mantenere il giocatore in movimento, sempre imparando o migliorando.
Se ti piace, guarda anche la presentazione di Danc The Princess Rescuing Application.
Nota: Vedi anche la versione rivista di questo articolo (PDF).
Come progettisti di giochi, abbiamo bisogno di un modo per analizzare i giochi, per cercare di capirli e per capire cosa funziona e cosa li rende interessanti. Abbiamo bisogno di un linguaggio critico. E dal momento che questa è fondamentalmente una nuova forma, nonostante la sua straordinaria crescita e l'incredibile varietà, dobbiamo inventarne una.
Steve Swink, autore di Game Feel, discute il concetto di sensazione virtuale - "la cosa che fa piegare la tua mamma a sinistra e destra nel suo sedile mentre cerca di giocare a Rad Racer" - esaminando sette diversi modi di influenzarlo. Per aiutare a dimostrare il suo punto, usa esempi di giochi popolari e semplici demo giocabili che si concentrano sui controlli.
Martin Jonasson e Petri Purho dimostrano come un semplice clone di Breakout può essere reso molto più divertente aggiungendo "succo" - piccoli tocchi di lucido. Assicurati di controllare i vari collegamenti pubblicati sotto il video su YouTube.
Grazie alla normale mappatura, questi semplici sprite 2D possono essere ombreggiati in modo dinamico in base alla luce che li colpisce. Date un'occhiata allo scheletro nel cappello dei pirati, in particolare: un lato è illuminato in blu; l'altro è illuminato di rosso. È un ottimo modo per combinare la retro pixel art con la potenza dei moderni ambienti di gioco 3D.
Ispirato dal post precedente, Matt Greer ha ideato un metodo per aggiungere l'illuminazione dinamica e ombre a pixel art 2D. Questo tutorial va più nel dettaglio del primo, spiegando la matematica dietro l'effetto con alcuni esempi di codice.
Colin Northway spiega come ha creato l'effetto dissolvenza a inchiostro per le transizioni di menu in Incredipede. Oltre a spiegare l'effetto interessante, questo post sottolinea anche l'importanza di tentativi ed errori.
Citerò dall'autore, Radek Koncewicz:
Proiezione significa sostanzialmente prendere un oggetto tridimensionale e visualizzarlo su un piano 2D (ad esempio uno schermo). Ci sono vari modi per farlo e ogni tecnica ha un impatto profondo sull'aspetto e sulla meccanica di un gioco.
Prima di leggere questo articolo, non avevo mai notato la proiezione nei giochi - posso dire di un gioco isometrico da un vero gioco 3D, certo - ma come mostra questo articolo, "isometrico" non significava realmente quello che pensavo facesse ...
Questa è una raccolta di guide passo-passo stellari per disegnare opere d'arte del fumetto adatte ai giochi, senza averne bisogno disegnare nulla. Le guide sono così semplici che sembra più un assemblaggio di opere d'arte che una creazione - e intendo questo come un complimento.
Abbiamo già parlato delle tavolozze su Gamedevtuts +: sia come sceglierle manualmente sia come farle personalizzare ai giocatori. Questo articolo spiega come consentire a computer scegli una tavolozza adatta al tuo gioco - ideale per qualsiasi cosa con livelli generati proceduralmente!
Sebbene questo tutorial sia vecchio di oltre un decennio, è comunque un'ottima guida per i programmatori che non hanno alcuna capacità artistica di creare velocemente dei pixel art dall'aspetto decente.
Se sei più artisticamente inclinato, dai un'occhiata a Pixel Tutorial di Derek Yu.
Questo è il mio articolo go-to per aspiranti sviluppatori di giochi indie che vogliono sapere a cosa stanno arrivando. È pieno di piccole citazioni come questa:
Il game design e il level design sono competenze diverse: uno sta progettando un sistema e l'altro sta lavorando su come presentare quel sistema nel modo più gratificante.
Fatto divertente: abbiamo effettivamente utilizzato questo articolo come una delle nostre guide di riferimento quando abbiamo ideato i piani per Gamedevtuts+.
Nel nostro recente sondaggio, la selezione più comune per la parte più difficile dello sviluppo di un gioco è stata "finirla".
Qui, Derek Yu elenca i consigli pratici per ottenere effettivamente i giochi. (Anche la posta funge da incoraggiamento motivazionale sul retro!)
Danc spiega il suo processo creativo per la creazione di giochi eccellenti, tra cui l'importantissimo processo di prototipazione (e l'altrettanto importante processo di eliminazione delle idee sbagliate).
Mi sono seduto con gli sviluppatori. Abbiamo parlato. Ho giocato ai loro giochi. Mi hanno parlato delle loro relazioni, delle loro prove e delle loro brillanti speranze. Onestamente, è stato straziante. Così tanti bei giochi. Eppure così tanti modelli di business rotti, tecniche di produzione spezzate e filosofie infranti di ciò che conta. L'ottanta percento dei giochi che vengono mostrati non ridurrà i loro budget di sviluppo.
Questa è più una guida su cosa non fare; Danc condivide gli errori più comuni (e devastanti) che fanno gli studi di gioco indie. Impara dagli altri.
Non dimenticare: oltre a pubblicare tutorial su gamedev, spesso condividiamo anche il meglio del Web sui nostri canali Twitter, Facebook e Google+. Ho anche creato una community Google+ per condividere articoli come questi. Se conosci un ottimo tutorial che ho perso, fammelo sapere!
Scopri anche l'enorme selezione di sfondi di giochi e altre risorse di gioco ben progettate su Envato Elements.
Risorse di gioco su Envato Elements(E, naturalmente, se hai scritto uno degli articoli descritti sopra, considera questo un invito aperto a scrivere per noi ...)