sâmbătă, 25 aprilie 2015

OpenFrameworks. Unde face de folosit și unde nu prea.

Wow! Au trecut aproape 2 ani de la ultima mea postare. Nu am postat nimic atâta timp, fiindcă nu am avut teme de postare, timp și uneori nici dorință. Azi am decis până la urmă să mai scriu ceva. :)

OpenFrameworks

Ultima dată eu am postat despre primul joc făcut în C++ și OpenGL (vezi aici). După aceea am încercat un framework foarte comod pentru a desena rapid ceva pe ecran. Acest framework se numește OpenFrameworks. După părerea mea este foarte comodă pentru cei care iubesc să folosească C++ și dorește să facă ceva interactiv pe ecran. OF nu este doar pentru grafică, acesta are multe alte funcții ca rularea coloanelor sonore, extragerea spectrului coloanei sonore, poate comunica cu Arduino, sau cu orice alt dispozitiv care comunică prin porturi seriale, multe utilități pentru accesarea unei pagini HTTP, citirea și scrierea fișierelor, înregistrarea și rularea fișierelor video ș.a. Și asta nu este totul. OF are o comunitatea destul de mare care e gata să ajute pe oricine. La fel sunt și o mulțime de tot felul de addon-uri pentru OF făcute de comunitate.
Eu am folosit acest framework anul trecut cu gândul că voi încerca să fac un joc folosind acel framework. Pentru a studia cât mai bine acest framework, am început să portez proiectul FABE. Portarea a fost destul de simplu de făcut, fiindcă OF are un cod destul de flexibil și are toate abstracțiile necesare pentru a ușura programarea grafică. Deci am portat meniul principal și mergea destul de bine, dar așa și nu am mai terminat de portat întregul joc. Primul motiv a fost că după terminarea portării meniului principal deja am avut toate cunoștințele necesare pentru a începe liniștit un proiect nou folosind OF, iar al doilea motiv a fost plictisirea mea cu FABE. Eu am pierdut orice interes în rescrierea acestui joc, sau întreținerea acestuia (poate cândva voi explica de ce).

Unde face de folosit?

OF se poate de folosit aproape la orice proiect care necesită ceva interactivitate audio-vizuală. Se poate de conectat cu vreun dispozitiv făcut de tine și să trimiți printr-un port serial datele la OF, apoi de făcut ceva grafic interesant care reacționează de la acel dispozitiv. Poți folosi si pentru a face jocuri video, deoarece că OF este un framework flexibil și se poate de folosit și pentru aceasta. Este foarte bun pentru a înțelege cum se face grafica în aplicații, cum grafica poate interacționa cu sunetele și alte chestii care-ți vin în cap. :)

Unde nu face de folosit?

Peste tot unde nu are sens de făcut ceva interactiv și la proiecte mari. OF e foarte bun pentru proiecte mici și pentru tot felul de experimente interesante, însă pentru ceva mai serios nu recomand deloc. Dacă dorești să faci ceva ce ai dori să arunci pe piață, atunci OF nu este alegerea bună. La fel dacă dorești să faci un joc, dar nu dorești să reinventezi roata atunci OF nu este alegerea potrivită. Și dacă dorești să faci o bombă nucleară, iar din OF să-i dai foc, atunci OF nu este alegerea potrivită. :)

Cu alte cuvinte, OF e bun pentru proiecte personale, pentru a te lăuda cuiva ce chestii frumoase și stranii poți face în C++ și pentru a studia grafica pe calculator, fiindcă abstractizează destul de bine lucrurile strașnice a lui OpenGL. :)