1. I've never developed software before.2. I've never programmed in the C language before. I did have some training courses on C# and C++ in Microsoft Visual Studio, but this did not output an executable.3. I've never made development tools before. As I see it this is the true mark of a game development programmer. XL2 and Jo made the development tools.4. I have had experience working in Unreal Engine, Torque, CryEngine, and TRIBES before as either making simple mods or making maps. Never finished anything but relatively simple maps.5. My 3D modelling experience comes from making 3D printed objects, such as detailed figurines or mechanical objects. Like, for instance, an entire computer case.That is a vastly different field because there one is required to make a manifold object. Video games carry no such requirement and often non-manifold objects consume less polygons.

6. As far as what game to make, my philosophy is what I can program is what should define what I can and will make.Following that, I am going to do testing as far as I can until I feel as if I have programmed enough mechanics to make a satisfactory video game.

In stumbling about with true box-to-box collision detection (rather than only points), I stumbled on an alternate way to test a point against a normal.It's helpful to share this, because it's basically 16-bit.

Sint32 pt_col_plane(Sint16 planept[XYZ], Sint16 ptoffset[XYZ], Sint16 normal[XYZ], Sint16 offset[XYZ]){ //Using a NORMAL OF A PLANE which is also a POINT ON THE PLANE and checking IF A POINT IS ON THAT PLANE

//the DIFFERENCE between a POSSIBLE POINT ON THE PLANE, and a KNOWN POINT ON THE PLANE, must use the REAL POSITION of the NORMAL POINT. Sint16 pNn[XYZ] = {realNormal[X] - realpt[X], realNormal[Y] - realpt[Y], realNormal[Z] - realpt[Z]};

//The NORMAL of the plane has NO REAL POSITION. it is FROM ORIGIN. We use the normal here. //If the dot product here is zero, the point lies on the plane. //The dot product being negative or positive can be used to determine whether the point has passed the plane. Sint32 dot; dot = vectori_dot(pNn, normal);

return dot;}

If you're wondering what else I would use, its separating axis theorem, which while simple to explain is much more verbose in code so I'll not go into that much more.