[ARCHIVE] SimAntics & World Development

Status
Not open for further replies.
OK, I think I've got the sim's idle state down.

Main function queues idle interaction, then idles for input allowing push - instantly cancelling itself. The idle interaction then runs with idle priority (invisible in normal interaction queue). When an interaction is queued onto the sim with a higher priority (eg. user driven priority, autonomous priority) the idle interaction is cancelled, but since the idle for input does not allow push it does not instantly cancel but instead sets the "notified by idle for input" flag which leads a chain out of the idle interaction. The idle interaction then ends, allowing normal interactions to progress. When the queue is empty, the main function is automatically requeued which calls the idle function again and starts the process from the start.

Right now the sim's idle state appears to work correctly, however he hasn't managed to move his hands (or where they would be) off of his hips which is quite worrying. I think it's meant to cycle through a variety of states.

EDIT: Okay, seems like it's meant to do that! Now to implement the priority system and we should be golden. :cool:
 
OK, just committed a version with the fully functional idle interaction on the Sim. You'll see that when it runs it queues itself again - this is a trick so that higher priority interactions (eg what the user selects) slide in before the second idle, so that idle is called after the interaction completes. You can see this very clearly in the queue viewer.

I also set the Sim's comfort value to -100 (minimum) to test motive failure animations, so don't be surprised if before doing things the sim angrily shakes their hands about and clutches at their neck! As well as this, I changed the default sim to someone you might recognize. ;)

I'm going to try and get Afr0's hand groups working in SimAntics so that he's not using stumps to interact with everything...
 
There is a lot to do! We've only just begun~!

After SimAntics and the world, which are two huge things, we need to implement the HIT VM for sound effects.
 
Video Time!
Again, I'm specifically showing off the idle animations here but you can also see the chaining from toilet to sink and motive bars.
 
Next up are containers and slots. Once we have these working most things will function and we can get to working on the food chain set of interactions. These will require a little more research than the other parts of SimAntics however, and some modification to the world rendering code.
 
Good video, but it looks there are lot of work to do ;). The sims teletransportate between interactions, you havent made the most important one, sims movement and walking??? Also some mistake with the sit interaction direction, but keep it work up!!!
 
The routing and positioning is not provided by SimAntics, it's a separate thing that needs a detailed and thorough implementation. I'll probably do it last as I think getting the interactions working correctly is the most important step.
 
Why some objects looks like in a invisible wall, how you have made the lot, and added the objects??? Also youre comparing behaviors with sims 1 game???
 
Currently looking at SLOTs. Type 0 looks like slots where items are placed (no rs flags, tend to be elevated off of the ground...), and type 3 looks like routing slots.

Counters and tables seem to have 4 slots on top of them all placed in a rectangular pattern, I don't think that's what it's meant to be... Also I don't think they should be only 4/16 tiles off the ground either! Needs some investigation.

EDIT: Sudden realization alert - yes that is how it's meant to be! Plates can be placed on all 4 sides of a table... The positions match up! This must be right.
 
The lot is created from the TSO job lots .blueprint files in the game folder. The walls are invisible because the world renderer does not yet have support for displaying them. Behaviours are being compared with how I expect them to work, judging from the code I see in Edith and my intuition to see when things aren't right! (it's usually pretty obvious when something goes wrong)
 
Ok, but those blueprints houses seems to be client-side, there are houses files stored in server and which file types are, becuase in the sims 1 each house is an independent iff file with some attributes like grass, terrain, walls and floor setups...
 
The blueprint is used by the server to generate new lots of that type, that's why all the online jobs lots are stored as them. The lot data we transfer will be of a different format and contain all simantics state data.
 
What means lot data will contains simsantics state data, also are you trying to create lots for every user client side or, only one for alls users managed from server...
 
Huh? Client won't know about every lot in the game. o_O
It'll only know about the lot it currently resides in.
 
OK, so containment slots seem to be regulated by a few primitives:

Grab: Places stack object in slot 0 (hand) of thread owner. Not sure if this works on object owned threads...
Drop: Removes the object in my slot 0 from its slot and places it on the ground. (Sim only?)
Snap: Snap the thread owner to containment slot 0 of the callee or back to a routing slot.
Drop onto: Removes the object in the specified slot owned by the thread owner and places it in another slot owned by the stack object.
Reach: Animates the sim (thread owner) to reach towards the stack object or a specified slot of the stack object (special animation choice depending on height or if the sim is sitting) and optionally grab/drop on it (drop only for the slot specified version). Used for picking up objects from anywhere.

I'll still need to look into specifics, but I think I've got it down.
 
Status
Not open for further replies.
Back
Top