Comment by dude250711

13 hours ago

C#/.NET are very well-represented in LLM data - from enterprise back-end code to games. A language to use for sure.

Flip side: LLMs have to be very explicitly told to code in "modern" .NET and C# due to lack of representation in the training set.

Case in point: extension members from C# 14 is one that LLMs commonly stumble on and requires an explicit example. It still sometimes says that this is not valid syntax.

    extension(SomeType instance)
    {
        public OtherType DoSomething() { ... }
    }

Agents really struggle on this one for some reason.

Even older releases have a few that I notice LLMs making mistakes on like use of `System.Threading.Lock` over `Object` when locking.

  • The dotnet team provides some agent plugins which solve some of these issues. I expect unions in dotnet 11 will need some skill updates too.

    • I wonder if any of those work alongside Github Copilot (the autocomplete not actual agent).

      Because at this point I would do anything if I could get Github Copilot to understand the new language features and stop trying to constantly revert code.

      The one specific thing I'm constantly having to deny is Copilot seeing this:

          List<string> items = [];
      

      into this:

          List<string> items = new List<string>();

  • With Claude I never had that problem. However Claude does not use the pattern by default

Buildings games in Unity feels like magic with frontier reasoning models.

Assuming you are competent with scene work and the various art pipelines, the rest of the problem is significantly easier now.

I've been using the Unity CLI to run arbitrary C# code against Unity 6 scenes without requiring domain reloads. It uses Roslyn to compile the snippet in a special Unity editor component instead of running the normal compilation pipeline.

The implications for a reasoning model are significant. Domain reloads in my projects can take 10-20 seconds. Compound across 5-10 tool calls and the difference adds up very quickly.