150 likes | 297 Views
OpenSauce - Vidoc. Caveat Emptor!. “OpenSauce”, Wut iz dis?. Collection of Open Source solutions Solutions which extend games/software for benefiting End Users and increasing their enjoyment while using them Currently targeting various Halo engines. I C Wut U Did Thar.
E N D
OpenSauce - Vidoc Caveat Emptor!
“OpenSauce”, Wut iz dis? • Collection of Open Source solutions • Solutions which extend games/software for benefiting End Users and increasing their enjoyment while using them • Currently targeting various Halo engines
I C Wut U Did Thar • Solution highlight of this presentation • OpenSauce's Halo1 “Yelo” • Array of code bases for engine extensions of games and their tools • Engine: Halo Custom Edition • Tools: Halo Editing Kit
The gap from 2003 to 2010 • Stronger: Memory • Better: software technology • Faster: CPU
Cooking the Sauce: Ingredients • Three limiting categories: • Tag based (development) • Cache file (run-time) • Game Memory (target-neutral; affects both)
Limitations: Tag based • The main limitation areas are in two tag fields: • tag_block • tag_data • Example: Stock HEK only allows up to 16 structure_bsp references in the scenario.
Limitations: Cache files • Multiple areas; most notable: max file size • Variable based on input-scenario’s type • Tag memory buffer. Consumes a small portion of that file size. • Data files (ie, bitmaps.map) are read-only, can’t add more information. • They’re also highlanders of their respected data; there can be only one (data file)!
Limitations: Cache files (caveat) • Tag memory buffer broken into two sections: global and structure_bsp. • Global section consumes all tags that are not a structure_bsp. • The structure_bsp section is for any and all tags of said type. • Size determined by THE largest structure_bsp, then subtracted from the tag memory, leaving what ever is left over to the global section.
Limitations: Game Memory • Two types to consider when dealing with game memory: • Run-time: Memory allocated by the program and/or its code. • Example: engine’s scripting definitions • Game-state: Memory allocated by the engine for running the simulation • Object memory • Player memory • Script thread states • etc
Cooking the Sauce: Hungry yet? • Remember the aforementioned limitations? • Yes, they’re addressable. You don’t have to fear their restrictions
Cooking the Sauce: I’m starving! • Enzyte would have you believe that Size does matter • …but so does quantity and variety
Cooking the Sauce: Is it done yet? • Data files. • bitmaps.map • sound.map • loc.map
Cooking the Sauce: Smells done… • Data files • “Mod sets” • Based on original data files • What does this mean for the modder?
Cooking the Sauce: Open Wide • Data file “Mod sets” • Defined on a per-mod basis • Multiple maps in the mod benefit from usage • All stock maps continue to work
Cooking the Sauce: Spaghetti Code • Just the beginning