Toots for sschoener@mastodon.gamedev.place account

Written by Sebastian Schöner on 2025-02-03 at 10:04

Programming without friction, and putting my money where my mouth is:

https://blog.s-schoener.com/2025-02-03-programming-friction/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2025-01-29 at 11:03

How and why I wrote a build system, even though everyone tells you not to.

https://blog.s-schoener.com/2025-01-29-build-systems/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2025-01-20 at 12:41

I chose dotnet/C# for a tool I wrote. It's running a bunch of processes and redirects their outputs. However, redirecting the output seems to block: even the async variants (BeginOutputReadLine, or manually reading async from the stream) just move the blocking calls onto a threadpool, meaning that the threadpool is clogging up. You can get fully async reading from pipes on Windows (https://blog.s-schoener.com/2024-06-16-stream-redirection-win32/). Do any of my C# friends know whether that is implemented somewhere in dotnet already?

=> View attached media

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2025-01-18 at 10:54

Unity Burst and zero-cost: https://blog.s-schoener.com/2025-01-18-burst-zero-init/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2025-01-09 at 20:32

I was convinced I had a post somewhere where I compare Mono’s codegen for C# as used in Unity between Release and Debug but did not find it. Let’s fill that gap. https://blog.s-schoener.com/2025-01-09-mono-codegen/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-12-30 at 08:33

Overthinking? No, underdoing! https://blog.s-schoener.com/2024-12-29-overthinking-underdoing/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-12-17 at 12:08

I wish I could shut up for a day or two but sometimes you find something and then just want to write it down. Or it finds you and crashes your debugger and leaves you no other choice:

https://blog.s-schoener.com/2024-12-17-unity-blobs/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-12-16 at 10:03

How I learned to fix some of my regular code screw-ups in style with @liveplusplus -powered code-reload: https://blog.s-schoener.com/2024-12-16-liveplusplus-debug/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-12-13 at 11:58

Why do I have to wait so long for Burst to compile things? Or, "Unity Burst and the Kernel Theory of Video Game Performance":

https://blog.s-schoener.com/2024-12-12-burst-kernel-theory-game-performance/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-12-11 at 10:12

Some words about looking dumb while learning a new thing:

https://blog.s-schoener.com/2024-12-09-idiot-second/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-12-09 at 12:53

Find some documentation for the Unreal Engine side of things here: https://dev.epicgames.com/documentation/en-us/unreal-engine/wine-enabled-containers-quick-start-for-unreal-engine

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-12-09 at 12:53

A thing I worked on at Epic is now public: We've worked hard to get Unreal Engine cooking on Linux using Wine.

My friends Adam and Aiden from TensorWorks have written up all the technical details of our joint adventure here: https://tensorworks.com.au/blog/migrating-unreal-engine-cook-workloads-to-wine/ - It's a very technical piece, which is indicative of the difficulty of the problem we tackled. Good times!

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-12-06 at 08:31

We interrupt our regularly scheduled tweets on program performance for a PSA on my dear hobby of listening to unabashedly silly music, which for once is somewhat topical:

https://www.youtube.com/watch?v=yup8gIXxWDU

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-11-28 at 10:14

I saw some converations around "why do people care about backwards compatibility", which lured me into writing a few words about that on my blog: https://blog.s-schoener.com/2024-11-28-backwards-compat-unity/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-11-27 at 10:20

In C#, Rider keeps suggesting replacing simple code with opaque pattern checks. They call this suggestion "Merge null/pattern checks into complex pattern". Maybe "replace simple thing with complex pattern" should have been a red flag to begin with.

And yes, I have turned this suggestion off now. But why is it even showing up in the first place?

=> View attached media | View attached media

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-11-22 at 12:45

I wrote some words (with an example!) about how to write custom async on-demand importers in Unity: https://blog.s-schoener.com/2024-11-22-unity-async-imports/

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-11-20 at 19:12

"When is this going to get fixed in Unity?" I don't know, I don't work there. If you want this or something else improved, get in touch and we can figure out the terms. Unity are free to do that and reach out as well, if they want to.

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-11-20 at 19:11

Now to address some questions I got from last time: "What is this wondrous profiler you are using there? It looks so smooth and responsive." That's @superluminal. It has mixed-callstack support (C#/native) for Unity. It's very good.

"Will all of this go away once Unity is on CoreCLR?" I hope it's going to be better! CoreCLR has much better codegen, but quadratic stuff always explodes eventually. Also, I am not willing to wait for that. But I'm interested to see where it goes :)

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-11-20 at 19:11

So what are we going to pool? The most common element in our graph is the "slot" - the connection point for an edge - and its associated view. Let's pool that. There's more we could reasonably pool, but the 3h I set as a time box is up.

We're at 1s now (vs. 2.4s) and a large chunk of that is a codepath (RenderPreviews) that I have looked at last time, and those optimizations aren't included here yet.

=> View attached media

=> More informations about this toot | View the thread

Written by Sebastian Schöner on 2024-11-20 at 19:11

What's the common case? The common case is that we're undoing a change we did manually. These are often small changes where the vast majority of things isn't changing. Why is rebuilding that so costly? GC allocations, lots of them.

This again is not news for any Unity users: They have been pooling everything for the last decade or so because reallocating is too costly. UI Toolkit itself recommends you use a pool: https://docs.unity3d.com/6000.0/Documentation/Manual/UIE-best-practices-for-managing-elements.html

=> More informations about this toot | View the thread

=> This profile with reblog | Go to sschoener@mastodon.gamedev.place account

Proxy Information
Original URL
gemini://mastogem.picasoft.net/profile/109376591839767687
Status Code
Success (20)
Meta
text/gemini
Capsule Response Time
317.415219 milliseconds
Gemini-to-HTML Time
6.182397 milliseconds

This content has been proxied by September (3851b).