• 0 Posts
  • 9 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle

  • It’s using unity game engine. I’m a graphics programmer in the industry and at my current and last workplace I made tech for games studios (i.e. I dealt with performance of easily 100 games a year at one point). Unity by far was default the worst to deal with due to the limited tools to fix issues that were inherint to the engine. Note don’t take this as me saying unity is a bad engine, it’s just that it isn’t a performant one. Its focus is elsewhere (accessibility and ease of development, things it excels at).

    So yes, you can definitely assume that, in fact I’d assume one core for the simulation unless they wrote an entire new architecture to replace unity’s functionality (you’d still be locked to single thread sync points, but that’s manageable). It’s a hassle most don’t deal with as it’s a lot of work to struggle against writing code like unity wants you to write it.

    I worked in a studio that exactly did that a decade ago, and it was painful and frankly a huge upfront dev cost that takes a long time to pay off.



  • You raised an issue that the other bulletpoint has the solution for, I really don’t see how these are “key differences”.

    In Rust there always only one owner while in C++ you can leak ownership if you are using shared_ptr.

    That’s what unique_ptr would be for. If you don’t want to leak ownership, unique pointer is exactly what you are looking for.

    In Rust you can borrow references you do not own safely and in C++ there is no gurantee a unique_ptr can be shared safely.

    Well yeah, because that’s what shared_ptr is for. If you need to borrow references, then it’s a shared lifetime. If the code doesn’t participate in lifetime, then ofcourse you can pass a reference safely even to whatever a unique_ptr points to.

    The last bulletpoint, sure that’s a key difference, but it’s partially incorrect. I deal with performance (as well as write Rust code professionally), this set of optimizations isn’t so impactful in an average large codebase. There’s no magical optimization that can be done to improve how fast objects get destroyed, but what you can optimize is aliasing issues, which languages like C++ and C have issues with (which is why vendor specific keywords like __restrict exists). This can have profound impact in very small segments of your codebase, though the average programmer is rarely ever going to run into that case.


  • I participated in this, have to say it was fun and it’s been a thing I’ve said for years could make (at least) linear algebra lessons more interesting to young people. Shaders are the epitome of “imagery through math”, and if something like this was included in my linear algebra classes I would have paid much more interest in school.

    Funny now that this is my day job. I’m definitely looking forward to the video by IQ that is being made about this event.

    To explain some of the error pixels: the way you got a pixel on the board was by elaborately writing down all operations in details (yes this included even simply multiplications), the goal wasn’t if the pixel was correct or not, and depending on the location of your pixel the calculation could be a bit more complex, as long as you had written down your steps to get the result as detailed as possible.

    More than likely simple mistakes were made in some of these people’s calculations that made them take a wrong branch when dealing with conditionals. Hopefully the postmortem video will shed some light on these.


  • He’s making a video as a post mortem to this experiment, so it might still be released. But I can see why it would be better not to share them (aside from privacy/legal concerns as there was no such release agreement), some of the contributors used their real names, I may be one of them. It could be a bit shameful to see this attached to your real name. They might have submitted their initial draft and then, due to circumstances, could not update the results in the several hour window that was afforded to you.

    Luckily my pixels look correct though.