SimAntics & World Development (archive)

Discussion in 'Development News' started by RHY3756547, Feb 16, 2014.

Thread Status:
Not open for further replies.
  1. RHY3756547

    RHY3756547 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:

    [​IMG]

    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!
  2. aidancheddar

    aidancheddar Active Member

    Brain... :eek: *dies from overwhelming amount of valuable information*
  3. xezno

    xezno Member

    OMG WTF HOW DID YOU
    *dies*
  4. liinor

    liinor Member

    Really nice and don't forget to add function which makes sinks broken.
  5. francot514

    francot514 Well-Known Member

    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.
  6. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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.
  7. francot514

    francot514 Well-Known Member

    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.
  8. nicefunfungirl

    nicefunfungirl Active Member

    Rhy,Your epic,Your pulling off SOO much at once contributing to the game's progress!! :D
  9. aidancheddar

    aidancheddar Active Member

    Everyone. It's a group effort.
  10. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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.
  11. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Just worked out everything about OnlineJobsCall! Not really the most important primitive... but I was interested in how it handled things and it seems incredibly simple. (Most of the job logic (including promotions, timer, everything!) is, again, handled by SimAntics!)

    http://simantics.wikidot.com/wiki:primitives#toc52
    aidancheddar likes this.
  12. xezno

    xezno Member

    How come I understand this, WTF!?
  13. aidancheddar

    aidancheddar Active Member

    Says the creator of xTSO. :p
  14. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    Probably because I fully commented it!
    aidancheddar likes this.
  15. francot514

    francot514 Well-Known Member

    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..
  16. aidancheddar

    aidancheddar Active Member

    I liked jobs in TSO. Much better then rabbit holes in Sims 3.
  17. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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!
  18. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    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.
  19. Afr0

    Afr0 Well-Known Member

    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
    Tori Sim likes this.
  20. RHY3756547

    RHY3756547 FreeSO Developer Staff Member Moderator

    New wiki logo with svg animation:

    [​IMG]
Thread Status:
Not open for further replies.

Share This Page