Porkholt SDK este o platforma completa de dezvoltare de aplicatii grafice ce permite programatorului sa creeze jocuri si nu numai 2D sau 3D (suport preliminar. o mare parte a muncii e facuta) , bazata pe OpenGL si care functioneaza pe Mac OS X, iOS, Linux, Linux-ARM, FreeBSD si in curand si Android. Poate si Windows. Poate… Porkholt SDK ofera API-uri atat high-level pentru manipularea de obiecte, efecte, animatii, scripting si sunet, dar si API-uri low-level (dar orientate pe obiecte si user-friendly) pentru manipularea de texturi, shadere, shader parameters, vertex buffer objects, vertex array objects, frame buffer objects, opengl states si elemente de geometrie analitica (vectori, matrici, quaternions, etc..). Printre feature-urile SDK-ului se numara: - OpenGL Version agnostic. merge pe GL 2.x GL 3.x, GL ES 1.1 (fara shadere, bineinteles), GL ES 2.0. engine-ul foloseste un sistem de detectare si incarcare la runtime a extensiilor si API-urilor OpenGL (similar si inspirat din GLEW) - sistem modular pentru combinarea tehnicilor de shading, camerelor, dar si amplasarii obiectelor 2D si 3D - suport pentru timing si timere, threading, task scheduling, event pools, toate OS-agnostice. - paradigmele unui sistem de UI widgets, gen Cocoa, aduse in industria jocurilor - sprite-uri non-dreptunghice, curbe Bezier - particle effects - input multitouch - sistem de animatii universal si usor de folosit. practic orice clasa (fie ea obiect, view, 3D body sau ponei roz) poate fi animata in functie de pozitie, rotatie, etc. TO DO: extind lucrul acesta la o animatie tag-based, astfel incat orice sa poata fi animat (incluzand, de exemplu, pitch-ul sau gainul unui sunet) - sistem de sunet bazat pe OpenAL (deci cu 3D spatial positioning) cu suport de buffering asincron non-greedy si sistem de decoder plugins. - sistem de windowing crossplatform similar cu GLUT care suporta schimbat rezolutii, window resizing, input, vsync, etc. - o groaza de functii ajutatoare pentru integrarea mai usoara a unui context de scripting de Lua (limbaj de scripting foarte rapid si lightweight, folosit pe scara larga in industria jocurilor) - abstractizare la nivel de fisiere pentru a permite transparenta la resource loading (de exemplu, nu imi pasa daca am resursele intr-un fisier, arhiva sau, in cazul Android, APK (care e de fapt un zip), atata timp cat implementez o clasa care deschide arhive) - sistem de proiecte IDE si OS -agnostic bazat pe cmake Pe scurt, XNA + Cocoa + Cocos2D + Unity (intr-o anumita masura), totul in C++ si cross-platform.