#archived-dots
1 messages Β· Page 50 of 1
MeshRendererBaker
has to setup LODs
so each render is anywhere from 1-3 actual renderers
has to find the components
has to grab the meshfilter to get the mesh
has to get all them materials, if its a multi material split into sub entities
has to get the baked light data
and do this 30,000 times on gameobjects
then do like 8 add[shared]components per entity
i had a look at this yesterday, i saw no obvious way of speeding this up except potentially caching it per unmodified prefab instance
so I had a bit of an experiment and wrote a proof of concept that instead of storing the GO in the world, stores reference of prefab then instantiates them in system
(apart from known pains of instantiation during baking) the main issue completely breaks actually building scene workflow, you can only visualize it using baked data not authoring
so i don't think it's really a viable solution unless you wrote full entity scene tooling
Big oof, yeah thats rough, looked* it up and there is only post-baking processing for like, combining entities, not batching them like I thought
I believe unity were working or wanting to work on a large open world demo so I'm hoping they're running into similar issues to investigate
or at least can provide me some guidelines on best practices around this workflow
Hmm, this is a very assumptious, high level toss out, but is there any way to replicate your runtime "local loaded subscenes" runtime logic, but based on the editors camera position instead of a theroretical player, while in the editor?
my implementation of it?
i considered doing camera but it's problematic
for example in first person, players can spin their camera
and scenes won't load in time
it's not hard to make it frustum plane based
I meant for specifically for the editor, only loading the "local" sub-scenes from the editor scene window camera position, or at least activating/rendering the authors
obviously there's a lot involved, but it shouldn't add up to 30sec for a very simple scene
all the data should be already indexed in the asset database
Yeah, reading through the baker docs, as long as all the per-gameobject-component asset dependencies are properly hooked up, it shouldn't be rebaking unchanged assets, it even calls it "Incremental Baking"
i think it's incremental to changes you make after the whole thing has baked
because i can tell that's not true atm after reloads
i have an editor assembly with nothing but a single [CustomEditor] and no other assemblies referencing this
any changes to this will trigger all subscenes to rebake
there's no possible way they could have a dependency on this
are you recreating class inheritance in ECS? π
i'm taking a look at it now myself π i have the azure nature pack. that was the one you were testing with, right?
for the most part yeah just baking their sample scene
but i have other scenes ive tested on previously
POLYGON Fantasy Kingdom & POLYGON Apocalypse
for example
i'm pretty sure i had their sample scene at one point in my netcode demo as subscene.
and baking was nearly instant
baking or conversion?
pretty sure my scenes cached with conversion
reimporting the whole package doesn't even take me more than 30 seconds π
only urp... argh
are they in shadergraph? doesn't seem so
can you send me the shaders? π
that's why i usually don't buy anything. support the default stuff damn it!
i can but it'd be a huge pain
you have to manually go through everything and apply them
if you wan to to this fast probably easier to just add dots instancing to the amplify shaders
i think you can just edit the output shaders that come with pack
buggy AF - import azure pack, crash. move environment GOs into subscene, crash.
0.51 was more production ready than 1.0 now - i seriously hope unity is able to fix this stuff before the end of the year.
read PM ^^
Ha! No, just arbitrary data loading into ECS components from text serialization with jobs support (after loading), I just tried to get some help in the advanced-code channel for what appears to be a bug in C# source generator support, but it devolved into somebody being convinced I was X/Y problem-ing
There's no inheritance or anything, its basically just mapping data with a string identifier to the right static function for that identifier that creates ECS components with that data in the right way, each "Component" in the xml is given its own set of static creation methods that are jobs compatible based on an attribute that registers it for the given common ID, essentially mapping externally loaded data directly into one or more ECS components, great for network transfers and whatnot
Problem is, I hate having to add each new bundle of static methods to some global thing by hand, its just ripe for typos and whatnot, especially dealing with lots of similar types, so I figured I would use a source generator to spit out a switch that just takes the string identifier and runs the proper static methods, but apparently thats just a bad idea, not sure how else to achieve it while keeping jobs compatible
The crash splash page is like a close friend by now. I see it every day.
Uhmmm. Yea... Yea. The baker or GOCS's back then were more flexible than now and I still miss [GenerateAuthoringComponent]. Otherwise, netcode has made leaps and bounds since then though.
Oh I miss [GenerateAuthoringComponent], that made it so simple to create little data types here and there, especially for testing stuff
https://forum.unity.com/threads/dots-dev-blitz-day-2022-q-a.1365090/
Remember, dev questions on the 8th of december.
Also, discord's font is different. Hrm
has the asset database bug been fixed in new 2022.2 versions?
I look forward to reading 80% of questions that have already been answered or could be answered by the community π
That sweet 20% though
which one
there are too many
the newest one π
i mean which bug
there are more?? haha ok
It's hard to find a version of unity where the patch notes don't include an asset database bug fix
there's usually 2-3 per patch
Are you talking about the major issue that i can't remember exactly what it was but it plagued 1.0 launch in b6?
yep
what was the problem?
The one where creating a file resulted in entity header corruption? Largely fixed. The one with random entity corruption on reload? Still happens.
so tertle, the scene you sent me. does this take 30sec for you when you click reimport?
hm, ok. still on b9. i don't have the former bug but the latter one. so if that's still not fixed. not much point in upgrading
It's pretty rare. Maybe once an hour. Although I dont know how frequent it was on the < b12 versions because I was getting the former every domain reload.
i'm confused. wasn't there a 2022.2f1?
i had this problem not seeing new versions in unityhub2 but now i have 3
newest is 2022.2.0b16 for me
@rotund token the subscene takes 10sec to reimport for me. what's weird if i profile the editor. hardly anything is happening. tbh, i can't even find stuff related to reimport. idle the scene takes 6ms, with reimport it's 13ms per frame
there is, it's never been added to hub
or announced
you need to use the hub url to get it
you have a 5800X right?
5900x
ah yeah
step up from my 3900X
profile then click Open to see the live baking costs
it should take just about as long to open as to import originally
i should point out i don't even consider this to be a detailed scene, there's no elevation or detailed buildings/cities
yeah, that's what's so concerning. this is just a very small fragment of an open world
to me the time to bake it is within acceptable range
the issue is it that they just all get rebaked continuously on any change regardless of relevance/dependency
i'm hoping this is just a bug
ok i see now. 4.5s to open
is this in a m2 drive?
this library is on an older ssd for me
i should probably compare moving to my m2
but apart from that, i have a 3900x and 32GB of ram. i shouldn't really be processor starved here.
older ssd, sadly i don't have a m2 drive π
going to be costly if we need to buy brand new 5k+ computers for everyone at work on next project just to load a subscene ^_^'
ok the 30% faster loading intrigues me then
i guess the single thread performance of the 5900x just helps that much
yeah but the actual time is 8s due to other costs entering
is the other 3s like the hierarchy?
my conversion was like 7s on that step
but that included all my own libraries
let me test in this standalone project i sent you
ok so thats just loading scene from disk
that's fair enough - still a pain for workflow
i don't get it. when you drag&drop the scene alone in the editor it's instantly open
no idea what MergePrefabs does
i am much slower
i don't know why, this is project i sent you right?
second time is a tad faster but still much slower
yes
You guys on the same version of unity?
nope
i am slightly more up to date
but i'd be surprised if that mattered because i had similar experience on his version
previously
have you found the code for MeshRendererBaker? I can't find any π
it eludes me! π
com.unity.entities.graphics@1.0.0-pre.15\Unity.Entities.Graphics\MeshRendererBaking.cs
haha, ok no wonder i wasn't able to find it.
main project has no entities.graphics π€¦ββοΈ
a picture is starting to form why this was so much faster for you
oh wait
no it must have been in project i sent you
you're just searching in wrong one
gotcha
all good, your project hsa it ^^
looking at code now. so are we at a point where we have bakers which don't scale?
lots of individual GetComponent calls. single threaded systems. what is this?
Enterprise Quality Code
See, once an hour
It seems to originate from the SceneTracker. And my entity list specifically avoids checking scenes. It just pulls a universal query from all entity managers.
I don't suppose anyone can tell what I'm doing wrong with this job
public partial class DestroyEntitysatDest : SystemBase
{
public EndSimulationEntityCommandBufferSystem endcommbuff;
EntityQuery ExitTargetQuery;
protected override void OnCreate()
{
endcommbuff = World.GetOrCreateSystem<EndSimulationEntityCommandBufferSystem>();
ExitTargetQuery = GetEntityQuery(ComponentType.ReadOnly<EnemyTargetTag>(), ComponentType.ReadWrite<Translation>())
}
protected override void OnUpdate()
{
var GetCellindpos = new GetCellIndexFromWorldPos();
var ecb = endcommbuff.CreateCommandBuffer().AsParallelWriter();
var PaidExitTarget = ExitTargetQuery.GetSingleton<Translation>();
Entities.
WithAll<EnemyDudeTag>().
ForEach((Entity entity, int entityInQueryIndex, in Translation currentpos) =>
{
if (math.distance(currentpos.Value, PaidExitTarget.Value) < 2)
{
ecb.DestroyEntity(entityInQueryIndex, entity);
}
}).ScheduleParallel(this.Dependency);
Dependency.Complete(); endcommbuff.AddJobHandleForProducer(this.Dependency);
}
}```
I keep getting this error all of a sudden which I never had before and I haven't changed this code at all The previously scheduled job DestroyEntitysatDest:DestroyEntitysatDest_LambdaJob_0_Job reads from the Unity.Entities.EntityTypeHandle DestroyEntitysatDest_LambdaJob_0_Job.JobData.__entityTypeHandle. You must call JobHandle.Complete() on the job DestroyEntitysatDest:DestroyEntitysatDest_LambdaJob_0_Job, before you can deallocate the Unity.Entities.EntityTypeHandle safely.
its like a completely separate job has somehow broke this job
Wait, do you call complete on jobs when you hand them to command buffers?
I dont remember the specifics of the lambda jobs but if you set the dependency parameter of .ScheduleX(), you must assign the return back to the jobhandle.
It should do that automagically unless your doing something complex I thought
so either remove the this.Dependency or equate it back to dependency Dependency = Entities...
Also, if you're completing it right after, just use .Run()
I only put the Dependency.Complete() because I thought that might fix it
not sure I understand exactly but removing this.depenency fixed it like you said, thanks a lot
he meant Dependency = Entities.ForEach().ScheduleParallel(Dependency);
various overloads of the lambda jobs.
oh I see now
Removing it also works.
Unless its changed, from what I remember the Dependency chain is supposed to be somewhat automatic unless you have a more complex chained series of jobs
yeah and I guess I fell into the trap of not making it automagic
yeah, or that. though i prefer explicit statements
It is, kinda. Automatic as in if you dont specify a handle dependency, it's just Dependency = EFE.Schedule(Dependency);
I'm lazy. But dont be half lazy. Either be full lazy or write it all out.
yeah I'll go for full lazy thanks
I wish I had a use case that needed large chains of jobs, the whole scheduling system is pretty neat
yeah its way better than it used to be
hehe, that's like half of the system π
and yeah, the job system is really robust and fun to use
all this was much worse beforehand and on the rewrite i was pretty stunned how well the job system figures out when to start jobs
finding bugs though can be quite tedious. one stupid mistake and all comes crashing down π
Finally got it in one image. Big old stack.
I've gotta say, making jobs out of structs is really beautiful for a big scheduling method. Especially if all the names are aligned vertically.
There was a forum post about the q&a going out, confirmed what we expected that 1.0 is releasing with the tech release. Iβm still thinking even tho itβs improving there are a lot of issues bugs and pain points to get through in maybe not a lot of time left?
Ehhhhh, there's a lot of bugfixing until it's ready for public preview. Note how unity hasn't announced the pre.1 build is available yet.
Definitely not full "release" release but I expect a public "pre.2" build by the time 2022LTS is announced.
I will consider it production ready when they get non-gameobject entity selection in scene view working, lol
Ha. Nothing is rendering for me in scene view anyways
I'm using sprite renderer and unity has been pretty up in the air on the future of hybrid components.
Yeah, that and the opposite direction, haven't seen much news about the pure ecs runtime
For now, they're bare minimum functioning but definitely not in a good place. That's 1 question I really want answered definitively on the 8th
Tiny is dead. 6 feet under, for now.
And probably for the next 2 years at least. So dont hold out hope for that.
Damn, that's why there hasn't been any news
I already have the .net transition as my distant pie in the sky
The entire team was dissolved and either redistributed or laid off entirely according to the last direct mention of that team.
I do recall that, wish Microsoft would hurry up and just buy Unity already
Then again, it was only 4 guys so that isnt much.
Ehhhhhh. Eh. Microsoft buying Unity would be great for .net integration but it'll probably take years to bring the engine to that point.
Years unity is attempting to do anyways, without Bill Gates breathing down their necks.
haha there's a system at work that's over 5,000 lines long
π
'best practices'
one of those things that started smaller, and just having stuff tacked on and was left too late to refactor and no one wants to touch it
good times
I mistakenly coded the entirety of the system list in my entity debugger in the main dispatch class. It was only 200 lines but separating it into it's own class was like pulling teeth.
Here's a talk that came out like 2 weeks about about just this (timestamepd to the .net future part): https://youtu.be/T6HhePbyAsg?t=1460
Join us as we explore how Unity uses .NET technology to empower creators to deliver incredible real time 3D experiences. We will explore the past, present, and future of .NET at Unity, featuring high-level strategy, technical deep dives, and live coding!
https://www.dotnetconf.net
#DotNet #dotnetconf #dotnet7
πββοΈπββοΈ Get your questions answer...
Yea, the info in that is pretty old though. The pertinent parts about moving away from assembly refs and attempting to maintain compatibility with .net master branch were announced back in Unite 2020? Perhaps earlier.
yeah this is a huge task for them
must have been working on it for a while
probably still a bit off
Yeah, that vids pretty much just a good overview of the work to be done and the plan as it stands still, with all the "weight shedding", its nice they still seem committed to it
I honestly think we'll get DOTS production release before we see that.
be so nice when we get onto core though
what would that solve?
Part of the point of moving to core is getting inline with Microsofts future plans, iirc they were planning on merging .net core and mono runtimes
anyway, i'm not supporting MS buying anything. they are big enough already π
MS is actually pretty good about buying to fund, they just like owning things they consider assets, and they def consider unity an asset as its one of most well known users of C#, and its also useful for internal prototyping and used for way too much
what i pretty much don't get is why unity doesn't have a store with a 15% cut
We got enough stores...
Same reason Microsoft Store sucks, turns out its actually pretty difficult to cultivate a good store, even when you have a direct line to developers
EGS seems to be doing fine
isn't it losing a huge amount of money/year?
And they had to take a huge cut vs competitors to attract that attention, and they still have contention when something is exclusive to it vs steam exclusive
It works if you advertise like mad and bribe everyone.
so? better than anything involving gamepass
Gamespass is actually pretty sick if you have an xbox, can't really speak to pc games pass as I use steam
i had a colleague who swore by the game streaming on PC
loved it
just played a different game every day
yeah, great for consumers.
Epic's also not really worried about losing money on the store, they have a much bigger multibillion dollar product that generates enormous profit
but yeah EGS has lost over $500mill and their own projections is losing money for at least another 5 years
that doesn't sound like something a public company strapped for cash wants to go into ^_^'
Latency is killer though. For singleplayer or less reflex based games, it's great.
yeah i believe he was mostly a SP gamer
was surprised the service even existed in aus
most of these services just dont come here
Oh yeah, I haven't even messed with the streaming stuff really, that said, I remember OnLive! That was game changing when it was new
Nvidia's GeForce Now was really good back when I used it when I had a shit comp but good internet. But when I had some spare change to throw down on an actual comp, there was no need.
Yeah, its a good intermediate, wish Valve would do something similar just because I'd be more inclined to use something like that if it was in addition instead of a whole separate deal
It's a fuck load of money and bandwidth for very small margins. And the legal headaches of trying to get all those licenses to host the games.
Nvidia was big enough to go "skip asking for permission, ask for forgiveness later" path and gain a huge market share because of it. Steam, despite their importance in game distribution, isnt as untouchable.
And now that Nvidia burned that bridge, valve doesnt really have a path forward in that field.
I'd be surprised if there were seperate legal ramifications to the way Nvidia is doing things
Oh no doubt. But Nvidia has enough lawyers and fuck you no DirectX integration power to smooth over any problems.
What legal difference does it make where you run end software on a private end-to-end stream? Like, am I violating some anti-streaming clause by playing games over steam link?
You? Standard IANAL but the T&S probably has something about that.
is it enforceable towards the random streaming it? Probably not so it's safe enough.
I guess my point is, especially with Nvidia's method, what sort of copyright/ip violation/legal threshold would they be committing by letting you download your own games via the authorized software onto a computer you were authorized access too?
Isn't that exactly the same concept as locally? I think its probably a concern in the questioning sense, but its not even kinda shady or bypass-y, I'd be curious what, if any, the legal complaints have been
Oh, ok, the complaints against Geforce Now I'm finding aren't that you can do it in general, its specifically that they had a subscription service that let you access games you didn't own outside their paid subscription, but didn't have the license to distribute those games to people who otherwise didn't buy them off of another storefront, I was very confused why people cared about the location of the hardware a paid and legally access game was run on
That's outta my ballpark. Im sure google can probably answer that, if it's not locked down tight under NDA as these legal things are.
Progress has been excruciatingly slow as I attempt to figure out how to do this.
I dont know if I should keep the icon but I had a bunch of white space and well, nothing else to stick there.
i'd prefer an entity reference that doesn't care about the version. saves 1 int
sadly that would cause a lot of bugs
yeah, i know. :/
i just wish the option was there. for example, any child doesn't need a version. same goes for parent.
or you reference some database entity that will always exist
maybe i'll try this out at some point and just hardcode version 0 or 1 (wherever it starts, i actually don't know ^^)
i assume you mean only from parent?
but anything targeting the child does
so i'm not super sure of the advantage here
well, the advantage is really just micro optimising 2 ints to 1. i know it's not great for the can of worms it opens
Now for the hardest part, how am I gonna do the graphic. 128 visual elements?
which graphic do you mean? the chunk visualisation?
ugh why is only one terrain collider getting baked. i wish they didnt make havok pro only because unity physics debug views still look like garbage
Yea. The old one was made by generating a mesh then calling Graphics.DrawMesh. I'm gonna have to see if it's possible somehow in ui toolkit
ah this bloody issue
it's got me before
{
state->PreviouslyEnabled = true;
OnStartRunning();
}
state->BeforeOnUpdate();
// ...
OnUpdate();
OnStartRunning updating before BeforeOnUpdate
so OnStartRunning doesn't have updated dependency which is triggered in BeforeOnUpdate
and if you try do so an operation you get
InvalidOperationException: The previously scheduled job StateFlagSystemImpl:StateJob writes to the ComponentTypeHandle<BovineLabs.Game.UI.UIState> StateJob.JobData.StateType. You must call JobHandle.Complete() on the job StateFlagSystemImpl:StateJob, before you can write to the ComponentTypeHandle<BovineLabs.Game.UI.UIState> safely.
and it seems I have to do something stupid like this
{
SystemAPI.QueryBuilder().WithAll<UIState>().Build().CompleteDependency();
SystemAPI.SetSingleton(default(UIState));```
Dependency.Complete()
or
SystemAPI.GetSingletonRW<UIState>().ValueRW.Value = default;
do not work
Legitimately everything
- I deleted a material only used in a urp full screen effect, everything rebake
- any script reimport, even if it's in an assembly with only 1 script that is a CustomEditor with no other dependencies referencing it
- restarting unity
the incremental works for me
i don't get full rebakes
that is part is fine
the 1. is a bit odd
it was a material referenced only by
Universal Renderer Data
which is only referenced by project settings
it was just a very unexpected case because i saw on reason it should trigger it so it surprised me
i can't repo it though
my guess would probably be along the lines for this case is i had script changes not-refreshed (i manually refresh assets in unity) and deleting this asset simply triggered a refresh
i lied
i may have triggered it again
i have no code in this project
not a single script
(outside of unity libraries)
i'm still not certain there's an issue there and i just haven't accidentally refreshed assets by making a deletion and triggered a domain reload another way
(sorry if I appear negative I'm not trying to be. I actually like baking I'm just a bit stressed as today was our semi content lock for our launch)
something I am finding though is i randomly get really big spikes in GameObjectChangeTracker:MergeEventsJob
this is 5 sequential profiles of Open subscene in the same domain
(sorry scale is off will have to look at numbers)
7000ms, 20500ms, 7800, 20300ms, 37000ms
i have both hierarchies open, but the old one focused
and the mode is automatic (authoring)
i literally just hit open
and sit watching the bar
cpu usage is 4%
yeah, these profiles are hitting the Open button the the SubScene script
i was profiling that specifically
if you want i can send you the scene, i split this off into a small standalone project so i could compare with Enzi
37seconds was the last
but that was an anomaly
sure
noticed there was a performance test for this so i was curious and ran them
Are the backing fields of auto properties guaranteed to be sequentially layed out inside a struct at the position the auto property is defined?
are you talking about StructLayout.Auto?
I'm talking about the default behavior, so no attributes on the struct
I have a slight error I made the waypoints move instead of something too them π
is there an issue with adding a buffer using a parallel ecb, like this:
interestingly, i've only ever added buffers elsewhere using EntityManager or single thread ecb
But i'm getting an error with this
What's the error?
the buffer line is the only thing i've added to make the difference in the Spawner system ( where the error is saying the ecb was written )
That's coming from SetComponent, not AddBuffer
i haven't added any other stuff that i'm aware of except the buffer line
What does the buffer component look like
need to just double check that i think
I'd turn off burst and look at the actual exception proper
it doesn't throw an exception with burst off π€·
Then your burst cache broke
What burst version are you on
I'd restart the editor if you haven't done that yet
burst version, not dots
burst 1.7.3
I think that didn't have any caching issues, not 100% sure though. tertle reported the issue
Have you tried restarting?
just trying restart now
Also any reason why the unit you are spawning isn't already spawned with the buffer instead of adding it via an ECB?
i have had some occasional odd issues with 2021.3 for sure, compared to 2020.3
yeah i'm just using basic runtime conversion and then adding stuff when i spawn
I recommend you use prefabs, since runtime conversion is gone in 1.0 afaik
it is prefabs already yeah, just not using subscene conversion at all
keeping authoring to a minimum while i develop the project, as it's easier to just add/remove/change what components i want on things in code than clicking around on prefabs etc
yeah restarting fixed it
weird
thanks!
would you say that authoring has improved in 1.0, become simpler/easier, and have bugs been ironed out yet to the point where it's worth the hassle of moving to 1.0?
( besides the wider architectural improvements that 1.0 brings )
it sounds like the array doesn't exist when its being called or set
I think it's pretty good
all of the other stuff is definitely worth the upgrade imo
I have the strangest issue, and I don't know if it's me messing something up or if it's a known bug.
Everything works fine, but for some reason as soon as I do some actions in the editor, it breaks my collider blob assets. For example, clicking an entity in the entity inspector during runtime seems to mess the collider up for some reason. Anyone have an idea?
The error throws in BroadPhase.cs, since the pointer is not valid:
I also checked, BlobAssetReference.IsCreated is false
I'm not even doing anything special with the collider, it's just automatically created during baking by the PhysicsShapeAuthoring
It also only seems to break on the client, not on the server, which makes it even more strange
ya know, coding in OOS and reference types everywhere makes life so much easier. Change one value and everything referencing it also changes magically. I can see why people like OOS.
silence, infidel!
I assume you mean with an open subscene
I havent had that blobasset breaking with 1.0.0.pre.15 and 2022.2.0.f1 editor
anyone noticed that if you turn off burst compilation
function pointers still seem to run bursted if you had already run them bursted once
No, just during runtime in the entity hierarchy
Really strange
Have you tried running it on another system too see if it still happens?
Yeah, my bad, should have been more clear
No, but I don't see how that can be the issue
Just to rule out potentially obscure hardware issues
I'll check when I'm home π
I only bring it up because I've had a mind-numbing experience once where a photo I was editing kept getting noise over time / edits, and a few games would crash with super obscure not-even-on-google errors, turns out I had some bad/funky ram that was flipping just enough bits to cause issues, but not enough near protected space it was causing a bluescreen
Ever since then, if something is randomly corrupting over use, my goto is to check it against another working machine, just rules out the vague and unlikely
I doubt this is it since it's very reproducible, also the PC is very new but I'll check regardless π
is it a ghost?
I don't think it matters what I click to inspect
But I'll check once I get home
I don't understand why it only breaks on the client
i'm unable to repo it
i have a subscene loaded both on client/server
and clicking in hierarchy or scene view causes no issues
but i don't have ghosts setup hence the asking
Even wieder, I have a graph system that uses Odin for serialization, if I change a value there, the same error occurs. Really weird
maybe try remove odin?
I don't even save the graph
(that said i have odin in this project as well, but it's not being used anywhere)
I can't really, I use it for a lot of serialization
rip
It's not a debilitating issue either, just really weird and annoying
Odin?
yeah
Not sure, I'd have to check. 3.something
But afaik their editors don't interact with the entity inspector
ecs support was on their roadmap but yeah turns out mines a bit out of date
just curious
Is there a way to debug what is invalidating the reference? I can't set a watch on the PhysicsCollider.Collider blob asset
Something has to be changing the value somehow
it's a bit weird if the subscene is closed
I don't get why it's only on the client
That's what's really confusing me
I guess I could locally copy the entities package, change the field to a proprty and break on the setter
And they (i.e. nobody) said the graphic could not be done.
Actually surprisingly easy. Just draw a line for every column.
ha thought you were doing the green background colour
but it's the lines!
that makes sense
cool
you ever notice on days when entities is playing nicely and not crashing
Days? You mean minutes?
something else steps up instead
at UnityEngine.Rendering.ScriptableRenderContext:Submit_Internal_Injected <0x000e0>
at UnityEngine.Rendering.ScriptableRenderContext:Submit_Internal <0x00072>
at UnityEngine.Rendering.ScriptableRenderContext:Submit <0x000d2>
at UnityEngine.Rendering.Universal.UniversalRenderPipeline:RenderSingleCamera <0x01892>```
common URP i don't want to deal with you
huh, that aint good.
@viral sonnet 1 week of nonstop coding and I (almost) finally brought the Entity Debugger to the modern age.
To be honest, I've never had the RP crash on me. Even in the middle of coding my lighting. No matter what I threw at it, at least on the shader side, it always stayed alive.
I definitely had GPU stalls for over utilization but that's Windows killing Unity, not my code.
Hybrid?
entities graphics or whatever it's called now
but all the errors are from the srp but yeah it could be at fault
Yea, always gonna call it hybrid. Entities is core dots.
you know what, i do miss being able to see fragmentation
i want to confirm if chunk components still cause bad fragmentation
I dont know if this can show that. All i'm doing is binning archetype chunks by entity count.
Maybe.
thats basically what those lines show!
I can post a zip of the current source but none of the selection work (other than inspector view) and none of the search bars are implemented.
If ya want it now or wait a day or three for me to finish this up
it's down on my list of things to look at atm
but it's something i wnat to check out
i believe previously, and based off graphics source it might still be the case
but when you add a chunk component new entities will no longer be added to that chunk
i need to confirm this
Give me a sec
Do you know what the define is for netcode package?
what do you mean?
Tiny has the DOTS_RUNTIME define. The I want to gate a small section of code to run only if netcode package exists
or else this debugger will require netcode as a dependency
It's just these 3 lines
they are defined on the asmdef
usually unity uses UNITY_NETCODE
but you need to set this up on your asmdef
this kind of thing
but for netcode
Like this?
Wow
KornFlaks is a man of focus, commitment and sheer fucking will
I'm curious how this graph drawing scales to high chunk counts
Shouldn't matter. At most with an extremely fragmented chunk distribution, it's only 128 nodes. It's the backend data gathering that might choke. It's all OOS UIElement coding. No jobs or high performance coding found in the current various DOTS inspectors.
It runs on a structural change filter at least. So if you're doing structural changes every update, it might be pretty bad.
You know I might take your implementation and just inject it into the existing archetype window
(just the graph)
Eh. The problem with mine is that I frankensteined it together using a tree view. Every line is a different item. Which is why selection is disabled.
Hmm I'd have to look
But the graph will probably work with an injection of "ChunkGraph" found under EntityElements
One of things I really like about ui toolkit is how easy it is to inject ui onto existing ui
You'll need to connect up the ArchCounts which unity doesnt calculate for their archetypes.
Like the filter I added to hierarchy
Yea, and the ability to see what's actually going on by hovering over an element of the UI is very helpful
The graph itself is hardcoded pixel offsets so you'll need to pixel shift using CSS for that
Would anyone happen to know why NativeList.Add has an in parameter, but the other types of native collections, like NativeQueue.Enqueue don't seem to use in params? From looking at the burst inspector, it seems like adding the in param to my native collection does dodge an extra copy of the struct? Is this maybe just a compilation level thing where I'm not seeing the fully optimized code?
Or maybe I'm totally missing some important point about in params in these use-cases?
nice! good job
^ this
Ya know, as educational as this journey was. I spent wayyyy to long on this. I'm gonna leave it unfinished for now until I have an overwhelming urge to complete the search and filter functions. Im gonna go back to my sim coding.
stupid question but is there some trick to get a bunch of the game objects converted in a consistent same order so that in a nativearray they are all in the same order
at first it was converted in reverse order no on second boot its just random π
if they're all in the same subscene, they might be baked in order if they all trigger incremental builder.
Alternatively, assign an integer to each one using a monobehavior
I can't even use subscenes to be honest they don't seem to be converted into the main scene for some reason when its closed π€·ββοΈ
?
yeah I don't know either I think its some bug with my version/project
I guess I'm going to have to do the add the integer thing every new boot the order is completely different, I've never come across this before
With incremental baking, I doubt entity baking is deterministic.
well that sucks
ok I think I found a way to convert the gameobjects in the same order I just place them all in an empty gameobject and convert that and it seems to work
What?
no 0.51
if I have convert to entity on them all individually then its just random, but if I do it like the above the its in the correct order
Huh
I'm sorry I'm not sure what the confusion is
There were a lot of quirks with C2E which is why Unity dropped it with 1.0. I guess that was one of them.
Make sure to unparent these entities or else you'll be eating massive transform costs for parenting.
oh really, interesting I did not know that, I only have one entity navigating through them so should be fine for now though
Thats if you change the transforms of any of these. If they're all static, then a change filter will skip them.
The ParentToLocal 4x4 matrix might be wasting chunk capacity though if not used.
ok that's something to be aware of in the future
to be honest I would just generally convert them straight to blobassets if I was going to do things completely properly
I just thought of something, wouldnt it be nice to see the hierarchy broken into chunks?
And yes, I did get filtering by archetype working
that's neat!
And you can click on the chunk headers to highlight the archetype it's a part of. No more hunting down the components list to find the specific archetype on a list that's 50 items long and foldered. Downside is no scrolling to the chunk info though due to how the list is constructed.
And yes, this will show all of the world entities with matching archetypes if player loop is selected (only useful for netcode tbf).
Any pros/cons of passing direct instance vs RefRW/RefRO instances to JobEntity's constructor?
I think using RefR/(OW) is better due accessibility check during job execution, but more performant would be using direct instance because two jobs cannot edit the same data. Do you agree with my theory?
what constructor?
what are you doing?
RefRW and RefRO are only used for aspects
I think you are not right. For example GetSingletonRW.
How do you want to modify a singleton without RW variant if RefRW is supposed to be for aspects only?
what constructor?
For a class that is implementing IJobEntity
you don't use RefRW/RefRO in IJE, also you don't use class for it
it can only be struct
it's way easier than that
you just use ref modifier on parameters in void Execute
codegen will generate job for you
ref for modifying ofc
in for Read only
My bad. I should use better wording. I meant structs, not classes. Anyway, I simplified it here to get quickly to the right point, and with the following messages, I made it quite too simple as it lost its sense. What I meant is IJobChunk, where you need to pass handles for component types and so on, but in some scenarios, you want to get there a singleton that you want to modify. This singleton is passed to other jobs in the same system. So you have to pass your singleton into the job's constructor, and my question was if it is better to pass the Value of RefRW or the RefRW wrapper. I imagine calling the ValueRW will run some locking mechanism; therefore, if I pass it there without the RefRW wrapper, it can be locked for other jobs modifying the same Singleton but different data. They are always touching different data.
from 1.0.0-pre.15 changelog
oh
I see
it's optional though
and probably only useful in very large jobs (codewise)
with many nested helper methods
which get rekt by ref and in parameters
mind showing code of what you are trying to do?
Sorry, it is not about code. It is a knowledge question to check if my theory is correct. When designing these systems in depth, I will need to use the right approach. So I need to understand how it works. I can give you an example:
Let's say you have a singleton. Where do you have stored float3. You will update this float3 with three jobs, where each job is editing one value of float3. You will need to disable some restrictions and do a workaround to be able to do this. Each job will require a set of types that are partially shared between the three jobs. So the right approach is to use IJobChunk here and mark the types as ReadOnly. Each job needs write access to the singleton.
public void OnUpdate(ref SystemState state) {
var singleton = state.GetSingletonRW<Something>(); // Returns RefRW<Something>
// apporach 1 - which I think is locking the edit access for all jobs:
var unwrapped = singleton.ValueRW;
new Job1{ singleton: unwrapped }
new Job2{ singleton: unwrapped }
new Job3{ singleton: unwrapped }
// approach 2 - you will need to call singleton.ValueRW in the job.
// That means each job will try to lock the 'singleton' for itself and it will pontentially throw an error?
// If they manage to write into the singleton at the same time
new Job1{ singleton: singleton }
new Job2{ singleton: singleton }
new Job3{ singleton: singleton }
}
The Jobs in approach1 hold a reference to Something, and the jobs in approach2 hold a pointer to Something with some write-validation on dereferencing. In one scenario, you are exchanging safety for performance, and in another, vice versa. That is the logical outcome for me.
oh, no no
You are not supposed to do that
RW can get invalidated before job is actually executed
ahh
you need to either store entity value instead and pass lookup to collect data during job
or just pass copy
So the RefRW is WeakRefRW.
it's just pointer to actual data
but as soon as structural change happens - it can be invalidated
and safety system will not pass it
you might want to store true singleton data somewhere else outside of entities if you just want to pass pointer to it around
Thank you, where did you find this information? I was going through Entities docs and have yet to find an answer.
I'v been in this channel for almost a year now π
above you can see my implementation of singleton struct concept
it's persistent and never gets moved around like entity data
one struct type per world design
Thank you very much, I understand what is going on now. π
Are we able to set an Enableable component as initially disabled from a Baker now?
Yes
Is there a way to get a ref to a part of a NativeArray<byte> as a specific type beginning at a specific offset?
There's SliceConvert, but I can't find anything to get a ref to an element of the slice
Get the pointer, offset it to the start of the slice, cast to the type
Yeah that's basically what I ended up with
And there are no alignment issues with this? Since the data will not be memory aligned
I've never tried this so just making sure it's fine
Eh, profile it
Anyone know if this error is actually a real thing or just something that got messed up? Because Google results are borderline non-existent but suggest it's something messed up, perhaps?
structs cannot be passed to or returned from external functions in burst. To fix this issue, use a reference or pointer.
https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/csharp-calling-burst-code.html
No clue what you're attempting to do but here they use float4s which are structs
Just playing around with some simple extensions such as:
So ... your link sounds like it is a real thing, then?
Ah, no. That return float3 will not work
use (float3 vector, float3 planeNormal, out float3 result)
then assign result. Burst compiled methods must return void.
I see. Good to know, thanks!
I imagine your link will describe everything well enough to figure it out!
Here are the supported types for return values
Gotcha, thanks!
Where is that list again?
Ah, buried in there. I remember seeing it in 1.6 or something. A while ago and lost it.
Yeah it's somewhat hidden in the docs
Great! Is there a new api to do that from inside a Baker?
I don't know if there's a function that doesn't need the entity passed, but this also works
GetEntity without any properties sent in returns the primary entity currently modified by the baker I believe.
I just found it weird there isn't an overload that gets passed nothing similar to the AddComponent method
I meant the SetComponentEnabled method
Since you don't need to pass any entity to AddComponent
Ah, hrm. No clue
Still good to know, thanks π
Ya can probably write an extension as well. Just this:```csharp
public void SetComponentEnabled<T>(bool enabled) where T : struct, IEnableableComponent
{
CheckComponentHasBeenAddedByThisBaker(_State.PrimaryEntity, TypeManager.GetTypeIndex<T>());
_State.Ecb.SetComponentEnabled<T>(_State.PrimaryEntity, enabled);
}```
Yeeeeessssss
Any idea why I can't use the authoring components for physics if I locally import the package?

(I have no compile errors)
Reimport physics
I've had this issue a few times with a lot of different packages
Where it didn't import properly
Find the package folder in the directory view in Unity and just reimport the entire folder.
^ good advice because there are likely other issues
Tertle, have you seen the new jetbrains fleet? Looks like a VSCode knockoff
Yes
Looked at it a week or so ago
Was interested in the collab features
I don't think code with me works with rider still
They hit a snag or something
It looks interesting. Using VS code now for generic text editing. Worth moving over?
I've used it a bit, but C# support is terrible compared to rider
Atleast a month ago when I tested it
No doubt, rider is dedicated C#. A trimmed down better integrated intellicomplete VSC might be worth
Well, the point of fleet is that it gives the same experience. From what I understood initially, fleet uses their other IDE "engines" in the backend for language specific features if you activate smart mode
And that isn't the case yet afaik
Not sure what the issue specifically is
Huh, ehhhh. Guess I'll just stick with VSC then. If I wanted a code editor, I'll boot up one of the mainline ones.
The idea is very intriguing at least, I just worry that their monetization model will completely fail to compete with VSC
I still use notepad++ π
(since that's free, and fleet isn't)
You could say the about rider though vs VS
Rider has been a lot better than VS for me
granted, I'm using rider for free atm π
broke student time
Although I do commend jetbrains for their licensing model. It's sad that so few companies reduce the subscription fee for long time customers
yea, unless it's cheap enough from the start. I draw the line at 10 bucks a month.
Iβm an atom guy for non C# work, but theyβre sunsetting it this month. Thereβs other editors (is sublime still a thing?), but generally speaking I donβt like all the telemetry vscode sends back. Would love to find a new editor that isnβt a full IDE (I work in nodejs and golang too)
https://github.com/VSCodium/vscodium There's VSCodium, VSC with telemetry stripped from the source. Otherwise basic text editors work. I heard of people coding in microsoft word.
I use VSCode for stuff at work exclusively, which is mainly python and some JS. For those languages it has very good support imo
Yeah, I may check out vscodium. Or go back to sublime. Atom checked a lot of my boxes, shame MS killed it. Thanks for the recommendation.
megacity sample out fyi https://github.com/Unity-Technologies/Megacity-Sample
oh that's huge
literally
isnt it git lfs that doesnt work with download?
No announcement, huh
theres crashing mentioned in the thread, happened to me too several times - https://forum.unity.com/threads/megacity-feedback-discussion.647248/page-4
seems like if I play immediately before it finishes doing whatever stuff in editor it doesnt crash
Audio seems to just use a pool of audio sources
its really underwhelming(the audio), just got it to play now
https://github.com/Unity-Technologies/Megacity-Sample/blob/master/Assets/Scripts/Authoring/Lights/LightRef.cs
Lights are just pooled gameobjects, ha.
I thought graphics with HDRP already supported all light types?
As hybrid components.
Ah, I thought they were converted to some kind of ECS format
Nah
I wish all of the rendering components were at least available as hybrid components
Tilemap renderer when?
2033
SortingGroup is also missing
An optimist I see.
I mean, theoretically it's simple enough to remake. It's all the in-editor tooling and rule tile functionality that's difficult to replicate. Although those are open source.
And physics integration. I need the ability to pull a tilemap collider into a mesh for DOTS physics and coding that seems like pain
Yep, I use entities for object collision atm
(and also since they need to be synced by the server)
Although theoredically I can do so using a 2 pass cube/rectangular length set process but that's just pain.
unityhub3 is a POS: Unable to refresh license. Please try again.
anyone has downloaded the full megacity demo?
yeah
tortoisegit is stuck on Resolving deltas: 100% (2401/2401), done. and the project keep growing
how large is it?
just the assets folder
17.9 gb
whoa ok π
I took the dog for a walk while fork downloaded it π
they still didn't bother to add 2022.2.0f1 to unity hub ...
I think it's only available for the public for us (dots people) because how unusable the asset database crashes were
i see
great f1 release π
lol
download page is completely broken for me: https://beta.unity3d.com/download/1c1f8590be28/download.html
or i dunno, maybe it's supposed to be that way
i don't think that is meant to be a user facing page? (or maybe its just broken =D)
Heh, yea. Just use the unityhub link below it in edge
It should open up unity hub that will prompt the download
github page for megacity has a link for the hub editor
Nah, the source is pure HTML.
link doesn't work for me
unityhub://2022.2.0f1/1c1f8590be28 this one? i did set my url association with the hub
if it doesn't work you blocked permissions or something at some point
hm, i already have it installed now. link works now for some reason π€·ββοΈ
SystemAPI.Query still doesn't work with structural changes right?
I don't think so, didn't see anything in the patch notes
shame but whatever, ToEntityArray from query it is
(cant use ecb, this is for setting up managed components)
I think it works for creating entities given an archetype. Dani listed only 3 allowed structural changes and that was one of them
i just want to add a managed component
which i don't think is allowed as it affects the existing chunk
On a side note, I finally gotten around to testing havok vs unity physics for circle on box and box on box sliding. Surprisingly, unity physics without contact stabilization is superior to havok in sliding across edges with minimal jumping / repulsing artifacts. Havok is really bad at sliding boxes.
My game is strictly 2d too and I make heavy use of tile maps. Between that and official ECS sprite support, I think itβs gonna be a hot minute. -.-
Yeaaaaa, it's pain.
It's still pretty fast with the batch set methods, but actual support would be nice
Havok has extremely sharp jumps when sliding across edges between colliders at all box bevel radii whereas unity physics without contact stabilization has near un-noticable jumps at 0.075 (each static box being 1x1x1 unit cubes).
I did stumble across this yesterday, looks kinda neat but Iβm waiting for 2022 lts before I try it out.
https://forum.unity.com/threads/1-0-3-nsprites-sprite-rendering-package.1367463/#post-8632077
Unity physics with contact stabilization had the same sharp jumps as havok so I think it's something to do with stacking stability.
As my game is 2d top down with no stacking, disabling it is free.
ooo this megacity
has an updated? custom entities HLOD package
I found it interesting that it was removed from entities graphics
I say sharp jumps as in 2 or 3 pixels whereas unity physics without CS has 0 or 1 pixel of jumping.
Ah, it's interesting but ehhh. I'll probably roll my own sprite renderer.
πππ
πΏ
did you enable the contact welding?
On havok? Where's that?
think the havok physics settings
add a havok component last time i used it should be there?
Ah, lets see if this changes anything
No difference. Still 2-3 pixels of jumping.
I've set custom tags on both the box and moving sphere.
This is the wall setup. Slide up and down.
It's worse if the wall bevel radii are 0.
Sliding across a lot of edges is something very specific to my use case but it's rather interesting that unity's free solution is superior to microsoft's paid version. Although their version is intended for stacking stability.
@safe lintel just out of interest, how long did it take you to import all the megacity subscenes?
i am quickly realizing 32GB of memory is not enough for Unity development anymore π°
did you open all of them?
they're all in the root game scene
progress update: 163 seconds to do 18 of 96
They shouldnt have autoload toggled on. Wow
slowly popping in
pretty sure they bake regardless of autoload
none of my subscenes have autoload enabled (i have a script to force disable to go through my subscene loading) and they always bake on domain reload
Wow. I did read last night you had a talk with one of the unity peps on baking performance. Anything come about that?
pretty sure my workflow is going to have to be keep all game subscenes in a separate scene and just keep a basic development scene in the main
wont be able to play the actual game without a few minute wait
progress update: 357 seconds to do 33 of 96
estimating 17min to import the subscenes for this
glad i finally have something large enough to test this
Yea. I think actual scenes are the way to go and small handfuls of subscenes per scene is best.
going to painfully do a bunch of workflow testing on this subscene
probalby going to legit buy the fastest AMD and fastest intel cpus on market early next year
just to compare which can import faster
I upgraded recently, it made a huge difference
my cpu is /good/ though
it's still the 2nd fastest at work even though it's 2 years old
I got some empty timeslots on my uni's supercomputing cluster. I wonder if I can chuck unity onto it...
My CPU was really old thats probably why it made such a big difference
(just in case anyone is interested, i'm doing like pre-pre production work for a decent budget project that intends to be quite open world which is why i'm so focused on editor workflow on subscenes atm)
Makes sense, and faster subscene loading in general helps everyone
i don't want to be committing to a workflow that is going to cause us problems 2 years in
obviously unreal 5.1 is extremely tempting for this type of project now that it supports skinned renderers
but i'd rather not suggest pivoting the company...
You could probably write something similar to unreal's map chunk system using subscenes
oh i already have something similar
I assume that'd be useful for a large open world
progress update: 829 seconds to do 78 of 96
Hopefully you dont need to rebake every domain reload
i totally have to rebake every domain reload, and that's my issue
Even closed subscenes?
from my testing yes
oh god
Why do they need to rebake?
well if you made a data change to a script that was baked
there's no way around it
but if I'm not changing the runtime data (and authoring I guess though this feels optional) then I really think they need to find a way not to rebake it
Well yeah, but you aren't doing that each recompile
at least this is using 45% of my CPU
1137
just under 19min
let's just hit play before i test a domain reload ^_^'
i suspect the next import won't be as slow - i've realized this is on my slowest drive by far because my normal drive had no space
so i'm going to move it
and try again
hilarious good start, menu didnt support ultrawide π
they've put some effort into this menu, i like
Are they using UIE or UGUI?
21 fps, very chunky editor
the coreeees
took roughly 500 seconds for me
but I was playing rimworld at the same time so maybe it wouldve been a bit faster
yeah i realized i had burst off
so i'm running it again ^_^'
it was like 3 or 4 editor starts after crashes and yeah was looking like my 32 doesnt cut it these days
i suspect i'll be about 500 as well
i didn't crash at all though
so that was good
very happy with this performance from rendering side
in a build i shouldn't get those double physic updates
@robust scaffold i did have my ground set to the tag used for contact welding
It's not amazing visually but it's amazing technically. Especially as someone with some experience with rendering
i want to test this in a build
I was using 6 static 1x1x1 cubes stacked and sliding 0.4 radius sphere and 0.8 sized cubes along the surface of this box stack.
that 2ms for cpu rendering beating expectations
if i can get past baking import workflow issues this seems promising for project
physics next concern ^_^'
so much wasted cpu time in Initialization as well
the player car sound is really obnoxious now π
looping generic car mp4. If unity couldnt be bothered to find a good audio source, just dont have any.
@rotund token have you tried moving any subscene gameobjects around? i just tried moving some wall section and its a slideshow
interesting
incremental baking is the thing that has worked pretty well for me
but no i haven't, i'm making a build which requires another bake
my poor memory though
legit need 128GB next machine i'm not falling for the 64g trap! (i would like it to last a little while)
oh that said, ram is expensive atm not sure i can afford that
i can't get out of the hit play-> crash loop
live conversion is a bit heavy
can that even be disabled now? didnt see the option in preferences, switching to non runtime authoring mode has the same result performance wise
and crash, internal where?
open the about window
type internal
you will see duplicates in your scene view though
hm, i didn't turn off safety checks now and first time play worked
because it wont update the old baked version
with live baking off performance is still kind of bad, like 5fps stutter but better than like 0.2fps before. and crash!
so overall, it's no nanite but still allright π
how many subscenes do you have open? just 1?
just 1
i don't think in this scale of project you will be editing it as a subscene
just open it as a regular scene
yeah
it was actually decent performance all those years(!) ago when they first released it
like nowhere near the crashes and slowdowns
then baking happened
try it. I don't trust my memory π
yeah still got it somewhere too though I think some dependencies got messed up as it complains about certain packages not being available
so you gotta upgrade some stuff and newer versions arent compatible with the old code(afaik dspgraph package is one)
hope it works (it did)
ok
so
i can domain reload in megacity without importing scenes again
even restarting unity does not require this
it's caching fine
which is great
but what the hell is going on
all this complaining and it works as expected
I saw the gif on the forums and it had building blinking in and out. Distant sure but still pretty obvious
oh yeah i saw at least 3 cases of this
just seems like some lod settings not setup well
The async loading of subscenes was smooth but the LOS/D needs work.
Or crank up the distance fog setting if they had any
i saw something on twitter that has really cool, nearly invisible lod fading
don't quote me on it but it looked official
That looks so odd.
thats because you're seeing it up close
Crashes instantly in the editor for me too
True. I need to play around with geometry shaders and see if I could procedurally generate those as well.
An entity with only a static physics shape and ghost authoring (i.e. no custom components) is capped out at 58 entities per chunk. So sad.
y'all getting your questions ready for the dots dev day q&a?
I just want to know what is being or will be done on the hybrid components side. That's the largest pressing question
i wanted to ask that question too but i think the answer is nothing
yea, and the unity peps who pop in here occasionally largely echo that
Maybe if the dots rendering folks stop by, if one of them can provide an example where they used compute buffer begin write() and somehow synchronized CPU writing with GPU reading.
"look at megacity to see how you can do it!"
only question I have which i doubt would be answered
is what new features are coming to animation? is it just a big rewrite using existing statemachine approach or will we get modern animation features, for example motion matching?
They did signal that animation is the next big push for dots so you might get an answer
they kind of left animation off one of the topics to ask about
but yeah i'm pretty sure any feature answer would be vague
generally you'd want to show those off in some big push!
topics concerning ECS, Entities, Entities Graphics, Burst, Jobs, Netcode, Character Controller, Unity & Havok Physics, and Samples & Documentation
hrm
^
gonna ask about animation cos they teased it in the blog
cant mention animation and not expect followup questions!
β¦
Maybe what's the status of world specific baking. Like client and server worlds. There's clearly method hooks inside the baker right now but they dont work.
i loaded up netcode the other day in project and i loaded a world on client
then loaded it on server (in play mode)
and it seemed to bake again before loading
i was confused because i didnt think this was hooked up yet
Using the multiplayer tools?
no
i do have concerns about this client/server baking doubling bake times ^_^'
but i am feeling a bit more confident about this scaling after testing megacity
giant first bake, seems reasonable stable reloading
while i'm not sure this would happen, i kind of think i'd like this would just be a post processing step on the entities themselves
removing components or adding extra things
I think netcode does that anyways using the ghost component attributes
netcode does a lot of structural changes...
yes
I:\Documents\BovineLabs\com.bovinelabs.game\Library\PackageCache\com.unity.netcode@1.0.0-pre.15\Runtime\Connection\NetworkStreamDriver.cs(197,13): Burst error BC1016: The managed function `Unity.NetCode.NetworkStreamDriver.<>c__DisplayClass20_0.<Listen>b__0(Unity.NetCode.NetworkStreamDriver.<>c__DisplayClass20_0* this, ref Unity.NetCode.NetworkDriverStore.NetworkDriverInstance instance, int driverId) -> void_aef4d46f9ec6d18a03913cfa3cd76414 from Unity.NetCode, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null` is not supported
why is this not an error for other people
oh wait
i guess issue is i'm calling it from burst
and it's not supported
that'd be why, just stack is useless
hey -- can you somehow limit the number of workers working on an IJobEntity? I'd like to set a max number so I can preallocate less memory :p
there's 128 max workers
which can be retrieved from
JobsUtility.MaxJobThreadCount
0-127 thread index
there's also
JobsUtility.JobWorkerMaximumCount
and
JobsUtility.JobWorkerCount
if you want to limit total number of workers
thanks! β€οΈ
my crashes from megacity π
What does it say in the crash logs?
these are mostly crashes i see in my normal project
i have a feeling if you turn off burst they go away
turning burst off megacity though
well i accidently baked it without burst
then turned it on
and never crashes
i mostly see this in my own project with burst on and some weirdness
turning burst off
clearing cache
and restarting editor usually seems to make things better
that said, this is anecdotal i have no actual hard evidence for this
if anyone is interested in the mega city crashes
the stacktrace is always a bit different.
enzi here with those infectious crashes. gonna make tertle's megacity crash as well
They're all segmentation faults on deallocation. I had this problem plenty of times when I mistakenly overran my pointers. They might have a ptr[++i] instead of ptr[i++] somewhere.
no idea it's trigger Trojan:Script/Wacatac.B!ml in windows defender
https://www.virustotal.com/gui/file/7bc9986105a8492ad157baa938f45530689525a419665a5c05655e62206d6eb8?nocache=1 you might want to dump whatever program reported that ^^
my windows defender said the files were perfectly fine
good old windows defender
now that's interesting
this is like first time in 2 years windows defender has actually scanned something for me
very odd
man's living 8 months in the past
i rather rely on malwarebytes π
windows defender has too much false positives and the realtime protection slows the system down way too much
even if, how would a .dmp file hurt you? π
I've never had any false positives with WD. In fact, I dont think it even runs
best of both worlds! but seriously, turning off realtime protection speeds up your system
not much point in running it at all then π
i really don't find any performance issues (at least not since i ditched mechanical drives years ago)
the slowdowns are huge with creating large files
if you don't do that you are mostly good
hmm let me test
how big is large?
a 3GB didn't even register on a profiler from windows defender
was near instant
i would have thought lots of small files would be more problematic tbh though
you sure you profiled the right exe? yeah, a large amount of small files is also problematic
and watch for hdd reads
well then it wasn't scanned i'd say. you would see at least some read
11GB file in 7s 1.5GB/s
well yeah it's obviously not being scanned
so it's not slowing me down π€
anyway i know this used to be a problem
we had an old guide in some doc that was like, exclude unity project from windows defender to speed up workflow
i think it was related to building project speeds
made like a huge difference
i turned it off several years ago. maybe it got better. are you running w11?
no
until they give me my vertical task bar back without 3rd party software
they will not get me on W11
i lose 223,600-93,600=130,000 pixels with a horizontal task bar
i will have none of it
preach it!
i don't know what they were thinking with this change. i'm annoyed by the lack of a vertical task bar and i don't even have a ultrawide monitor
Obtained 20 stack frames
0x00007ff64a3b36fe (Unity) DynamicHeapAllocator::Deallocate
0x00007ff64a3b3f72 (Unity) MemoryManager::Deallocate
0x00007ff64a3bc90a (Unity) free_alloc_internal
0x00007ff649c919a1 (Unity) dynamic_array<void * __ptr64 [38],0>::~dynamic_array<void * __ptr64 [38],0>
0x00007ff64a63f73f (Unity) SharedMeshData::~SharedMeshData
0x00007ff64c1f02ca (Unity) Mesh::ReleaseAndAssignMeshData
0x00007ff64c1e79e4 (Unity) Mesh::`vector deleting destructor'```
you know what, that's enough unity for today
too many crashes, i'm doing something else
at (wrapper managed-to-native) Unity.Collections.LowLevel.Unsafe.UnsafeUtility.MemCpy(void*,void*,long)
at Unity.Entities.Editor.UnmanagedSharedComponentDataDiffer+UpdateShadowChunksJob.Execute (System.Int32 index) [0x000ff] in I:\Documents\BovineLabs\com.bovinelabs.shattered\Library\PackageCache\com.unity.entities@1.0.0-pre.15\Unity.Entities.Editor\Hierarchy\Model\ChangeTracking\UnmanagedSharedComponentDataDiffer.cs:870 ```
Ahh. Enzi infected your comp!
KornFlaks is laughing while he doesn't realize I've him infected for years
i've barely been using unity today
whenever i do it's just crash after crash
cbf
are you running f1?
He's on 2022.2F1
i think that release is cursed