[ARCHIVE] SimAntics & World Development

Status
Not open for further replies.
The Soccer Ball's behaviours seem incredibly intricate and more game like than anything else I've seen in the sims... The ball has an X and Y velocity, can be kicked in any direction, has accurate gravity, bounces and it correctly responds to the ground slope using primitive 63 - Get Terrain Info, a primitive that isn't ever used by any object other than the goal net.

I think one of the problems with the object is there seems to be no code for handling the ball hitting walls or other objects (it'll just go right through them) and it seems awful short for what it's supposed to consist of.
 
Thanks for Rhys375, for helping me with online jobs objects behaviors, now i can try to start modding those objects into sims 1, but is not easy.
 

Attachments

  • sims1tsoconversions.jpg
    sims1tsoconversions.jpg
    249.9 KB · Views: 71
Just an assumption based on that TSO uses their own UIS format instead of the GZ format that seems to be used by TS2 and the TSO installer. Then again, it may still be used as a backend... Either way - it doesn't matter since the global is unused!
 
Was just playing around with the animate sim primitive in The Sims 1, here's what I found:

- The false branch is only ever called when an event is played. The false branch is never used for animations with no events (but you should loop it back just to make sure)! I tested this by making it play a sound when called.
- The false branch can idle completely legally, with no effect to the animation speed.
- This means the animation does not only progress when looped back to, like Darren thought.
- After starting the animation, the Animate Sim primitive acts as an event listener. A false branch looping back to it will resume event listening, however if the false branch executes over multiple ticks events in these events can be skipped, as upon looping back to the animate sim primitive it will instantly return false and set the parameter specified to the latest event (not any previous ones). Not entirely sure about this, since I haven't found any animations where I can make it play catchup yet.
- If a false branch is called that waits a very long time before looping back and the animation ends, the true branch will not be called until the loopback completes. When I set the aquarium feed event to call a wait of 3000 ticks, upon using it Betty was stuck in a perpetual hell where she was unable to move a muscle until the animation completed:

frozenforever.png


- The expected events counter still seems completely useless. It was set to 0 and the event still called multiple times.
 
You mean the event parameter need to be assigned before the animation is played, becuase i cheked that false branch will jump to line "parameter 0 equals? 100, that means if the ticked event is not assigned to that it will looped back. Also what game version are you using, becuase i can notice in lastest expansions animations will managed kind different...
 
I bypassed that section by making the false branch of the animate sim primitive skip that check and go directly to the test wait code. I'm using the sims complete collection direct from cd no updates. The event param/local is set when the false branch is called with an event, here it just tries to see if it is the right event (event data 100).
 
Was just playing around with the animate sim primitive in The Sims 1, here's what I found:

- The false branch is only ever called when an event is played. The false branch is never used for animations with no events (but you should loop it back just to make sure)! I tested this by making it play a sound when called.
- The false branch can idle completely legally, with no effect to the animation speed.
- This means the animation does not only progress when looped back to, like Darren thought.
- After starting the animation, the Animate Sim primitive acts as an event listener. A false branch looping back to it will resume event listening, however if the false branch executes over multiple ticks events in these events can be skipped, as upon looping back to the animate sim primitive it will instantly return false and set the parameter specified to the latest event (not any previous ones). Not entirely sure about this, since I haven't found any animations where I can make it play catchup yet.
- If a false branch is called that waits a very long time before looping back and the animation ends, the true branch will not be called until the loopback completes. When I set the aquarium feed event to call a wait of 3000 ticks, upon using it Betty was stuck in a perpetual hell where she was unable to move a muscle until the animation completed:

frozenforever.png


- The expected events counter still seems completely useless. It was set to 0 and the event still called multiple times.

That's interesting, good proofs by idleing in the false branch in TS1. Nice and easy fix I guess. I imagine there is some work to do on events too. When I started to build a VM I took the approach of slices because everything needed to be built. The events stuff I did was for a slice to have a sim be able to open a fridge. But looks like your making the effort to complete primitives all the way through now :).
 
That's interesting, good proofs by idleing in the false branch in TS1. Nice and easy fix I guess. I imagine there is some work to do on events too. When I started to build a VM I took the approach of slices because everything needed to be built. The events stuff I did was for a slice to have a sim be able to open a fridge. But looks like your making the effort to complete primitives all the way through now :).
It certainly is...
 
Then, what is the main purpose of this research, do you want to recreate sims antics objects behaviors again, or just understand how it works, to allow the new client recognize and use that coding stuff..
 
The new client will feature a full featured simantics emulator so that the original TSO objects are preserved and used exactly as they were in the original. Otherwise we would have to recode hundreds of different objects from scratch, and they wouldn't be the same!
 
Ok, i understand well, you will the one that will create the emulation code, or youre giving your research to another person??
 
I am researching how all of this works so that I can develop the emulator. All of it needs to be perfect or objects may not function correctly.
 
The main things causing the most interaction related crashes right now:

- No Semi-Globals
- Routing Slots completely unfinished
- Animate Sim primitive really likes 0.anim (I haven't worked over it yet)
- Slots... jesus
- Only like 7 primitives are in.

Right now I'm working on the Semi-Globals. I got GLOB reading in mega easy, and it's reading the files... Now just to put them into practice/make a better system so I can load the .otfs as well.

Edit: Hmm... globals doesn't get its otf file loaded in either. Might need to look into better ways of loading these.
 
Last edited:
Interestingly, it looks like object code in The Sims 3 moved to using compiled c# code... And they thought letting people mod for the VM was dangerous!

EDIT:
Also, (from the sims 2) look familiar? :p

http://modthesims.info/wiki.php?title=OBJf
TS1 OBJf:
OBJf.png


It's surprising how much didn't change and was just expanded upon.
 
Last edited:
Yesh, Mono guys weren’t kidding when they said Sims 3 had some C# in it. xD This really does backup my whole fork theory, though.
 
Status
Not open for further replies.
Back
Top