[ARCHIVE] Road to Live Release

Status
Not open for further replies.
I don't know what that means. If you mean that grass cuts off on diagonals, try it in The Sims 1.
 
upload_2016-3-29_17-19-30.png

unknown.png

.eJwNx10OgyAMAOC7cADaTn7U2xAkaKaU0Boflt19-96-j7nHaVazq3ZZAbZDMo_NivJItdjKXM-S-iE28wVJNeX9Kk0FaFpoivTyiIRh9i4ABedwcRH_i352SHC3d-On2d6q-f4ABN0izw.YleBWwTkE9-HzZ_dwsPYlMjnmH4.png

As part of permissions, lots now manage some extra state, such as their category and the terrain type. Here's the current list of extra state the VM is expected to see:

HOUSE:
- Name
- Terrain Type
- Property Category
- Lot Size (1-8)
- Roommate[] (PersistID)
- BuildRoommate[] (PersistID)
- Owner (PersistID)

SIM:
- Budget
- Current Permission Level
- Ignore[] (PersistID)

PERMISSION LEVELS (in order of permissions):
- Visitor
- Roommate
- Build/Buy roommate
- Owner

OBJECT PARAMS:
- Owner PersistID
- Sale Price (0 means not for sale)
- IsBroken
- Repair Cost
- Repair State (?)

Some state, for instance bans and auto assigning roommate permissions by IP will be specific to the sandbox server, and only manage how the information is entered into the VM.
 
All this info is the currently planned, or can be expanded??? also how do you plan serialiaze extra house data information like for terrain type and category?

XML is actually pretty good (known this by my basic knowledge from Civilization 5 and 4) at keeping certain data like that. Given all houses are saved within that seems somewhat logical to assume it may be used to store that data for the time being.
 
The XML format will be extended for sandbox purposes, though it will not be used in the final server. For normal lots, we will be using the full binary save state format that we currently use to connect users to lots and resync their state, as I have said before.

Lot metadata will be stored in the Database, and will be transformed into and out of the VM format on every save. Saves will occur when users enter/leave lots and periodically, and will update sims in the lots' budget, roommate status, relationships, etc. These saves will be transactional, so that if the server crashes after you buy a few objects, everything both relating to the lot state AND the sim state is reverted. The database operations will be transactional by using the reliable SQL feature for that, but the house save states will need to be hacked into it. I'm thinking they might have two copies, with the switch between copies as part of the SQL transaction.
 
I don't know what that means. If you mean that grass cuts off on diagonals, try it in The Sims 1.
Are you going to keep the "buggy" grass on diagonal walls? Because that doesn't happen in The Sims 1.
zn06kgK.png

(Actually it starts bugging if you hover a floor tile above it)
b9SR3JM.png

Moving the camera fixes the buggy grass
QAP8eRS.png


In FreeSO
p5M0bGa.png

(Wow, the grass tiles in TSO/FreeSO are way more detailed than in The Sims 1)
 
I'd rather not keep it, but I don't particularly care right now. People seem to make unusually big deals out of non-gameplay features... I'd much prefer to get things which define the gameplay complete first.

Here's a shot of the same effect in The Sims 1. It does it on the right side of any vertical walls. It used to be a bigger problem but I think it's partially fixed in Complete Collection.
upload_2016-3-31_4-17-32.png
 
I'd rather not keep it, but I don't particularly care right now. People seem to make unusually big deals out of non-gameplay features... I'd much prefer to get things which define the gameplay complete first.

Here's a shot of the same effect in The Sims 1. It does it on the right side of any vertical walls. It used to be a bigger problem but I think it's partially fixed in Complete Collection.
View attachment 1634

I usually hate when people ask for things to be fixed that make no impact on the game whatsoever.. except zebra lighting in bloody EA-Land.. that drove me crazy.
 
That was due to the crazy way they did lighting back on DX7, and it didn't translate forward to DX9 32-bit colour that well. I'm still not sure what we will be doing for direct lighting - I'd like to use a deferred model but it will choke with objects overlaying each other.

Will likely be forward lighting for objects, deffered for architecture (no transparency, too many tiles for forward light). Not sure how well we can optimise the forward part, but ts2 does an alright job. Lighting will use object z-buffers to have more directional lighting, though the z-buffers will have to be pre-processed to make them smoother (but keep harsh edges) and convert them into normal maps. This will be disablable for people whose computers cannot handle it.

...Of course, we could always bake a 3d cube lightmap with 8x8 resolution on tiles, which would be sufficient. It would also be incredibly intensive to generate, but it's what The Sims 3 does.
 
Last edited:
That was due to the crazy way they did lighting back on DX7, and it didn't translate forward to DX9 32-bit colour that well. I'm still not sure what we will be doing for direct lighting - I'd like to use a deferred model but it will choke with objects overlaying each other.

Will likely be forward lighting for objects, deffered for architecture (no transparency, too many tiles for forward light). Not sure how well we can optimise the forward part, but ts2 does an alright job. Lighting will use object z-buffers to have more directional lighting, though the z-buffers will have to be pre-processed to make them smoother (but keep harsh edges) and convert them into normal maps. This will be disablable for people whose computers cannot handle it.

...Of course, we could always bake a 3d cube lightmap with 8x8 resolution on tiles, which would be sufficient. It would also be incredibly intensive to generate, but it's what The Sims 3 does.

Nope.. LOL. We should REALLY avoid doing anything that TS3 has done xD #BecauseThatGameIsAEngineeredFailure
 
Looked absolutely sick though. Check out some of the soft shadows and window lights that it generates:
Screenshot-229.jpg

An initial iteration wouldn't generate any shadows, since that needs 3d models of the objects, which will be generated later.
 
The XML format will be extended for sandbox purposes, though it will not be used in the final server. For normal lots, we will be using the full binary save state format that we currently use to connect users to lots and resync their state, as I have said before.

Lot metadata will be stored in the Database, and will be transformed into and out of the VM format on every save. Saves will occur when users enter/leave lots and periodically, and will update sims in the lots' budget, roommate status, relationships, etc. These saves will be transactional, so that if the server crashes after you buy a few objects, everything both relating to the lot state AND the sim state is reverted. The database operations will be transactional by using the reliable SQL feature for that, but the house save states will need to be hacked into it. I'm thinking they might have two copies, with the switch between copies as part of the SQL transaction.

So you are going to implement a way to create house data from the binary format used in network, i really want to see how it works.
Which database connection should be the best performance?
 
Not sure what that means, but we'll just be using a classic relational database on a single city server. Lot servers should be distributed across multiple servers, should it come to that.
 
man imagine if when the game is finally done, and thousands of people went on and crashed the game? you'd have to make server selects in the main server.
 
Just worked out all important TTAB flags. Only one I'm not sure about is "Allow Non-Roomies"... It's not a real flag in edith and just seems to combine existing ones.

Code:
   public enum TTABFlags
    {
        AllowVisitors = 1,
        Joinable = 1 << 1,
        RunImmediately = 1 << 2,
        AllowConsecutive = 1 << 3,

        Debug = 1 << 7,
        AutoFirstSelect = 1 << 8,
        Leapfrog = 1 << 9,
        MustRun = 1 << 10,
        AllowDogs = 1 << 11,
        AllowCats = 1 << 12
    }

    public enum TSOFlags
    {
        AllowNonRoomie = 1,
        AllowObjectOwner = 1 << 1,
        AllowRoommates = 1 << 2,
        AllowFriends = 1 << 3,
        AllowVisitors = 1 << 4,
        AllowGhost = 1 << 5,
        UnderParentalControl = 1 << 6,
        AllowCSRs = 1 << 7
    }

    public enum InteractionMaskFlags
    {
        AvailableWhenCarrying = 1,
        IsRepair = 1<<1,
        RunCheckAlways = 1 << 2,
        AvailableWhenDead = 1 << 3,
    }
Don't do anything ingame yet, but they now display on the IDE.

f36f4090f25aedf0df9778a674c5d963.gif
 
Just worked out all important TTAB flags. Only one I'm not sure about is "Allow Non-Roomies"... It's not a real flag in edith and just seems to combine existing ones.

Good work, i was waiting for this to be completed, so i can improve my own version of Free Will..
 
Hi all, My computer got stuck in Frozen World and is at the repair shop ... with the game on it :( I am borrowing another PC for a bit but I won't have the game on it (sigh) Reading at the updates and I am Loving it! :D
 
Build #266 is now out, which fixes some crash bugs people were experiencing. It's not necessary to update to connect to active servers, but it'll make your life easier.

I've been on holiday the past week, but I've obviously been thinking about the implementation of a few future features. You should be able to see some of them before I have to study for and do exams.
 
Status
Not open for further replies.
Back
Top