[ARCHIVE] SimAntics & World Development

Status
Not open for further replies.

Rhys

FreeSO Developer
Staff member
Moderator
I'm currently working pretty deep into SimAntics research so that we can fully implement The Sims Online's gameplay perfectly and identically using their existing objects. SimAntics is the virtual machine which drives all of the functions of the People and Objects in The Sims 1, 2 and Online; basically everything in live mode is put together and executed using it. It's interesting in that all primitives return either true or false, and can loop back on themselves.

I'll be posting updates on where I am here occasionally so that you don't think the project is dead :p , and for interest's sake if any of you are interested in how the game works behind the scenes!

All of my research is being documented at http://simantics.wikidot.com forked off of Fatbag's SimAntics page on the Niotso Wiki., you can check what's new using the Recent Changes link at any time.

Right now I am working on discovering the functions of every primitive and painting a more complete picture of how the game works before we implement it. I'm planning to get all Operands and function descriptions worked out and documented before working on the implementation.

I'm currently most interested in the "Food Chain" group of interactions - where sims get food from the fridge, prepare it, cook it, serve it, eat it and then wash the plate afterwards. This is a complex interaction between multiple objects, where each has to find the next one "most suitable" for the task. Here's a commented version of the Global::wash hands if neat function which has the same idea present but is much easier to follow:

Global%20-%20wash%20hands%20if%20neat.png


As you should be able to remember, this interaction happens most often after a Sim uses a toilet. This Global is indeed called at that point!

You could possibly help too if you're a TS1 object developer and spot something that I've listed as "Unknown" but you know how it works! You could also help by suggesting other complex interactions to investigate so that we can cover the more difficult parts of the VM with a lot more reference functionality.

I suppose the commented global up there is a good basis for conversation, so post your thoughts!
 
I'm currently working pretty deep into SimAntics research so that we can fully implement The Sims Online's gameplay perfectly and identically using their existing objects. SimAntics is the virtual machine which drives all of the functions of the People and Objects in The Sims 1, 2 and Online; basically everything in live mode is put together and executed using it. It's interesting in that all primitives return either true or false, and can loop back on themselves.

I'll be posting updates on where I am here occasionally so that you don't think the project is dead :p , and for interest's sake if any of you are interested in how the game works behind the scenes!

All of my research is being documented at http://simantics.wikidot.com forked off of Fatbag's SimAntics page on the Niotso Wiki., you can check what's new using the Recent Changes link at any time.

Right now I am working on discovering the functions of every primitive and painting a more complete picture of how the game works before we implement it. I'm planning to get all Operands and function descriptions worked out and documented before working on the implementation.

I'm currently most interested in the "Food Chain" group of interactions - where sims get food from the fridge, prepare it, cook it, serve it, eat it and then wash the plate afterwards. This is a complex interaction between multiple objects, where each has to find the next one "most suitable" for the task. Here's a commented version of the Global::wash hands if neat function which has the same idea present but is much easier to follow:

Global%20-%20wash%20hands%20if%20neat.png
Really nice and don't forget to add function which makes sinks broken.
 
Ok, i see youre getting progress, what program are you using to create sims antics for the tso... I prefeer iff snooper but only when i have acess to linux pcs.
 
I'm not creating bhavs for TSO, I'm only examining them. This is because the cracked Edith does not let you edit bhavs without some kind of company domain system set up... So what I have to do is create object instances, open up the tracer and "find ways into" functions from the main function... The commented sink I posted is actually shown in codex (TS1 sink), but it works the same in TSO.
 
Then youre just examining the tso objects bhavs, not for creating new one? Who is the responsible in Project Dollhouse in sims antics???, i think i can cotribute you with some advices, if you want to recreate the objects codes, i also used codex, is really good to understand all the primitives values and expressions.
 
I'm not recreating the code for the objects, we will be using exactly the same objects! That's the whole point of the SimAntics implementation. Right now Darren is taking a break for personal reasons, so I'm currently the only person working on SimAntics. Anyone can still contribute though!

Once I find a sizable number of the Primitives and understand more about the whole thing I'll work on fixing up Darren's existing implementation. Right now he's storing all the person and object data as separate variables (and no motive data at all), but it'll probably be a better idea to store them all in respective signed short arrays (since there are like 200 in total!) with special condition read/write checks for certain IDs.
 
I really are interested in those online jobs call, i want to try to recreate it in the sims 1 modding, but now you have get well documentation about that, hope you check for those online jobs objects to see whats the main diference between it and sims 1 ones..
 
I really are interested in those online jobs call, i want to try to recreate it in the sims 1 modding, but now you have get well documentation about that, hope you check for those online jobs objects to see whats the main diference between it and sims 1 ones..
The Sims Online sent you to one of three types of lot where there were special objects to control the game state. The OnlineJobsCalls were really only utility calls to get/set information from the server or update the job UI, most of the logic is done in normal SimAntics like everything else in TSO.

I can send you the exported text bhav files of the online jobs objects (all objects prefixed oj), but they're a bit harder to understand than the usual simantics graph due to being a text representation... And you won't be able to get the graphics!
 
By the way, I have a suspicion that The Sims and The Sims Bustin' Out for console both also use SimAntics (due to most of the objects behaving exactly the same, same engine quirks as ts1), but I can't confirm it as all of the game files are packed in .ARC archives which are in some ARCane (ho ho) format. Not that it matters, but it would be a pretty interesting discovery.
 
I think you're right. I have it from one of the original TSO devs (not sure of his name, he hangs out at gamedev.net/chat) that the guys porting TS1 to console were going through the code, and every time they discovered a hack, it was commented with "BoBo". The name belonging to that monicker shall remain anonymous, but it was pretty funny :p
 
Status
Not open for further replies.
Back
Top