Dusty3D, I'm sorry for my poor knowledge of English. I think, I canot say something new for you, that text is for a 3DGS newcomers...
I'll prepare new demo projects further to show this.
replaceable artwork packages:Example1: you're making some kind of "skinned" UI for your application with ability to change skin at runtime. Prepare sets of images for your panels and make packages for each skin("skin1.gsr", skin2.gsr, for example). To change look and feel at runtime you need:
Code:
//code may contain errors, threat it as pseudo-code
...
/*
** skin packages contain image files with same names but
** differently looking
*/
string CurrentSkin;
function change_skin(skin){
ui_pan.visible = off;
pan_remove(ui_pan);
CR_UnLoadAll(CurrentSkin, On);
CR_Close(CurrentSkin, On);
str_cpy(CurrentSkin, skin);
CR_Open(CurrentSkin, On);
CR_LoadAll(CurrentSkin, On);
ui_pan = pan_create("
pos_x = 0; pos_y = 0;layer = 1;
bmap = \"late.pcx\";
button = 135,120,\"helpon.pcx\",\"help.pcx\",\"helpovr.pcx\",help,NULL,NULL;
button = 135,165,\"starton.pcx\",\"start.pcx\",\"startovr.pcx\",start,NULL,NULL;
button = 135,205,\"quiton.pcx\",\"quit.pcx\",\"quitovr.pcx\",quit,NULL,NULL;");
ui_pan.visible = on;
}
...
change_skin("skin1.gsr"); //set skin1 for UI
...
change_skin("skin1.gsr"); //later change to skin2
Example2: you're making application with ability to plug downloadable addons (some kind of 3D editor, for example). Prepare sets of models (images and so on) and compress them in different packages "furniture.gsr", "walls.gsr", "frames.gsr", "doors.gsr", for example). At runtime check for available packages and open them all. To plug in new models set, your customer have to download it and place into application's folder.
Example3: you're making applications that can dynamically change "resolution" (I mean, quality of textures, models, etc.). Prepare models (images,...) with same names but with different quality and compress them into different packages ("res_1.gsr", "res_2.gsr", for example). At runtime check for available package file by name and open it before creating models (bmaps, loading levels and so on).
"Trojan horse" gifts:Example1: you want to make a gift for a player after level completed (for example: nice wallpapers with your game's shots or something else). Place that "secret" files in a package and when condition will met - extract them and inform player about this great thing.
Example2: you want to hide small puzzle game and present it to a gamer after 5 hours of play (some kind of "WOW" factor). Place installer into a package and extract it after 5 hours of execution. Ask user something like: "You are my hero, after all this hard hours you win small gift: 'Super Puzzle Maniac'. Do you want to install? Y/N" and execute installer.
These are first that comes to my mind and yes, you may do it without CR Pack. But CR Pack can help you do it faster, I hope.