Allegro je dobar za zajebanciju, ali, ako već hoćeš da se profesionalno baviš programiranjem grafike, evo mojih savijeta:
- Predlažem ti da kreneš sa učenjem SDL-a i dvodimenzionalne grafike, pre svega zato što je 2D matematika lakša od 3D matematike. Već sam rekao, SDL možeš fino da naučiš iz knjige Programming Linux Games. Kad prostudiraš tu knjigu predlažem ti da pređeš na OpenGL
- Kod učenja OpenGL-a ja bih imao ovakav plan: uzeo bih ovu knjigu (i jesam :) )
http://www.only4gurus.com/v3/preview.asp?ID=6994 to je OpenGL redbook, ištampao bih je u nekoj lokalnoj fotokopirnici/štampariji i za sitne pare dobio najbolju knjigu za učenje 3d-a. Ta knjiga ne koristi SDL, umjesto njega, za otvaranje prozora koristi GLUT. Možda ti se učini da je učenje GLUT-a trošenje vremena, to nije tako, glut je je jednostavan a veći dio knjige govori o samom OpenGL-u i GLU (pomoćni dio za opengl), tako da ćeš znanje iz ove knjige moći da ukomponuješ u SDL. Sa ove dvije tehnike možeš da praviš igre - npr, SDL koristiš za muziku, za meni igre, za interfejs i ostalo što je 2d, a OpenGL koristiš za 3d scene tj samu igru. U ovoj knjizi, nisu obrađeni Pixel i Vertex shaderi kao i Enviroment i Bump mapping. Za te stvari postoje tutoriali a možda i neke, ipak teškodostupne, knjige. Ali to su ipak "samo" efekti, sve u svoje vrijeme.
- Eh, kod učenja 3D-a važna je matematika. Za svaki slučaj preporučujem knjigu Visual Basic 5 : Programming Graphic , autor Rod Stephens - ova knjiga, iako pisana za stari Vb, može se naći polovno i to preveden na srpskom jeziku. U njoj su objašnjene matrice za transformaciju, skaliranje, rotaciju, rotaciju oko arbitražne linije i rotaciju po arbitražnoj pravoj. Ima tu i objašnjena HiperKocka i još mnogo MNOGO zanimljivih stvari, bez kojih, znanje jednog 3d programera ima "rupu" ;)
- još malo diskusije u vezi pitanja da li trebaš odmah da ideš na 3d grafiku... vektorsku kako je još možemo nazvati. Pa, možeš i to, ali, nekako je bolje da prvo naučiš SDL. Ipak je 2D lakši i tako ćeš postepeno da učiš etc. I onda kad budeš genijalac za 2D igre - baciš se na ovu opengl knjigu i cool. Profesionalac.
- još jedna sitnica u vezi allegra. Koliko znam i dan danas allegro nema hadrware akceleraciju. Dalje, allegro je sigurno barem dva puta lakši od SDL-a. Ali, allegro je ipak samo za "igrice". Po meni, allegro je kao QBasic :) Ipak, neću da prećutim, za allegro postoji mnogo dodataka, za interfejs, za ovo za ono, pa čak i za opengl! Ali, brajko, nema tu da se priča - niko te neće zaposliti kao allegro programera
------------------- DIRECTX -------------------
DirectX je proizvod micro$ofta i ono, ima snage, što jest jest. Ali ja kao tvrdokoran opensorsaš nikad nebih uzeo directx pod ruke. Nope. Nek se nosi. U prethodnoj poruci sam naveo šta sve to nudi OpenGL i koje igre koriste opengl tako da je neki afinitet prema direcx-u ne opravdan. Da te ohrabrim, danas u svijetu, sve igre su programski odvojene od "engine-a". Dakle, kad se neka igra pravi, npr TonyHawk Pro Scater - project dizajneri prvo dijele igru na dijelove, pakete, menadžeri računaju vrijeme rada, procijenjuju broj linija codea i računaju "koliko rapa za to treba". Kad je plan crno na bijelo, gotov - prelazi se na rad. Uglavnom, ono što sam htio da naglasim jeste da tebe prvenstveno, koliko vidim, interesuje pravljenje ENGINE-a igre. To je dio igre za "crtanje" po ekranu. Za izlaz. Ti ćeš taj izlaz da realizuješ pomoću SDL/OpenGL-a. Neka druga ekipa unutar istog projekta će da radi izlaz u DirecX tehnologiji. Neka treća, Nokia NGAGE teh., neki opet tamo PlayStation etc. Tako da, ne možeš da učiš sve, jer ko što vidiš ima tih 3d api-ja stotinjak barem.
Ovdje se postavlja pitanje, da li će iko tražiti da njegova igra ima izlaz u opengl tehnologiji? Hoće, i to zato što je OpenGL PORTABILAN za razliku od directx-a (winex tu ne pomaže). OpenGL je jeftiniji za raditi. Ne moraš da kupuješ Windows, niti Visual Studio etc, možeš da radiš na linuxu i gotovo. Zato sam ubijeđen da će uvijek biti posla za opengl programere. Dok će SDL biti potreban, opet po istom šablonu, pre svega radi portabilnosti igre.
Malo sam zapetljo ovo u vezi direcx diskusije ali šta je tu je.
Programeri su odgovorili na Hamletovo pitanje "Biti il ne biti?" :
0x2B | ~0x2B = 0xFF
(kao ono - ff - teško pitanje!)