[ARCHIVE] Final Checklist (GIF HEAVY!)

Status
Not open for further replies.
unknown.png

upload_2016-10-29_16-53-36.png

☑ Object Limit (locking also related to category specific)
Current max limit is 2400 Objects @ 8 roommates, max lot size. Object count includes build mode objects. When we get a SimAntics JIT (maybe even smarter idle loops), I might raise this, but judging from the amount of objects on this lot it is a good baseline.

Object limit is shared between roommates, unlike TSO. If a roommate leaves, all their stuff will go with them... But if what's left on the lot still exceeds the limit, it will become disabled. You can still move, inventory and remove disabled objects, but they will not simulate and it is not possible to interact with them. They also become gray, so you can't use them as decorations either.
 
3ebd9a6f90a747c37407814f0529abd0.gif


☑ Where am I? and privacy setting

Had to do this partly in electron, since we don't know enough about the original game to make the responses for these work there. For some reason, the original's UI seems to ignore the Privacy Mode set in the avatar's data service representation, but it's still sent. That value is used here.
 
☑ Unusual routing behaviour (why does failing to route through a door randomly set its permissions attribute to "locked by code"?)
Figured this out after extensive testing. Lots more bugs fixed, including something that could potentially cause desyncs. The server is now also running on linux, after investigations into some weird behaviour.

From now on, there will be rather few updates, since the remainder of tasks will be backend/security features, and extensive internal bugfixes. I've already started on this.

It's also worth noting that I am also working on my university master's project (not tso related this time), so I can't continue work on this every day. Rest assured, we are quite close to launching, it's just a matter of timing a period where I'm mostly free to handle the launch and completing the security features. You may be familiar with an jolly old time period where folks generally get a bit of free time, but I can't quite get any reins on the timing right now, deer.
 
More on my availaility... I'll only be available to work on this on weekends (fri, sat, sun) due to the increasing importance of my uni project to its upcoming mid-term assessment. The server is rather stable right now, so I'd say we're still on track.

There will likely be no or very few updates during weekdays. I'll be posting what I do every weekend in a format like below. (was quite busy this weekend, as you might see)

Bug Round this weekend:
- general fixes
- can't move exercise bench ("hidden" part of object causes it to be hard to pick up)
- RoutingFrame.AvatarsToConsider deserialization crash
- vehicles for jobs spawning wrong
- vehicles for jobs not removing (white car)
- buildable area misplaced in alignment 3
- freeze on leave lot when network conditions are not great (regulator race condition)
- leaving lot while in shower makes you naked
- regression where relationships were set to low values instead of increments (when implementing -100,100 clamp)
- placing objects with slots from inventory crashing the game and server
- final lot save potentially crashing the server if something goes wrong
- leaving lot while in a parent/child interaction (etc. bed) does not fully exit the interaction. it's cancelled and you leave as part of the idle stage
- leaving lot while in bed: join next lot "sleeping" while being able to walk
- out of order or spotty execution for vm ticks.
- fixed being able to lock own skills past their current level
- fixed skill locks (they were locking to like, 0.05 skill instead of 5.00)
- fixed some weird terrain blends
- fixed npcs leaving by walking into the mailbox
- fixed adjacent lots for new lots not loading
 
unknown.png

unknown.png

unknown.png

☑ Ignore List
Ignore list is now in, partially thanks to the bookmarks data service implementation by ddfczm. Instant Messaging, ingame chat and ingame interactions are directly affected by the ignore list, and update immediately on request. Job Lot Matchmaking is currently not yet affected. Lot Admit/Ban is a work in progress and should be functional soon.

The Paper Chase Group job object is now functional, including all of its animations and sounds. As far as gameplay goes it's pretty simple, but I really love the effort they've put into the animation for it. ddfczm implemented the whole plugin this weekend while I was bugfixing the planet, kudos to him!

Bugfixes (as written in my notepad):
- async purchase does not unlock object correctly on failure, and was unreliable
- null pointer exception at UILotControl.cs:444
- maid hates roaches (object crash)
- pet dupe
- pet interactions not working due to them waiting to accept interaction (they can't click accept buttons they dont have access to a computer)
- dead VM memory leak on server
- city view performance improved
- NEW: special routing mode allows diagonal interactions and some tighter fit routing to objects that allow it. (fixes 2 tile table in restaurant level 3-4)
- fixed pizza breaking
- copy paste arrow keys delete working
- fixed crash bug where appearance file was missing
- friends are now at 60 outgoing relationship
- fixed race condition for avatar local ds
- fixed avatar reach primitive animations
- fixed moving lot while it is online
- cant bookmark yourself anymore
- fixed regression with carry animation state
- fixed critical bug with lot saves failing to recover if lot contained any npcs
- fixed npc gardener
- all the. small things.
 
☑ Lot Admit/Banlist
unknown.png

unknown.png

upload_2016-11-17_0-36-25.png

Already mostly completed this one, so just finished it there. Set admit/deny on their person page, and you see them on the list on your property. Double clicking their name will open their person page so you can remove them from the list. Probably need to change the data service handler to enforce the database constraints (uniqueness, real avatar)
 
☑ Investigate slow motives for some objects, like TV

Turns out the category specific scaling factors are inversely applied to motive changes (the ones used for motive decay), so certain motives were much harder or easier to raise than others.

Hygiene raises about 3x as fast now. Fun raises about 2x. Energy raises 2x SLOWER. Hunger raises a little slower. Bladder is a little faster. Social from objects raises a lot slower. Some changes avoid the motive change primitive and thus are unaffected.

Motives now raise slower on hard motives categories, and the inverse on easy motives.
 
147669ca7f5dcfed792452d0541a425c.gif

More on this later this week, gotta focus on other things.

In other news:
- Patched potential exploits with VM commands (deserialization disabled on server for "risky" types that use fixed size array deserialization for performance, that should never be received from client.)
- Fixed issues with skin tone not working on pie menu, SAS, Gizmo and Person Page.
- Began work on city-level moveout & roommate invite. Planned out function and additional packet types
- edge scrolling rules and window focus honored in city view
- finer city view zoom with mouse wheel
- city view shadows now render lazily instead of every frame (good for intel)
- namelocal and fixedlocal types for dialogs
- immutablelist data service
- reduce floor paint tool lag
- fixed duck
 
345d1da42f4634a81bde6aefe64bef4b.gif

Redid room maps for like the 20th time. Diagonals spread perfectly now and fences segment rooms while registering as "adjacent" (no more routing confusion with backyard gardens and balconies)

Also made diagonal wall collision tighter. Both of these changes fix Restaurant 6 and Robot Job 7.
 
c94179b17bca98a3ecf446ca962800c0.gif

unknown.png

upload_2016-11-30_16-9-48.png
7510b855a7cd04f441e3df17ad28a42a.gif

Clothes rack and dresser EODs by ddfczm. Not entirely perfect yet but given their complexity that's a huge contribution that I wasn't expecting to get in before release. These are the first EODs to access the database directly, but I don't expect many others to do that.
 
More extensive bugfixes:

- fixed most object functions and routing ignoring diagonally segmented rooms
- fixed diagonal spread on second floor (order for diagonal floor tile)
- fixed wall placement verification
- fixed outside flag not spreading sometimes
- added rule to split floor into two on diagonal wall placement
- sell floors fractional sale value, buy ceilings it
- fixed lot thumbnail roof being affected by time of day
- fixed being able to rejoin a lot you are still on
- added decimate function for avatar icons at diff zooms
- fix hot tub and maybe other weird things with special cases
- fix duck

@pisarz1958 set up a cool lot to test all of the room map stuff, that basically attempts to break the game in every way possible. All issues with it should be solved.
 
unknown.png

New scheduler (bottom) halves overall cpu usage. This is a single core VPS running a single lot. Running 4 lots of differing sizes is using 10.3% of a single core. It's likely the cpu allowance is being scaled to meet demand by the VPS host, so these numbers might be higher than they should be.

An example lot runs ticks for 20 objects per frame instead of 600. This can be done since most objects in a lot are completely inactive - they just idle for like 2000 ticks unless something interrupts them. This also improves client performance, which should make a big difference on iOS and android, and make it impossible for your PC to be too slow to join a lot on the MMO server.

New bottlenecks are room map regeneration, routing and the renderer. Since the server doesn't render anything, that last one isn't important for our scalability.

Anyways, I've got a lot of uni work to do (30 and 8 page reports) until around the 20th of December. After that it's pretty much go time for the final stretch of key features, and we can finally launch the game.
 
upload_2016-12-11_4-38-35.png
- fix inventory placement not scheduling new objects
- fix accidental routing restart on resync (eventually caused desync when avatars hit doors)
- move lot now successfully rotates your lot to face the road. manual rotation is possible in future
- scoreboard EOD by ddfczm
- patch to restaurant job so chefs dont have to stand directly in front of the screen to see it. seriously guys...

Not really any interesting way to show the other changes, so here's lot rotation when it wasn't working:

unknown.png


I also have a release date in mind. I'll have a lot of time to get through the remaining core features, rate limiting and security checks after all of my uni submissions are complete.
 
☑ Pick a city and road-it-up ;)

Working on the in-client updater, plus additional FreeSO distributed content such as cities and custom csts. Async roommate protocol invite and accept/decline is working, but I need to implement special lot open modes and city->open lot signalling to get kick and move out working correctly.

Darren has helpfully set up the top 100 + visitor bonus in its entirety! Still need to test these out locally since I've been busy with the city.
https://github.com/RHY3756547/FreeSO/pull/42
 
Status
Not open for further replies.
Back
Top