top | item 39246104

(no title)

chrisdirkis | 2 years ago

They're in the process of swapping out their Mono fork for a modern Core fork, which I believe they're planning on upstreaming changes to too. A few years ago, someone demonstrated a 1-week hackathon version of a game build running on Core, and recently (2023-12), someone on the forum noted that they have an internal Editor running on Core.

Most modern large games use IL2CPP, the C++ transpiler; it's a requirement on iOS, nearly a requirement on Android, and almost certainly a requirement on consoles. Perf is often nicer and it's harder to mod/hack, which some devs like.

Sibling poster notes different .Net compatibility settings. Modern Unity versions allow you to be in either .Net 4.6(ish) mode or .Net Standard 2.0/2.1 mode. The latter comports more with Core's APIs, though is pretty old at this point.

And, since we're on similar topics, Unity currently supports C# 9.0, minus a few minor features[1]. This is a massive improvement compared to a few years ago, where we were stuck with C# 4 or 6, and means you can write pretty modern and performant C#. Especially notable is Span support, a way of representing (basically) non-owning array slices.

[1] https://docs.unity3d.com/2023.3/Documentation/Manual/CSharpC...

discuss

order

sanktanglia|2 years ago

Funny enough moving to il2cpp made it even easier to hack/mod/access since now all class info and offsets and other info are exposed, easily with full type info. I'm just about done with a lib that can fully read all of the il2cpp related data externally, it's been a fun project