Hi ho. No news post from yesterday. Picked up a new Palm IIIex from Computer City ($300 with a $50 rebate and my company is picking up the tab so you can’t go wrong) and I spent most of the night getting the developer kits, emulator and various utilities and learning to program it (no palm jokes from the peanut gallery). No, there will not be a palm version of blueprint anytime soon (although, there’s a really cool looking version of Sim City for the palm here, great way to kill time at a meeting).
One tech note. A lot of people seem to be having problems with the current blueprint preview and ATI cards. Apparently you need ATI’s most recent release of the video driver (which is optimized for OpenGL). However, it will not install on W2K or Windows ME if you’ve previously patched your video drivers with the ATI update (via the Windows Update utility). Sheesh. A bit of a mess and I don’t have any solution for you. I will say though that the blueprint preview is just that, a preview and not to be used as the real thing. It comes with no guarentees and little support (just because it’s changed so much since that release and does have more compatible support with other systems). So just hang in there. The bad part is that when dealing with third party drivers and special hardware/software, it’s next to impossible to ensure something runs on everyones system. That of course, was supposed to be the concept of Windows, but it never panned out. So we’re back to the old DOS days when you had to go hunting for the video, sound and network driver for your system (although it’s not as bad as it used to be).
Whew. Well, another bit of a breakthru here so some fairly exciting news (at least I think so, you can be the judge).
I’ve successfully made an object from scratch in blueprint. In other words, it isn’t based on any object in the game. It was created entirely from scratch, with a basic definition added along with the sprites and a few primary behavior trees added to make the object valid. Now, before you go thinking you’ll be able to create anything with blueprint now just hang on for a bit. The object is totally non-interactive. There are no menus, sounds, etc. so it just sits there looking pretty. It doesn’t even have any values that affect the room. However, it is a 100% pure new object so perhaps the issues of cloning and ownership might be thrown out the window shortly.
So the initial release will allow you to do this, but like I said there will not be a lot to a new object. Down the road I’ll be adding new editors as I get them completed (menu, sound, behavior, etc.) that you can continue to add to your objects. At least this is a first step.
Back on the blueprint programming wagon today. After putzing around with the grouping I got frustrated and had to make some changes to get it working correctly. Such is my lot in life. I got to thinking about it and figured I’d give you a rundown on how it works. Warning, entering 3D terminolgy land (just a bit) so be warned!
Everything in blueprint can be arranged in as much of a heirachy as you want. This was done because loading some 3D files, I found there was groupings, and groupings within groupings. Then I got to thinking and realized this isn’t a bad thing. Actually it’s pretty slick when you get down to it. It works like this. Everytime you add a single object to the scene, you can take that object and group it with another. So if you created four legs to a table, you could group it with a tabletop and call the whole thing a table. You can also make a chair then group 4 of those together. Then group the chair group with the table group and have yourself a picnic. Now, when you import a 3D file you may end up with dozens (if not hundreds) of mini-objects. For example, the egyptian statue in The Sims has hundreds of mini-objects like the eyes, ears, head, etc. All of these can have different materials and/or textures applied to them to create a realistic effect. So when you have an object grouped (either by importing a file that has groupings or creating the group yourself) you won’t be able to select the group in any of the viewports. This is just the way that the picking works in the program. It finds the first object you click on by an ID and then stops. So if you click on a chair that is made up of 4 legs and a seat, the program can’t tell the difference between them and will only let you select the highest most one in the chain of objects. There is a facility to group or ungroup objects, so if you ungroup the chair, you’ll be able to pick the legs individually. However there’s an easier way. As you can see by the picture, a tree graphic control is maintained by blueprint to keep track of all the objects (including their children and children’s children and so on) automatically. Instead of ungrouping the chair, you can select the object (say Leg01) by clicking on the Leg01 in the tree. Then you’re free to apply a new material or texture to it. Trust me, this is much better than ungrouping a hundred objects then TRYING to pick something out of the mess. So keep that in mind when you’re building your objects as it may help organize things.
One other thing. There seems to be a new rash of emails asking me to stop talking and get doing. Yes of course I’m “doing” things. I decided long ago that I would post something everyday just so you had something to come to, no matter how big or small. For those that are getting tired of my rants, stop coming here then and you’ll hear about blueprint news elsewhere and you can come back when it’s released. Might be the 16oz coffee in me talking, but I think some of these posts might be useful to some instead of having weeks of silence. Besides, I’ll probably go through most of them and turn them into parts of tutorials and a user manual. Anyways, back to work…
Wanted to take some time out and discuss cloning objects, or rather perhaps not cloning them.
Recently in the SimWatch mailing list, a lot of discussion has centered around a particular object that was given away with Computer Gaming World’s 20th anniversary issue. This was a birthday cake that Maxis provided to CGW for the issue (I think the cake is also to be part of House Party but I’m not sure). There are two main threads of discussion about the object. The first is regarding non-North American readers not getting access to the object (CGW may or may not be available in your part of the world). The second thread is the one that I think needs addressing and something that has been lingering for ages.
According to Maxis, they say it is illegal to clone the birthday cake for creating your own objects. This is the first such move that I know of from them (correct me if I’m wrong here) and it’s a pretty bold statement if you think about it. I mean, they certainly can’t enforce such a statement because it would take a dedicated resource to scour the websites hunting for new objects that have a hint that they were cloned from the cake. Maxis hasn’t taken action against people selling custom CDs on eBay (including selling Maxis objects outright) so why would they take action with this? The statement itself reflects back to one of the founding concepts of the SIF file. To let it known to the world that it is not ok for you to clone my object etc. etc. However, in retrospec, who are we to say that? I mean, sure you spend the time and effort creating new bitmaps, editing attributes and generally tweaking your object so you should have the right to tell people what they can or can’t do with it right? Well, you cloned your object from one that Maxis created so it’s a derivative work. Maxis has said it’s ok for you to clone their work by providing Transmogrifier so it must be ok. It seems to enter a gray area now because other than knowing what object you can or cannot clone how do you know you can offer that in subsequent clones that you (or someone else) makes? Especially with House Party on the horizon which will introduce new objects (including perhaps the cake). Will this mean there will be a list of objects you can or cannot clone from the expansion pack to make new objects? It all seems very muddled to me but perhaps that’s just my view of the world. Perhaps the solution is to provide tools that don’t clone objects, but make you do the work of creating the object from scratch. Something I’m not sure about right now but it might work its way into blueprint if possible, I’m just exploring these options now. I think some intelligent discussion can take place on the subject and probably should, with some of the key players from Maxis involved however Peter Naughton, the owner of SimWatch has terminated the discussion regarding the cake and would not like it to continue (for sake of repetiveness). Does anyone see this as more than just a piece of cake? Feel free to express your opinions in the forums here, they seem pretty devoid of any activity lately.
Okay, this was really more of my soap box on cloning objects, protecting the artists rights and all that jazz but hey, my website, my voice. Take it as you will (or will not).
Pretty slow for the next few days as I get things completed on the system and hopefully pump some more objects out before the end of the week. Just a little burnt out at night from work and trying to get my book completed. Lots of things happening behind the scenes and perhaps some really cool news coming up on not only blueprint but some other Simish things. Cross your fingers and we’ll see.
Hi guys. Thanks for the offers about the website maintainer. I’m reviewing the submissions and will get back to everyone when I complete my evaluation. Just have to make sure that someone taking on the site knows HTML and can dedicate some time to the task, otherwise it’ll be a waste of everyones time.
No news today. It’s a slow day for blueprint development. What can I say? Evil never sleeps… no, that’s not right.
Hi ho. A few site updates this weekend. I’ve added an objects page where I’ll post any and all working objects (and some not so working) made with blueprint. Only the Mini T-Rex is there for now but that’s soon to change as new and cool stuff starts popping out. I’ll be getting to the sprite staging tommorow with some screenshots and explanation of the process.
One other thing. I’m looking for someone to help out and maintain the website for me. I’m just too busy to do this stuff and would like if there was someone with time to help out. Of course a knowledge of HTML is needed so email me if you have the time and some samples of your work. Thanks!
Just a quick update this evening. Working on blueprint (like I do anything else) as usual. Again, to facilitate the speed to deliver a good, solid working system to you and get everyone popping out objects I’m again scaling back some features right now. Most of them were about 80% done but I’ve disabled some to focus on object creation and give you a tool to deliver professional quality objects with little effort. Like I mentioned before, I’ll be doing weekly updates to provide new features along the way so hopefully in a month or so after the intial release all the features I want in it will be there. I’ll post a list of what will be included in the initial release shortly as I firm up what will be completed. Nothing in this 1.0 release will be half-assed so everything available will be working 100%. Some features might be missing (like Sim Character reference models) because they’re sitting at 80-90% done right now and I don’t want to delay things much longer with the release. Also the zbuffer generation is now working mucho better than the dino model so your objects will be as good as Maxis’ as far as that goes. Quality here is the focus, not quantity of features.
Oh how I love the weekends. 20 hours of coding a day with no phone calls, meetings or annoying people popping their heads up over the cube to ask you to do some binary math in your head (happened this week, luckily I haven’t forgotten everything from my salad years so I provided a quick answer). I have some big plans for blueprint this weekend and if all goes well I’ll have something ready for testing by the end of it. Let’s hope and see. In the meantime, creating new objects is as easy as 1, 2, 3…
I sometimes wonder who’s reading this and are you really enjoying yourself? I must be doing something right. Either that or you’re all waiting for blueprint so much that you’ll put up with pretty much anything I say. Anyways, things are looking great for blueprint right now. I’ve completed the changes I did yesterday and just moving onto a few bug fixes and getting ready for testing. I’m sure I said something like this a month ago, but oh well, these are the days of my life.
I thought I’d post some info on the mysterious channels in a Sims object. Channels you say? FOX? CNN? No, I’m referring to the image channels that a sprite holds. Each sprite in The Sims has 3 channels. The pixel, alpha and the much talked about z-buffer channel. Each serves a unique and important purpose. Why should you care? We’ll get to that later.
The pixel channel. This is really what your object looks like, in all it’s glory. Multicolours and all that jazz. If it’s deep dark blue in your pixel channel, it’ll be that in the game. The alpha channel is a special channel that looks like a blurry outline of your object. Why? It softens the edges around your object. If your pixel channel has a soft-edged image (anti-aliased) then you might get some of the yellow (the key colour) from the background bleeding through and into the game. So the technique is to create the pixel channel so it has hard edges, and let the alpha channel soften the edges of the object for you. The create is an art in itself that I won’t get into, however PhotoShop and some other tools can generate a pretty good one for you to get started. The z-buffer is the cream of the crop. This bad boy will determine where parts of your object site in the 3D world of The Sims. Huh? I thought the Sims was 2D? It is and because of that, it doesn’t deal with 3D geometry however it still has to let it’s Sims move around and not walk through things. This is called collision detection in game programming and generally you need a way to tell where a particular edge of an object exists as it relates to your Sims. The z-buffer determines this with a grayscale image that is shaped the same as your object. Dark gray pixels will push it to the front, light gray will indicate that section of your object is towards the back. This is the trickiest of the 3 channels and the one that causes the most problems with new object creators. If it’s too light in the back, it will fade into the wall, or another object. If it’s too dark in the front, it may appear in front of something that you don’t want it too (like your sims when they stand in front of the object).
So why do you care about all this techno-babble? Well, as far as blueprint is concerned, you don’t. If you’re using Tmog then you need to read up on these things and do some experimentation (SimFreaks has some good documentation and tips on how to make these channels). blueprint however will generate all these channels for you. If you ripped apart my recent dino you might notice that the z-buffer is pretty simple. There is an alternative method that I put into blueprint to generate this. After all, blueprint IS a 3D program and can very accurately determine the z-buffer in that respect. However, it was taking up to 2 minutes to export the objects so I chose a simpler method (the same one Tmog uses) to get it working for now. Later when I get it optimized to the point that you don’t fall asleep at the keyboard staring at an hourglass cursor while your object exports, I’ll replace the z-buffer generation code.
That’s it for now. Back to coding and making more objects. I’ll post news as soon as blueprint heads off to testing so stay tuned.