Workshop Internal Rewrite

Card

https://trello.com/c/5s7pKsBf/447-workshop-internal-rewrite

Description

This card has no description.

Todo

  • Move any existing blueprint code to C++ (massive task)
  • Rework steam callbacks and redesign the interfaces
  • Solve replication issues with player characters
  • Solve replication issues with player states
  • Game world testing
  • Solve issues with player scaling
  • Solve issues with game world models
  • Solve issues with Little Crusaders
  • Solve issues with Virus
  • Solve a few internal issues
  • Solve a crash
7 Likes
  • A new checklist named "Checklist" has been added to the card.
  • The checklist "Checklist" has been renamed to "Todo".
3 Likes

i don’t know what this means but im hyped

1 Like
  • "Game world testing" has been checked off on the "Todo" checklist.
  • "Solve replication issues with player characters" has been checked off on the "Todo" checklist.
  • "Rework steam callbacks and redesign the interfaces" has been checked off on the "Todo" checklist.
  • "Move any existing blueprint code to C++ (massive task)" has been checked off on the "Todo" checklist.
4 Likes

basically rewriting the code for workshop to make it more optimized and or responsive

1 Like

For context this started with a small bugfix, but it was something fundamentally busted in the way it worked. So rather than trying to rewrite a big rats-nest of code, I’ve been spending the past several weeks trying to consolidate and refactor the way workshop player models are handled. This will make it easier to do more bug fixes, logic tweaks, optimizations, and added features in future.

9 Likes

This sounds like a big task but definitely one worth doing. Any idea if this will help with the big stutter when loading another players workshop model?

Part of that will be mitigated, but there will still be a small hitch. I tried fixing this, but do to various things in how UE4 works when generating the Unreal resources from the workshop file it has to be done on the game thread or it crashes everything. This means this part of it will still hitch. I’d love to move it off of there, but I have to touch some deep engine code to make that work from what I saw in my initial attempt, so that might not be feasible unfortunately.

On the bright side there’s also a small mem-cache for workshop avatars coming with this update (currently we only have a file-cache). So avatars previously loaded should load faster until you hit the cache limit. I plan to make that limit configurable in a future update. When nobody is referencing a particular avatar anymore I rip-down the UE4 resources, but leave our workshop stuff (which is considerably smaller) in memory preventing a read from your hard drive if someone starts using it again.

5 Likes

Is this going to help with constantly having to suicide to get the model to load, then subsequently again afterwards to get the meta adjustments.

Yeah, that was the bug I was trying to fix that kickstarted the whole rewrite lol

7 Likes

Does this mean that its possible to update the engine to a newer version? I remember reading somewhere on here a while ago that updating the engine would break workshop support but as it’s being rewritten is it a possibility to update it and get new features? e.g. multiple pak files for smaller updates

It will still likely break it as this is merely the logic surrounding setting, maintaining, adjusting player models. Supposedly 4.19 altered how the underlying meshes are implemented which if so would require us to rewrite how we transfer workshop models from our smaller, compiled format into something Unreal can use.

That said it is something I’m going to try and tackle in the near future just to see if it’s feasible. We would really like some of the optimizations and features they added for Fortnite.

5 Likes

@Sketchman On the day that engine update comes we need a default dance emote.

sorry I don’t play video games

7 Likes

obviously the gmod defualt dance emote yeah?

1 Like

That’s the only and best one I know of
That must be it

1 Like
  • "Solve issues with Little Crusaders" has been checked off on the "Todo" checklist.
  • "Solve issues with game world models" has been checked off on the "Todo" checklist.
  • "Solve issues with player scaling" has been checked off on the "Todo" checklist.
  • "Solve replication issues with player states" has been checked off on the "Todo" checklist.
9 Likes

:eyes:

:eye::lips::eye:

  • "Solve a few internal issues" has been checked off on the "Todo" checklist.
  • "Solve issues with Virus" has been checked off on the "Todo" checklist.
8 Likes