S obzirom na sve češću pojavu novih poruka u kojima ljudi preko noći prave "engine", pišu "shader"-e sl. ne bi bilo loše da se osvrnemo na neke osnovne termine i njihovo značenje.
GAME ENGINE:
Citat:
A game engine is the core software component of a computer or video game or other interactive application with real-time graphics. It provides the underlying technologies, simplifies development, and often enables the game to run on multiple platforms such as game consoles and desktop operating systems such as Linux, Mac OS X and Microsoft Windows. The core functionality typically provided by a game engine includes a rendering engine (“renderer”) for 2D or 3D graphics, a physics engine or collision detection, sound, scripting, animation, artificial intelligence, networking, and a scene graph.
|
Citat:
Most often, 3D engines or the rendering systems in game engines are built upon a graphics API such as Direct3D or OpenGL which provides a software abstraction of the GPU or video card. Low-level libraries such as DirectX, SDL, and OpenAL are also commonly used in games as they provide hardware-independent access to other computer hardware such as input devices (mouse, keyboard, and joystick), network cards, and sound cards. Before hardware-accelerated 3D graphics, software renderers had been used.
|
Ono što se u navedenom citatu ne vidi je bitna karakterisitka da
game engine preuzima menadžersku ulogu između programera sa jedne strane i hardvera sa drgue. Na primeru komponente koja se bavi grafikom to ne znači da je zadužena samo za iscrtavanje oblika na ekranu, već i za njihovo efikasno manipulisanje. To podrazumeva upravljanje memorijom, sortiranje po raznim kriterijumima kako bi se prilagodili specifičnosti GPUa i omogućili brži rendering i sl. Trivijalan primer je da programer zadaje
3D engine-u poligone za rendering, a da ih on prvo smešta u buffer (u zavisnosti od memorije) i potom sortira prema transformacionim matricama ili teksturama kako bi smanjio broj potrebnog resetovanja GPU u jednom ciklusu i tek onda renderuje.
Dakle, grupa funkcija za iscrtavanje objekata na ekranu
NIJE game engine. Čak teško da može da prođe i kao
wrapper.