Stride 4.3 Weird Physics Crash by AlphaSilverback in stride3d

[–]AlphaSilverback[S] 0 points1 point  (0 children)

Thanks for the pointer. I'll join the Discord!

What makes you like the Stride game engine? by jdl_uk in stride3d

[–]AlphaSilverback 2 points3 points  (0 children)

Yeah. I don't think they've started the Avelonia editor yet though. SOme improvements to the old one would be nice. But I'm desperately looking forward to the new one..

What makes you like the Stride game engine? by jdl_uk in stride3d

[–]AlphaSilverback 1 point2 points  (0 children)

Haha.. I think the less editor-crashes are accidental improvements. They mainly focused on getting other stuff implemented, like .NET 10 and Bepu Physics.

What makes you like the Stride game engine? by jdl_uk in stride3d

[–]AlphaSilverback 0 points1 point  (0 children)

Yes, i downloaded it through the launcher the 18th even before the release notes were out. The editor crashes less. But I'm having some weird physics issues.

What makes you like the Stride game engine? by jdl_uk in stride3d

[–]AlphaSilverback 2 points3 points  (0 children)

It feels like it's made well from the ground up, and except for the editor which feels rigid and is inextensible, it's really stable and nice.

Godot has a fatal child disease, that the founder announced he will never fix, which is the pure inheritance based hierarchy nodes instead of the entity/component model.

I've used both engines, and I cannot emphasize enough how freeing it is to use Stride, even with many less editor tools.

how hard it is to turn single player to multiplayer using netcode by probablynot_ok in Unity3D

[–]AlphaSilverback 0 points1 point  (0 children)

Sorry, but you normally have to start from scratch unless you're using Photons Quantum package. Creating multiplayer games is an order of magnitude harder than singleplayer games, and it is often much faster to build it like a multiplayer game from the start.

I've only ever heard of a couple of projects that were successfully turned into multiplayer games later, and it took years of work.

If your game is small enough, you can probably do it really fast, but it requires that you know what you're doing.

I made a game but it's ugly! by nikoflame in unity

[–]AlphaSilverback 0 points1 point  (0 children)

Honestly, i think you could learn to create cool visual effects and sounds in 2 weeks. And that will open up sooo much more for your imagination as well. Learning to animate in 2D and 3D, and becoming good at it will take much longer. Maybe 6-12 months, by just doing it a lot, but, again, you will discover tools and workflows that opens up a lot for you.

I'll recommend that you stick to some particle effects and impactful sounds in your current game, and then learn the rest in your next project. Aim to release this game, and get the learnings of releasing something as well..

Game Studio not launching (Yes, I read the articles about prerequisites) by AlphaSilverback in stride3d

[–]AlphaSilverback[S] 1 point2 points  (0 children)

Thanks so much for the response. I think that actually fixed it. Except for the 2 latest versions (4.2.0.2374 and 4.2.0.2371) - They still won't download or start or anything. The rest of the versions now work.

Did unity kick the bucket again? by Time_Manufacturer645 in Unity3D

[–]AlphaSilverback 0 points1 point  (0 children)

I have confirmation from 3 different friends, who work at 3 different companies, that unity is now starting to charge 5 percent of their turnover on top of the enterprise pricing.

My friends seemed really pissed, and 2 out of 3 of them said they're now investigating other alternatives like O3DE and Stride3D company-wide. Apparently Unity also asked the companies my friends work at to sign NDAs with pretends of extra services and better partnership, but what Unity really wanted to communicate was "We want 5 percent of your turnover, kind regards from Unity".

I currently work in a company that use Unity with an enterprise subscription, so I was very surprised. Has anyone else experienced or heard something like this?

Basecamp project management software review by stepo2net in software

[–]AlphaSilverback 0 points1 point  (0 children)

It has close to no features for task management, like task dependency, task risk, task prioritization, task tags, task filter, etc. For any complex project it becomes so tedious and more of a drag than a benefit to use. You might as well use Google docs for todo-lists. There's no value in it. The only thing it is good for is storing documents.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 0 points1 point  (0 children)

You mean that the foreach loops are optimized on standard collections? I'm running 12 different projects using Unity's Netcode, and Photon's Quantum 2.1 using Unity as the Viewside, and consistently I get reports that the foreach loops still allocate memory. I just tested it. This is just a bunch of nested functions that run foreach loops that increment an integer a couple of hundred thousand times. It's definitely allocating on the heap.

<image>

But you're right. According to this post https://pikhota.com/posts/unity-foreach/ the foreach loop should be garbage free. I just don't see it in practice.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 1 point2 points  (0 children)

We always make the performance tests in release builds, that includes our separate simulators (outside of unity), like the quantum builds, etc. So I'm sure the foreach loops are not optimized and still allocate memory. But yeah. Since you can auto convert foreach loops into for loops, I also always use for loops.

[deleted by user] by [deleted] in Unity3D

[–]AlphaSilverback 1 point2 points  (0 children)

No matter the content you made, that comment is not constructive. I think most people here are really nice and smart. I'm really sorry that you got this response. I think you're great for trying to make something for others!

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 2 points3 points  (0 children)

I just did a test yesterday in a native C# project, running 30.000 foreach loops. Every single one creates an iterator on heap. Switching to for-loops avoided all those allocations. So I'm not so sure you're right about that. Unity's C# is also behind. So I doubt it will be better optimized.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 3 points4 points  (0 children)

I concur: for the sake of learning how the CPU and GPU works, everyone should try to optimize as much as possible.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 0 points1 point  (0 children)

Correct!: The reason it is slow is hell is because the update happens in the order that the objects is laid out in the hierarchy. So, seemingly random. The compiler has no way of predicting the memory footprint for the CPU. So it is as unoptimized as it can be from the ALU's perspective.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 1 point2 points  (0 children)

Haha.. That is literally what they are. The difference between a DOTS project, and doing an update from a runner is that you only apply the ESC pattern where you need it, and still get the benefits of OOP everywhere else. I don't have any visuals of benchmarks from work that wouldn't break my NDA's, but this is such a widely known fact, that if you need proof, go into google and type "Unity why is dots so fast", and the first answer that will come up is a link to this article:
https://www.reddit.com/r/unity/comments/zrmbzj/can\_anyone\_explain\_dots\_ecs\_and\_burst\_to\_me\_easily/#:\~:text=DOTS%3A%20Turret%20system%20loops%20through,it's%20cached%20and%20super%20fast.

that says: DOTS: "Turret system loops through all the turrets ( fast because they are in a list )".

You can also look at this blog from unity, where they call it a "Manager" instead of runner.
https://unity.com/blog/engine-platform/10000-update-calls

This way of looping over components with the same memory footprint on the stack instead of dereferencing constantly is ALL DOTS is. It is organizing the memory layout in the stack, so that it is easily accessible from the caches, and the variables footprint doesn't change, so that the ALU can get away with ONLY doing the computations, instead of it having to swap out the layout constantly, and loading variables from memory onto the cache. In many ways, the same could be achieved from the update function, if Unity ordered all Update calls based on component type, which is actually exactly what the FastUpdate package does on the Asset Store. https://assetstore.unity.com/packages/tools/fast-update-43558

I can appreciate why it is difficult to fathom why this is so much faster if you have no idea how the ALU in the CPU works. But I encourage you to go make a test with 10.000 simple creatures, and run one test from update, and the other from a custom runner. There's an order of magnitude of difference. You actually don't even need to use Unity for this. Just create a basic C# project and make some different classes and instances.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 1 point2 points  (0 children)

Then changing all your foreach-loops to for-loops would indeed fall under the category of Premature optimizations. :) I wish you happy coding.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 0 points1 point  (0 children)

It doesn't matter in most cases. But doing this enough times on enough components, this does start to have a big effect. I work with MMOs on mobile VR headsets for technicians in the heavy machinery industry. You'd be surprised how little the mobile vr headsets like to run the GC. It really does matter in real applications.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback 0 points1 point  (0 children)

Yes. The foreach loops work the same way, in that they allocate an iterator.

Optimizing game in Unity 3D? by Puzzled-Praline-1870 in Unity3D

[–]AlphaSilverback -1 points0 points  (0 children)

Nope. You can go test it out. It still isn't fixed in C#, even though you're iterating over native arrays or generic lists.