I think it's about time I introduce my pet project. You'll be happy to note the screenshot to the left is not all there is to it, though it represents the base from which I started. The project shown to the left comes directly from Engel's Beginning Direct3D Game Programming book. It features two ships, both capable of turning left/right, rolling left/right, pitching up/down, and moving forward and backward in three-dimensional space. Even though Engel discusses basic texturing early on, I find it odd that he didn't include any simple textures for the ship objects, just coloring one yellow and the other red. Leaving various enhancements to the reader is, of course, a challenge I willingly took head-on!
Part of why I never get to the later chapters in the book is because I very much enjoy enhancing this basic project. I don't expect it to become a full-fledged game; it's primarily a demo project for my own experimentation, but only time will tell if it becomes something more. The screenshot below displays my updated project, tentatively named SkyCop.
You'll notice from the screenshot the first thing I added was some fancy textures, not only for the ships but also to create a background (more on textures in another post). Additional enhancements include: multiple camera modes, dynamic background switching, multiple enemy ships, a pyramid-shaped target indicator (lower left), speed boost for the primary ship, and custom key configuration.
I plan to provide the code and running executable so you can download and play with it soon. I'm open to constructive criticism, just try not to be too harsh. I am still learning, after all ;)
Next up: Guns, Collisions, Explosions, oh my!
I'd love to swap notes with you on collision detection sometime. I've found it to be one of the more challenging aspects of game programming. I've only worked with OGRE3D for graphics so far, but I've generally relied on it generating bounding volumes for me (either an axis-aligned box or a sphere) and then testing for intersections between those volumes. It's not pixel-perfect but it's efficient.
ReplyDeleteThanks for your comment, Christopher! Unfortunately I don't know enough about collision detection at this point, but I will definitely write some posts as I learn. And I will check out OGRE3D soon!
ReplyDelete