Programiranje engine-a je jedna stvar, a programiranje igara (i koriscenje napravljenog engine-a) druga... bar koliko mi se cini :) U engine-u (bar u ovom sto pokusavam da napravim) se nalaze klase, tipovi, funkcije... itd koje posle mozes da koristis za pravljenje nekoliko razlicitih igara. Quake engine je recimo koristen i za pravljenje jedne fudbalske igre (fudbal i Quake... hehe, bas imaju puno zajednickog) tako da ti engine dodje nekako kao pomoc pri pravljenju igre jer ne treba da se zezas sa mnogim stvarima jer on to radi umesto tebe. Na primer kada se ucitava mesh u slucaju ove nase male igre automatski se ucitava i textura, postavlja difuse boja, kada iscrtavas mesh dovoljno je da kazes mesh->DrawMesh i on ce se iscrtati i slicno. Dakle... u engine-u isprogramiras sve sto mislis da ce ti trebati u igrama koje pravis, od ucitavanja i snimanja fajlova, grafike, zvuka, prikazivanje svega na ekranu do fizike. Na kraju bi mogao da imas recimo engine koji moze da iz fajla ucita podatke o teniskoj loptici (izgled, elasticnost, zvuk koji treba da se cuje prilikom dodire lopte sa drugim stvarima i slicno) da dodas silu gravitacije, postavis loptu negde u vazduhu i pustis engine da radi svoje i lopta ce skakati. Sve u svemu... zeznuto je napraviti i engine, a i igru kada vec imas engine :)
Kod mene je najveci problem ne znanje... ne znanje DirectX-a, ne znanje C++-a, ne znanje nicega :)