Cum să învățați Flash și AS3 pentru dezvoltarea jocurilor

Astăzi, Adobe Flash este puternic orientat spre dezvoltarea jocurilor. Pe lângă portalurile de jocuri bazate pe browser, cum ar fi Kongregate, Newgrounds și Jocuri Armor, jocurile realizate cu Flash pot fi găsite pe desktop, mobile și tablete (cum ar fi Machinarium, Super Hexagon și Wonderputt), ca aplicații native. În acest articol, vom împărtăși cărți, tutoriale și sugestii pentru învățarea limbajului de programare Flash și AS3 cât mai ușor.


Nu este Flash Dead?

Blițul a avut un timp greu în ultimii ani. Steve Jobs nu-i plăcea. iPad-urile, iPhone-urile și noile dispozitive Android nu o va rula în browser. HTML5 se îmbunătățește rapid, permițând browserelor să facă lucruri noi în fiecare zi care au fost anterior posibile doar cu Flash. Și toată lumea a venit peste un anunț banner enervant făcut în Flash, sau a avut un plugin Flash și a luat tot browserul cu el.

Deci, Flash devine o presă proastă între dezvoltatorii web și publicul larg și este cu siguranță o alegere învechită astăzi în multe domenii în care era rege, cum ar fi dezvoltarea site-urilor multimedia. Dar este încă o platformă excelentă pentru dezvoltarea jocurilor.

De ce Flash este încă minunat pentru Gamedev

Un motiv pentru aceasta este tehnologia. Limbajul de programare implicit pentru Flash, AS3, este departe de ActionScript din anii trecuți; este un puternic limbaj de programare orientat spre obiect, cu accelerare hardware, capabilități de rețea on-line și suport pentru grafica 3D. În plus, deși Flash Player nu este acceptat de majoritatea browserelor mobile și de tablete, jocurile Flash pot fi exportate ca aplicații native pentru iPhone, iPad, Android, Kindle Fire și BlackBerry.

Un alt motiv este ecosistemul. Portalurile web Flash au început să fie site-uri pentru copii pentru a-și găzdui jocurile brute de tip stick-stick, dar acum formează o industrie de milioane de dolari, cu multe jocuri complexe din punct de vedere tehnic și reacții critice. Deoarece jocurile Flash pot rula pe dispozitive mobile și tablete, acestea pot fi vândute în App Store, Google Play Store, Amazon Appstore și așa mai departe.

Celălalt motiv major, în opinia mea, este comunitatea. Datorită evoluției deosebite a lui Flash, acesta se adresează atât designerilor, cât și coderilor - un vas de topire perfect pentru dezvoltarea jocurilor. Pe lângă formarea unei mari comunități care face parte din, dezvoltatorii de jocuri Flash au scris o mulțime de biblioteci utile, instrumente, cărți și (desigur) tutoriale.

Dar ... HTML5!

Voi recunoaște că există un fel de presiune online împotriva utilizării Flash în orice scop, iar acest lucru poate fi descurajator. În orice discuție despre Flash, indiferent de context, cineva va sari și vă va spune că ar trebui să utilizați în schimb HTML5 - este ca legea lui Godwin pentru tehnologiile web.

Merită să examinați și HTML5 - merită învățat mai multe platforme diferite - dar nu treceți cu vederea multe puncte forte ale Flash. Situația nu este la fel de simplă ca "HTML5 este înlocuirea Flash".

Pe lângă toate aceste motive comerciale, a spus Will Blanton într-o conversație recentă despre acest lucru:

Îmi place să fiu expus noilor tehnologii, dar gamedev nu este doar o tehnologie, ci un mediu de exprimare (artă), și este doar neplăcut să cerem unui artist să își schimbe setul de unelte pentru a reflecta un fel de zeitgeist global perceput.


Instalarea instrumentelor de dezvoltare Flash

Nu aveți nevoie de o copie a Flash Professional pentru a face jocuri Flash. Este destul de util ca un instrument pentru a pune împreună GUI și sprite animate, dar nu este grozav pentru scrierea de cod.

În schimb, dacă sunteți pe Windows, vă recomandăm să descărcați editorul gratuit de cod FlashDevelop - este preferatul meu personal. Am scris un ghid pentru începători și mai multe informații sunt disponibile pe site-ul oficial.

Din păcate, FlashDevelop este numai pe Windows. Dacă sunteți pe un Mac, încercați FDT - este o versiune gratuită care ar trebui să fie mai mult decât suficientă pentru a începe. Michael Plank a scris editorului un ghid pentru începători și există o documentație completă (inclusiv un ghid de pornire) pe pagina principală a FDT.

Dacă dețineți o colecție Adobe Creative Suite sau sunteți abonat la Creative Cloud, este posibil să aveți deja o copie a Flash Builder, editorul Flash propriu Adobe dedicat codului. Consultați acest ghid pentru a afla cum să începeți acest lucru.

În cele din urmă, nu aveți nevoie de un IDE fantezist pentru a face dezvoltarea Flash; puteți folosi orice editor de text pentru a scrie codul dvs. (John Cotterell mi-a indicat spre pachetul AS3 TextMate al lui Simon Gregory, de exemplu) și SDK Flex / AIR pentru al compila - deși nu aș recomanda acest lucru dacă sunteți nou în programare.

Nu petreceți niciun moment de îngrijorare cu privire la care să alegeți - puteți oricând să comutați editor ulterior.


Învățarea AS3

AS3 (ActionScript 3.0) este limba de programare de facto pentru Flash. (Există limbi alternative - cum ar fi AS2 mai vechi și Haxe cross-platform - dar nu le voi atinge aici). Dacă doriți să faceți jocuri Flash, va trebui să învățați să programați. Mai degrabă decât să înveți să înveți cum să codifici și cum să faci jocuri în același timp, este mai ușor să începi cu codarea. Da, aceasta înseamnă a construi lucruri care nu sunt jocuri, dar acest lucru vă va ajuta să faceți jocuri pe termen lung.

Dacă deja cunoașteți limba Java, C # sau o altă limbă OOP, AS3 nu va fi o mare întindere pentru dvs. Cu toate acestea, trebuie să citiți:

  • Lista de afișare - vezi AS3: Lista de afișare, Programarea listei de afișare în AS3 și AS3 101: Lista de afișare.
  • Sistemul de evenimente - consultați Introducere în gestionarea evenimentelor și AS3 101: Evenimente.
  • Colecția de gunoi - consultați Înțelegerea colecției de gunoi în AS3.

Dacă sunteți nou în programare în general, veți avea nevoie de un ghid mai cuprinzător. Vă recomandăm AS3 101, o serie de 18 părți care explică toate conceptele de bază de la zero.

Două cărți aș ​​sugera, de asemenea, obtinerea (și citirea copertei pentru a acoperi) sunt Essential ActionScript 3.0) și ActionScript 3.0 Animație: Făcând lucrurile mișcă !. Nu te lăsa păcălit de titlul celui din urmă - nu este vorba despre animație tipică trasată manual; este vorba despre folosirea codului pentru a face lucrurile să se miște. Acest lucru este extrem de relevant pentru dezvoltarea jocurilor!

Alternativ, Matt Barker recomandă acest ghid uriaș (600 de pagini) gratuit, de Adobe: Programming ActionScript 3 [pdf].

Veți avea nevoie și de un ghid de referință. Adobe Livedocs este mare, iar în cele mai multe cazuri va fi tot ce aveți nevoie. (Căutarea este puțin cam ciudată, dar dacă tu doar Google pentru [livedocs "termen pe care de fapt ai nevoie ..."] se va întoarce.)

Și ca în cazul oricărui mediu de programare, Stack Overflow și Gamedev Stack Exchange sunt mari site-uri Q & A tehnice. Eticheta AS3 este actionscript-3.


Efectuarea primelor tale jocuri

Există o mulțime de cărți și tutoriale în special despre dezvoltarea jocurilor Flash, dar este dificil să găsim unul care folosește bunele practici fără a-și asuma prea multe cunoștințe anterioare.

Cred că cel mai bun din această categorie este jocul de design avansat cu Flash. Ar trebui să fii capabil să-l înțelegi dacă te-ai confruntat cu AS3 din recomandările anterioare, chiar dacă ai puțină experiență reală de dezvoltare a jocului.

Aș dori să includ și aici câteva tutoriale gratuite online, pentru a merge alături (sau chiar a înlocui) acea carte ... dar nu știu de fapt niciun tutu complet care să se potrivească facturii. Cele mai multe tutoriale Flash gamedev par să presupună că știți foarte puțin despre AS3 sau aveți destulă experiență de dezvoltare a jocului pentru a utiliza o anumită bibliotecă sau cadru.

Desigur, există tutoriale acolo - pur și simplu nimic definitiv. Aruncați o privire prin arhivele Activetuts + Games, explorați platformerul Everyone și încercați cel puțin să faceți ceva simplu ca Pong sau Space Invaders pentru a afla elementele de bază.


Mai mult mai mult Mai mult

Trebuie să te descurci cu Platforma Flash, poți codifica în AS3 și ai o bază decentă în dezvoltarea jocurilor Flash. În acest moment, puteți urma majoritatea tutorialelor de implementare de pe acest site, chiar dacă acestea sunt scrise într-o altă platformă de dezvoltare.

Dar există încă atât de mult mai multe puteți afla despre dezvoltarea jocului Flash în mod specific! Am completat un set de resurse, în nici o ordine particulară - alegeți oricare dintre ele vă interesează acum și obțineți învățarea.

Jocuri Motoare Flash

Flixel și FlashPunk sunt două biblioteci gratuite, gratuite, open source, adaptate dezvoltării jocurilor 2D.

Ambele sunt bine susținute, cu o comunitate dură și o mulțime de tutoriale, și fiecare a fost folosit pentru a face o mulțime de jocuri.

Pentru a afla Flixel, aruncați o privire la link-urile de pe pagina de ajutor oficială, precum și colecția excelentă de Flash Game Dev.

Pentru a afla FlashPunk, verificați tutorialele oficiale.
Puteți găsi această bibliotecă mai confortabilă dacă aveți deja experiență cu Game Maker, deoarece se bazează foarte mult pe limba scripting-ului Game Maker.

Stage3D

API-urile Stage3D vă permit să utilizați accelerația hardware a GPU-ului în jocurile dvs., pentru redare super-rapidă 3D. Consultați cartea lui Christer Kaitila, Programarea jocului Stage3D: Ghidul pentru începători, pentru un ghid aprofundat.

(De asemenea merită să te uiți în Away3D, un motor 3D avansat pentru Flash.)

În ciuda numelui, Stage3D este de asemenea excelent pentru jocuri 2D, oferind viteze de redare obișnuite de 60fps. Christer a scris, de asemenea, o serie de șase părți tutorial despre construirea unui "shoot-up" 2D folosind Stage3D - primele trei părți sunt total libere!

Dacă doriți să continuați acest lucru, căutați Starling Framework, o bibliotecă special concepută pentru dezvoltarea jocului 2D, oferindu-vă puterea de redare Stage3D fără a trebui să atingeți însuși Stage3D. Thibault Imbert a scris o introducere și o mare carte electronică pentru cadru - ambele fiind gratuite!

Dezvoltare mobilă și tabletă

După cum am menționat la începutul acestui articol, Flash nu te limitează la dezvoltarea browserului - poți să faci jocuri care rulează ca aplicații native pentru iPhone, Android sau BlackBerry și chiar să le vândă pe diferite magazine de aplicații.

De fapt, obținerea jocului dvs. pentru a exporta în format de aplicație nativă nu este deosebit de dificilă - doar Google [flashdevelop android] sau [fdt ios] sau oricare altă combinație de instrumente și platformă este potrivită pentru a obține cele mai recente instrucțiuni.

Ce este mai greu este optimizarea jocului pentru o altă platformă și utilizarea funcțiilor hardware precum accelerometrul și ecranul tactil. Vă recomandăm dezvoltarea Flash pentru cartea de bucate Android și cartea de bucate Flash iOS Apps pentru acest lucru, însoțită de citirea regulată a site-ului nostru sursă Mobiletuts + pentru a afla despre proiectarea interfeței mobile.

Diverse

Sunt mai multe biblioteci în care pot intra - cum ar fi Box2D, GreenSock și MinimalComps - dar trebuie să mă opresc undeva.

Voi încheia lista cu câteva site-uri web pentru dezvoltatorii de jocuri Flash:

  • Adobe Gaming
  • FGL
  • gotoAndLearn.com
  • Playtomic
  • Mochi Media
  • AS3 Game Gears
  • Joc flash Dojo

Știu doar că am pierdut câteva site-uri excelente din lista respectivă. Vă rugăm să lăsați un comentariu dacă credeți că merită să fie adăugat ceva!


Faceți jocuri

Am spus acest lucru în ghidul XNA, și o voi spune din nou aici. Când începeți, nu faceți ceva complex ca un MMO sau ceva care necesită cantități uriașe de artă și poveste ca un RPG. Începeți cu ceva simplu, pentru a vă putea extinde mai târziu.

De exemplu: un singur joc de buton cum ar fi Canabalt ar putea fi extins pentru a crea un platformer; o clona Pong ar putea fi transformată într-un joc de rupere cu cărămizi cu nivele multiple; un joc de avoider ar putea deveni o clona de invadatori ai spațiului și apoi un "shoot-up-up".

Nu vă faceți griji cu privire la învățarea tehnicilor avansate de programare încă; veți avea timp să vă ocupați de modelele de design și de arhitectura generală a codurilor mai târziu. Concentrați-vă pe finalizarea unor jocuri, chiar dacă primele dvs. vor fi mici.


Multe mulțumiri lui Djordje Radakovic, Matt Barker, Joseph Burchett, Will Blanton și John Cotterell pentru ajutorul acordat în acest ghid!

Dacă aveți sugestii pentru resursele de învățare Flash și AS3 pe care le-am pierdut, vă rugăm să ne anunțați în comentarii.