esp, for other games can be difficult its best to understand transformations and how player data is generally stored
and you are correct if you can manipulate the ingame hud it would be better ,BUT you are limited to how they programmed it obviously
but once able to make esp , aimbot comes naturally hell usally b4 the esp xD
Code:
pDevice->GetTransform(D3DTS_VIEW, &view);
::D3DXMatrixInverse(&iView,0,&view);
::D3DXVec3Subtract(&fDist,&Target->pObj->Origin,&D3DXVECTOR3(iView._41,iView._42,iView._43));
va.x = (float)atan2(-fDist.y, sqrt(fDist.x*fDist.x+fDist.z*fDist.z));
va.y = (float)atan2(fDist.x, fDist.z);
ive done it for various games
ca,cf,sa, bf2,bfbc2,wot,halo,cod,OB,graw,PB,op7 ....... etc
all that changes is how player data/transformations are stored and viewangles