Almost forgot a few important (and not so important) things. I must be getting senile already…
First, the installer version of SIFBuilder is up and on the software page. This is just the installation version of the same program. No changes but now it puts it into the blueprint directory (and blueprint menu) along with the other blueprint programs and will allow you to uninstall it should the need arise (but we know that won’t happen right??).
Also the developer pages are fixed (some of the links were referring back to my hard drive and not the website DUH!) so just reload the pages if you’re having navigation problems. Also the news archives page is fixed (why didn’t anyone tell me??) so news posts back to my humble beginnings here at SimFreaks is there for your viewing pleasure. It’s been 20 weeks of work on blueprint now (including SimExplorer and other programs/things mixed in there) and I think I’ve come far. Of course, it’s never enough for some people but soon my agony will end and then starts the new process, support!
Whew. Another day and I’m still kicking. I was going to post a new object made with blueprint tonight, but the zbuffer generation still isn’t there 100% so I didn’t want people walking through this object. I’m working on it as I type this (ok, not exactly AS I type this but I have the compiler up and will get back to it once I’m done here). Anyways, I’ll post that as soon as I get it working. It’s also the acid test as to whether or not blueprint is creating a correct object.
I’ve also updated the developers section to start the CMX, SKN, and CFP spec publishing that I’ve been neglecting. If you’re a programmer and want to know how these files are put together or just want to know what’s going on for creating custom meshes (Maxis doesn’t officially support custom CMX files so be careful here) then this is the place to be. I’m about 1/3 of the way through the CMX files and just starting the others. I’ll let you know when that’s complete as I find a few minutes here and there to work on them. Enjoy!
Hi ho. So another day passes and my email continues to grow. I’ve started a thread in the forums about open sourcing SIFBuilder and would like some feedback on it. You can find the thread here. LIke I mentioned yesterday, there’s a toss up of adding IFF functionality to SIFBuilder like extracting the description from it or generating a JPG preview image vs. open sourcing it and letting anyone make modifications to it.
On the blueprint front, work continues as I fix up the 3DS importing and add some other needed features. One thing to note is that I’ve dropped the idea of user definable plug-ins for the moment. The design I had wasn’t very flexible and I was constantly changing it trying to keep up with the needed functionality in the main program, so half my time was just maintaining that syncronicity. So for now I’m just hard-coding the import formats. At some point in the future I will revisit that and create a new SDK that will cover not only importing but being able to write any plug-in for blueprint (for example, a plug-in to build an entire set of stairs or a table based on some user options). I just need to get blueprint out first and then re-think the SDK strategy. That’s it for now.
Okay, so the news post that says Monday below is really from Sunday. Just ignore my rantings and chalk them up to a programmer gone mad. In any case, I’d like to pose a question to you out there in Sims land. SIFBuilder 1.0 is out and might be a useful tool but could it be more useful? One of the things that immediately popped up on my ICQ list was someone wanting to do a German version. That rocks and I’d love to support it. So I was considering releasing the program under the GNU General Public License (in other words, releasing the source code so you could do whatever you want with it including translating it). This does raise a couple of quesitons though. First, I was thinking it might be nice to allow you to pick an IFF file to create a SIF for, and the SIFBuilder would automatically read the IFF to get the name and description for you (it seems silly to me now that you should have to type it in twice). If I added this functionality, it would mean I wouldn’t be able to release the source code (it would mean having to release some of Maxis’ source code and I’m not in a position to do that). So do you want to see that functionality added at the cost of not having the source code to the program? I know this doesn’t mean much to the average user, but someone might want to see how the program is put together (trust me though, it’s a VERY basic program reading the input and spitting out a text file so there’s no magic here). Also the question of releasing the source opens up the issue of having a few derivitave versions out there. The purpose of establishing a standard SIF file format is so they’re all the same and anyone can build a program to read them (say in Perl for displaying on a website, hint, hint). Having variations out there doesn’t help this cause.
On a side note, I noticed that Sim-Heaven has released their own SIF program called SIFPro Suite. I took a look at the output and it really deviates from the standard that we were trying to propose here. I’m not knocking the program as it’s useful, but like I said, the whole point of having the SIF files is not to just inform but to inform in a consistent manner. It’s like having those dang MS tags in HTML that only Internet Explorer can recognize. Oh well. You can check out the SIFPro Suite program here.
Well, it doesn’t rain it pours. Here I was getting something special ready to go up on the site, and my setup program just bombed in a big way. Fine, I’ll send it out via a ZIP file until I can get that worked out. Then of course, blogger, my news service, is down for database updates. So now I’m doing this post manually. Argh.
In any case, here it is. A simple utility called SIFBuilder. It creates a SIF file based on the format that has been discussed in the forums and proposed. A SIF file is just a simple text file (Sims Information File) that describes an object. You, as an object creator, has the choice of whether or not to include in into your ZIP file of your object. There’s no obligation of course, but it’s a nice, easy way to provide information about your object instead of the plain old single IFF file inside a ZIP. The SIFBuilder just allows you to create the file by filling in a few things (click on the image below to see a screenshot). It then just builds the text file for you and you can include this in your ZIP file along with your object. It’s a simple utility as I said so this isn’t rocket science. I welcome your feedback on the program and look forward to seeing new objects out there with SIF files attached to them!
Note: Until I get the install program created and the software page updated, just download the file here.
Just a quick note. I’ll hopefully be getting some new screenshots for you tommorow. Just not enough time today to get them done. Also a small utility coming tommorow so watch for it!
Back on the pet bandwagon again. I finally got some info from Don Hopkins about creating real pets (as opposed to sprite based ones like the infamous pig). Basically it may be possible to create some animals. Certainly biped animals wouldn’t be too much of a problem like a monkey (I can see it now, the Curious George family…) and perhaps a dog, cat or other 4 legged creature but nothing like a snake or something (too bad, I was hoping to create new meshes for Krang and Kodos, the aliens from The Simpsons and have them running about). It’s a faily lengthy procedure as you would have to create the walking and idle animations as well so this is not a 2 hour job. Also, the animation engine makes some assumptions about how characters walk and handles interpolation (generating animations between steps) so there may be problems like turning or navigating uneven ground. As well, special things like a cat jumping up on a ledge or a dog rolling over might be a problem. On the bright side, it’s certainly not impossible but would take a lot of work to make happen and even then it might not be perfect. Anyways, I might revisit it later when blueprint is out of the way. I’ve done some preliminary things like putting meshes from Poser into 3D Studio, creating the bone structure and exporting those as CMX files. I just have to make a new version of SimShow to support this and see how it works. Like I said before, if I make any progress on this I’ll post the results here.
It seems the Edith discussions are starting again and there’s a flood of email about it, mostly by people who are confused over what it is, what it does and why all the hubbub about it? So I thought I’d take a bit to explain everything from what I know to set the record straight.
Every game company relies on some tool to create it’s game content. The usual routine is to rely on 3rd party tools like Adobe PhotoShop and 3D Studio MAX to produce the content but this is rarely enough. 3D Studio by default doesn’t know about Quake levels for example, and PhotoShop images don’t have information about how an object will behave in a game. Also the files produced by these programs isn’t very efficient for use in a game. So a proprietary format is created or adopted for the game files. In The Sims, they created SKN, CMX and CFP files for defining the character meshes. These are generated from 3D Studio (via custrom-written exporters) and put into a format that is focused on the content. IFF files are massive collections of information including the bitmaps for display an image, instructions on how those images are displayed, scripts to handle the interaction of objects within the game, and autonomous routines to keep the objects going on their own (for example keeping track of how old a fish tank is and when it was last cleaned). Obviously no 3rd party program can handle these formats off the shelf so tools are created to handle these formats.
This brings us to Edith. It made perfect sense to build into the game the ability to create, edit and otherwise mess with objects. After all, if you have the game environment running you have all the tools at your disposal to access your game objects (if the game can’t display/manipulate them then you need to rework your design!). So the evolution of a set of tools (dialogs and code to support them really) embedded into the game was created and eventually became Edith (after going through a few name and platform changes). What is Edith? It’s the tool that is added to the game that allows for complete manipuation of objects, characters and environments in the game. The Sims objects all have what Maxis calls SimAntics code in them. Instructions telling them to turn on or run an animation. These are the behaviours of the objects and are edited using the Edith tool. Edith really isn’t a separate tool like PhotoShop, but an integrated development environment that is embedded into a copy of The Sims (creating a new executable that is The Sims+Edith or SIMSE.EXE). A developer who wants to manipulate an object or test a character animation in the game can use the dialogs that Edith provides to step through, debug and create new SimAntics code (or tweak the existing code), always streamlining an object until it meets the requirements of what it was supposed to do.
So that’s basically it in a nutshell. There exists a lot of speculation and controversy about Edith and if Maxis will release it but I’ll leave that topic alone since nobody can say for certain what the future holds. The current ideaology from Maxis is that they are keeping Edith in-house and not planning any public releases (as far as I know but I could be wrong). One more point is that of new objects. You cannot (from what I know) just startup Edith and say “I’d like to create a brand new object please” and press a button and voila it spews out a new object. A Sims Object is made up of not only the images to display it but the code to drive it and the supporting functions that help it be real in the game. These are generally done outside of Edith, using a template or dummy object to start the ball rolling. Images are added to the object, character animations are created and linked to it and the object is brought into Edith/The Sims to edit properties (like hunger values). So it’s an involved process that brings together many tools and files to make it happen. The goal of blueprint is to reduce the tools you need and complexity but there are some caveats to this like having to clone from an existing object and not being able to edit EVERYTHING about an object. For the most part though, bp will allow you to change what you need. Of course, there’s always the future…
Hi guys. Okay, back to blue. I have everything from the main program hooked up to all the dialogs and edit screens now. It’s a necessary evil with programming that you spend 50% of your time writing code to support the UI. You need to make sure when the user leaves an edit field that you grab the data entered, validate it, update the object, whatever and carry on. This has to be done for everything and it’s just time consuming. What it provides to you is a near idiot proof way of editing values or manipulating objects in the program. Otherwise, it would be a big screen with no buttons and you’d have to figure it all out yourself. A program like blueprint needs to provide visual feedback as to what you’re doing or else you don’t know what’s going on (like if an object goes offscreen, just because you can’t see it doesn’t mean it’s not there). In any case, all that’s done now so I’m in the final stretch with regards to making sure the objects are exporting, the sprites are updating correctly and everything is working end-to-end.
As you may (or may not) have noticed, the recent screenshots of the program bear little resemblance to the tutorial that’s online. Thats one of the reasons why I’ve held back on doing more tutorials and releasing interim versions. Things have been in a state of flux so I didn’t want to have to try to play catchup for the next few months. Once I get this version off to the testers I’ll consider most of the UI and workflow locked down and only technical problems (behind the scenes) are left to fix so I’ll spend that time writing some new tutorials that will help you ramp up on the new version and walk through various techniques like lighting, materials, textures and editing objects.
An update to the news posting earlier. Jeff has responded and said that he has been in touch with Jeff Yates of Autodesk, indicating what his intentions were with their software. Jeff was taking their 3D animation package and adding Sim support to it. Autodesk has a policy on their software and released some routines/tools under their own Open Source license. Autodesk seems to be ok with Jeff’s efforts once they get the license agreements signed. The confusion abounded because at no point since the beginning of his development on the product was it ever mentioned that it was a derivative work of Autodesks or that the program would be Open Source (meaning the source code will be released along with the program). Anyways, you can find information on his site here.