Back to reality and a new tool?

Okay, enough of the silly eBay stuff. I deleted that as it really wasn’t necessary. Really just me ranting. So back to Sims stuff. After all, this is a Sims site right?

I wanted to do a little dance here on changing things in The Sims, like adding animations or changing values in objects. I mentioned a couple of days ago that there is no tool to do this. That’s still correct (to a point) but I wanted to explain the difference between hex editing objects or using 3rd party software vs using something like I produce. There’s a difference and it is signifigant.

So first, how would someone get new animations or something into the game? Well, unless you’re pretty experienced with the IFF file formats and a good hex editor, understanding how hex math works and have the tools to do it, it’s just not something the average user can do. Hex editing files is not like writing a text file or something. There are certain rules and the data isn’t normally presented in a user-friendly way. Yes, there are some UI friendly programs out there but generally you’re looking at a bunch of bytes ranging from A-E and 0-9 and most of it doesn’t make sense. Also if you’re not familiar with how files are put together, again you’ll probably be a little lost. I’m not saying nobody can do it or it’s reserved for the “elite”, it’s just not everyone’s cup of tea and not completely intuitve. Your milage may vary.

Now with all of the 3rd party apps out there, they range from glorified hex editors (where the programmers do the hex editing for you behind the scenes) to ones where the authors have taken the time to figure out the file structures and created their own structures around these findings and program against them. In other words, they think they know what this offset in that file does, have recorded it in a structure and everytime they open a file to edit they use this structure. That way, as long as the original structure is sound, everytime they open the file it passes through some common tests each time and the program isn’t just randomly trying to figure things out on the fly. Essentially a file, say an IFF file, is just a bunch of bytes and these bytes follow some rules about them. For example, the header of every single IFF file ever created (well, every valid IFF file) is always 64 bytes and contains some static text that never changes (“IFF FILE…”). Guaranteed. So a programmer would create a structure for an IFF file and part of reading the file would be looking past this header to the actual data. Using these structures, they do it the same way everytime which makes their programs stable.

So what’s the difference between what I do and the rest of world? Not much essentially, except that under an NDA with Maxis they provided me with information about these file formats and what all the bits and pieces contain as well as the routines they use to open, close and otherwise mess with files. I’m not going to get into a debate why I have this information and other programmers don’t so lets not go there. Under the covers it’s basically file structures driving the whole thing, however Maxis has tons of code to handle errors, do some basic checking already and other things it sets up for accessing these files. This is the result of years of development on their part and given enough time, 3rd party file structures might meet or surpass these type of checks and balances. So when one of my programs opens up or modifies a file, it does so the same way The Sims or Transmogrifier does. If Tmog can’t handle a certain file, chances are blueprint won’t either. It has it’s pros and cons. I don’t go in and modify the Maxis code to fix things (usually) so everything is the same and the way things are accessed are the same. This makes it easier for me to concentrate on the features of the programs rather than the underpinnings that drive it. However it can be a bit complicated and I have to follow the rules (and there are a lot of them) that Maxis would if they were writing utilities. Also the difference between say my Object Editor and another persons would be that I don’t really know (in some cases) what’s actually going on under the covers. This is the main reason why I get stuck when some programmers ask me what this structure does or what the 158th byte of an IFF file represents. In most cases, I don’t know.

So hopefully that might explain a few things about how stuff works. Maybe not, but hey, it’s a nice meaty news post. So onto a new tool? On the TSR forums and my own forums, someone mentioned writing a program that would catagorize objects based on “buzzwords” in the object name or description. Essentially it would run through all your objects and if it found “Bed” in the name or description, it would catalog it into the Bedroom section (as well as doing any Hot Date organizing if HD was installed). Seemed like a good idea and pretty much what Shotgun might do, if it was to take some different steps in processing files. So I spun off a new project from the Shotgun framework and started on this.

Buzzword

The program would search pre-HD objects for certain “buzzwords” such as “Bed” or “Chair” and categorize them into that category! Mainly it would check the objd sections (names) but it could also check the catalog description.

Options include:

-Flagging pre-HD objects and/or HD objects

-Multiple buzzwords to refine your search

-Search results displayed while the application looks for things

-Looks in names and descriptions

-Drop down catagory list based on your current version of The Sims

-Optionally confirm each object or globally to move into groups

-Optionally sets the downtown and visibility flags

Yup, more stuff added to the blueprint plate. This one will be released to the public so no beta testing here, just my own. Obviously it’ll be tested for problems but it’s my little pre-blueprint gift to you guys. Hopefully you’ll find it useful. I’ll put it up on the site soon and feel free to continue to make suggestions in the forums on new programs or enhancements to old ones. I’m always looking to better things in life.