Its offical FFXII has me. I love that game, and it has torn me away from FFXI. current rating 9 out of 10. probably going to hold there.
One thing I've noticed in the game is the lack of advanced texturing. The models are compelexe, but they have no bump mapping. They have specular texturing and very large defuse maps but that is it. But that is all they need. The world is detailed, So increidlby detailed it almost makes you want to cry sometimes, elaborate designs on the wall that don't need to be there, but add so much to the asthetics. It is a fabulous game.
Well I've been working on my engine this weekend. I've given the engine the ability to texture 3d objects and have dropped in a mesh loader. The mesh loader isn't offical since I'm have been deciding what kind of files I want to load. MD2, 3Ds, wavefront obj, etc. The current mesh loader is the MD2 file format and you will see the model in the images I've shown below.
I've had a bit o trouble trying to get things to run properly. my first issue was the MD2 loader itself as that was my first choice of 3d file formats. Since I already had a completed MD2 loader ready it seemed the obvious choice. The first issue was an apparent change in format in the MD2's initial texture type the pcx. seems the pcx that Adobe photoshop loads is not the same pcx used many years ago with the MD2 file. Finally I gave up, the old files work and I can still make TGA and BMP files just fine that load with the engine, and they work just as well with the MD2.
The next question was how am I going to make models to go with my game. I have 3D studio max, and Blender3D. Blender has a direct MD2 exporter, so my idea was to use blender to export to MD2.
Unfortunatly this idea did not work. I ran into some export issues when using blender, I attribute this to the fact I bearly know how to use blender so I moved on...
My second choice was the 3ds file format. 3ds max has the ability to export files to the .3ds file format and I once made a .3ds file parser so this seemed the logical next step.
(note the .3ds file format is not 3ds max's format anylonger. the .max file is the new 3ds max file format)
Funny thing occured while I was trying to get blender to export to MD2. I noticed Blender could export .3ds files and it came to me. Eureka, usually what ever you can export you can import too. sure enough Blender can import .3ds. So the new plan came to me. Use 3D studio max to make models, export them to .3ds then import them to blender and export them to .MD2. Perfect, this would allow me to save some code and just open .MD2 files!
Unfortunatly no. apparently what ever 3ds file 3ds max saves to is not the same 3ds file blender can import.
My origonal idea being to learn the .3ds file format and learn how to break it down and load its data into an MD2 file, this having the unfortunate side effect of adding more code to the engine and more work on my part.
But! yes there are lots of buts to this story. As I found the artical about 3ds file format I had used to make my origional file loader I noticed something I hadn't before. The guy who wrote the artical said he prefered the use of the wavefront object file format because it was a human readable format, meaning that after saving your files to wavefront you can open them in a text editor and see all the information.
With all the export options I had been hunting through in 3ds max I thought that name sounded familier, sure enough as I went back into 3ds I found the exporter to wavefront object. With some optimism I saved a test file and opened it up in notepad. Every thing was clearly labled (at least to anyone who knew what to look for). But there was no animation information, but that got me thinking. what if there are other human readable exporters.
Thats when it caught my eye. ASCII Scene export. Any programmer knows ASCII is a standard system, I saved the file and opened it up in notepad...
It was beautiful. SCENE_FIRSTFRAME 0 and SCENE_FIRSTFRAME 100 which was the number of animation frames in the default 3d studio max environment. I quickly found the MATERIAL_LIST with the texture name of my test cube
the MESH_VERTEX_LIST, MESH_FACE_LIST, MESH_TVERTLIST (Mesh Texture vertex list), MESH_TFACELIST, MESH_NORMALS
and finally... MESH_ANIMATION it was a beautiful site.
So now I still have to make a file parser, but at least I can make it the way I want to make it, and know exactly everything that is going on with in the file. and I can design a file format talored exactly to how I want it to work.