I have this book called
"The Complete Works of Final Fantasy" It was written by Hironobu Sakaguchi and gives some real good insight into how Final Fantasy works. That and also some snippis of code and some stories from my old contact from square, I can put togeather how FF7 was made.
After the story is written, the whole game is put out onto a storyboard. Then each and every scene is sketched out and the dialoge is attached to it. Let's take a look at the bery beginning of the game, as this has every single part of the engine in it. Here's a review.
You start the game, and you are treated to a little moviewith music, you see areith, pan back, long shot from the left, she turns, and starts walking. Pan out to the street, up and out, pan, pan, pan, pan, then the logo comes in on time with the music, pan in, pan in, train, pan in, train, pan in and you see the guards the train pulls in, stops, the good guys come out fihgt, cloud comes out last, barret turns, "'come on newcommer, come with me" he runs off. You follow. two guards come out, fight, then to the next screen, some dialog, you name youself, jessie open the door. Another movie pan, and you go forth.
I know this is long-winded but let me tell you what's going on behind the scenes.
You start at the title screen, with the sword, and select new game. Now the title screen is "outside" the main engine. When you start the game the loads the first "field" file. The field file (who's name escapes me for the moment) is really a script that the engine uses to tell the story, not just the speech but what the characters do.
The first field files tells the engine that it needs to load the opening theme, opening movie, the first poly cam pan for the guards, the npc models, the character models, the solders, the bone movement, background, and the speech script.
The field file starts the music and streames the movie. Now all the dependncies are loaded into memory, and the CD-ROM is busy so don't count on it loading anything. Now on the PSX version, when the camera is panning in and you can see the train below coming into the station, the color depth drops from 24 bit color to 15. The cam file is then started and the guards are placed on the "ground" ontop of the movie in every frame. As the train comes to a stop at the very last frame, it is replaced by a static "field background" made up of two layers of 128x128 square blocks. (or is it 32x32) the lower layer is the "ground" and the ipper layer is theing that the character can be obcured by.
The scene acts out using a script in the field dir of that moves the characters and the barrett says his dialog. WHen you move you hit a trigger in the field file that makes the guards come out. There is a fight.
AFter the battle the computer loads a *deffernt* field file. This one has no script and and exit to *another* field file.
Upon exitin the first screen the old fild file(s) get dumped and new data is loaded. Now bacground, new characters, the door that jessie opens, another cam file for the pan behind cloud, and another movie is readied to be streamed. (because it's with polys it's 15 bit) You talk to the right people, certian triggers are trpped to make them say things, and to change your names. then the script follows through by moving the door, everyone running through, and then the movie sreams with the cam overlay. cloud runs off and aonther field file is loaded in the nex scene.
Every field file has a scene in it (Think about it) each field file points to another and togeather the script makes a story. crack the field file format, and you have a new game.
***** The debug rooms *****
This thing is a huge field loader. This is where you test your fields after they have been compiled, and also test each aspect of the engine. The trigger room (The one with the big airith) the cam room (The one with the people lineed up in a square so you can see the camera axis during the movie) and the battle room with the monsers with exactly 10,000 (1000) health and even starts so you can test weapon/armor math so it all works out. If you want to crack the script, crack the debug field files.
I think I've rambeld enough I'm going to bed now.
-Halkun