The main reason for the last six months worth of work in developing a 2D sprite wrapper for Direct3D was always (and my journal proves this) to make myself feel like I had enough of a handle on the nuts and bolts of Direct3D to be able to start to explore the actual 3D graphics stuff without getting bogged down in setting up devices and all that sort of thing.
I've successfully implemented a roll-my-own sprite library that includes dynamic texture atlasing, reliably recovering from lost devices, using alpha channels and diffuse colours for a variety of effects, dealing with arbitrary sprite rotations and generally surpassing everything I could do with DirectDraw in the olden days.
Enough is enough. I can write Mario clones until I am blue in the face but I have to touch base here and remember that 3D graphics was always the stated intention.
So I've just ordered a book I've had a chance to have a flick though - namely "An Introduction to 3D Game Programming With DirectX 9.0" - via the marvellous Amazon.
I need a physical book. All the internet resources in the world are not, for me, a substitute for reading in bed, reading in the bath and reading on the toilet. I learned C and C++ by basically demolishing a copy of Deitel&Deitel and will never move forward until I can demolish a book on 3D graphics.
So by this time next week, I should be furnished with a book that starts with a chapter that primes me on all the maths I never learned, then refreshes me on the stuff I've been learning this year and last such as devices, index and vertex buffers, then moves me on to meshes, camera classes and heightmaps.
The book doesn't touch on AI, pathfinding or physics which is good. I've had a lot of experience of books which claim to cover all sorts of nonsense that they actually skim over to the point where you wonder whether trading standards should be involved. The book I've ordered appears to be nicely focused on exactly all I want for now and I hope it works out.
In a way, I think I'll do okay. I seem to see a lot of people around here who have plunged straight into 3D stuff and while their understanding of that obviously surpasses mine, they seem to hit a bit of a brick wall when it comes to pure C++ theory, data structures, bug-finding and all the other non-3D parts of programming that I have been cutting my teeth on for the last ten years or more.
I now feel quite honestly that aside from the uber-advanced stuff like 3D pathfinding and artificial intelligence, I now just need to learn about 3D graphics before I can move on to what I want. I already have a basic understanding of index and vertex buffers and I hope I can rise to the challenge of the vector math.
I would never have got to the point where I felt I could take this plunge without the last (nearly a) year of participating in GameDev. I hope that the act of ordering this book is a real turning point and I look forward to seeing where I am this time in 2008.