#let s make a thread

1 messages ยท Page 1 of 1 (latest)

lime hazel
#

to not monopolize the channel @spring lily

spring lily
#

all they do is create new type with my interface (for reflection)
and then for example: using New Input System to create callback for some action that adds component to InputEntity singleton

lime hazel
#

so, rather than callbacks and structural changes, what if you just had a singleton with a NativeList<TypeIndex> on it

#

and they would just add to this list with the typeindex of their component they want to add

#

wouldn't this communicate the same information?

#

or are they going to query for their tag later?

spring lily
#

so for some actual logic that handles player input, there's system that requires certain input singleton to exist

#

it's not perfect, I know

lime hazel
#

so, we know that none of their code is going to get bursted, right

spring lily
#

but it works and it's easy to use

lime hazel
#

because burst doesn't really support that

spring lily
lime hazel
#

how do modders submit code?

spring lily
#

my whole input is bursted except for managed callbacks part of New Input System

spring lily
# lime hazel how do modders submit code?

they define their InputType
they use my hook that gives a way to have OnCreate, PostSystemCreation callbacks and etc
Without actually creating a system
In there they setup all required callbacks of New Input System to attach component to that input Entity
Aaaand then it just works
If they want to create logic that reacts on Input
They simply define whatever system they way which requries singleton of their type

lime hazel
#

no no

spring lily
#

it can be ISystem and fully bursted

lime hazel
#

zoom out

#

do they submit managed assemblies somewhere?

#

like managed dll's?

#

and your game looks for those assemblies and loads them?

spring lily
#

oh, for that part
Yeah, my game will load game code from Mods folder or smth like that

lime hazel
#

yes.

#

this will not get bursted

spring lily
#

Burst supports loading native library

#

at least

lime hazel
#

yes, but their code is not native libraries, it's managed

spring lily
#

used to, as it's literally in manual kek

#

hold on

lime hazel
#

burst runs when you build your game from the editor

lime hazel
#

it reads the managed assemblies and compiles it to a native library called lib_burst_generated.dll

spring lily
#

yeah, Burst manual says it's supported

#

modders build mods from Editor

lime hazel
#

aha! they also submit native dlls from burst?

spring lily
#

yeah, managed + burst

lime hazel
#

beautiful

spring lily
#

it's in that manual

#

but

#

last time I tested

#

it doesn't work ๐Ÿ˜…

#

it's broken

#

Burst doesn't load anything

#

I just hope burst team will fix it by the time I'll be able to release

lime hazel
#

do they know about it?

spring lily
#

I made a thread

#

not sure if they noticed it tbh

lime hazel
#

in the burst forum?

spring lily
#

actually, it's not very infromative

#

as I was testing smth else at the moment ๐Ÿ˜…

#

I'll make another and will try Bug Report feature

#

as I'll get back to it

lime hazel
#

dude

#

don't bring entities.foreach into this mess

spring lily
#

but it works

lime hazel
#

as soon as the sourcegen changes your example will break

#

also entities foreach ruins your iteration time anyway

spring lily
#

but really, it worked

lime hazel
#

i believe you ๐Ÿ™‚

spring lily
#

exactly the same as no code gen at all

#

I tested both

#

managed part runs totally fine

#

even with foreach

lime hazel
#

the thing is, the burst team knows nothing about entities.foreach

#

we're just customers of them

spring lily
#

ah, about that

#

no worries, back at the time

#

I was tweaking with Harmony trying to modify bursted code

#

which now that I know - won't ever work

#

they don't need to see any foreach code
They just need to notice the fact that
BurstRuntime.LoadAdditionalLibrary(bursted);
might not work

#

it doesn't work in Editor and it crashes in Build

#

at least for 2021 version

lime hazel
#

so here's what i would do to improve this bug report:

  1. remove all entities usage from the example, to isolate it to a burst problem and not an entities problem.
  2. write down what exact version of burst + unity you're using
  3. verify that burst is on for player builds in projects A and B in project settings -> burst aot settings
  4. write down the filenames of all the managed dlls and all the native dlls you're trying to load, and verify that those all exist in the final build directory you're loading them from
  5. look at all the exceptions from all the logs and verify that they're actually related to burst and loading stuff, and not unrelated errors (i see a lot of unrelated errors in the editor log attached to that post)