Zykino

joined 6 months ago
[–] Zykino 2 points 1 week ago (1 children)
[–] Zykino 1 points 4 weeks ago

Collecting the traces can cost some performance, but that is a small price to pay for the advantages and could even be turned off in production builds.

They clearly intend this post for developers.

But yeah I want my stacktraces… in my IDE/debugger where I can see them and jump the stack. Most of the time I just need the head, where the breakpoint (or crash) is.

They also complain about rust where you can RUST_BACKTRACE=1 <program>. The default error tells you so !

[–] Zykino 2 points 1 month ago

I'm with the others: fd default syntax is easier to remember.

And for the interactive search I'm using skim. With it I cd to the dir I want and Alt t to trigger fuzzy finding. There are also bindings to search for dir or in the history. The neat part is that results are inserted as is in the command line, no need to xargs or copy them. It also make the history look like I always know where the files I want are when in reality they are just fuzzy-found

[–] Zykino 2 points 1 month ago (1 children)

First time I hear about checked exceptions. How do you use them ? Are you forced to handle them explicitly ? Is the handling checked at compile time ?

[–] Zykino 1 points 1 month ago

They are OS threads (so yes heavy).

But I think if you manage to use-after-free or other memory error in safe Rust it's a compiler bug. Or you used unsafe and have a soundness issue in the code you did.

Note : as I understand it, unsafe is a way to tell the compiler you can check its safety guarantees yourself. But you may fail and get back other languages inexistent guarantees.

[–] Zykino 1 points 1 month ago (4 children)
  1. Is a modern language with a good build system (It's like night and day compared to CMake)

Meson exists ... as do others.

But they are not the default option. And your new job may not use them.

  1. And I just like how the language works (errors as values etc.)

Fair enough; though why? What's wrong with exceptions?

Exceptions is a non standard exit point. And by "non standard" I'm not talking about the language but about its surprise appearance not specified in the prototype. Calling double foo(); you don't know if you should try/catch it, against which exceptions, is it an internal function that may throw 10 level deep ?

By contrast fn foo() -> Result<f64, Error> in rRst tell you the function may fail. You can inspect the error type if you want to handle it. But the true power of Result in Rust (and Option) is that you have a lot of ergonomic ways to handle the bad case and you are forced to plan for it so you cannot use a bad value thinking it's good:

  • foo().unwrap() panic in case of error (see also expect)
  • foo().unwrap_or_default() to ignore the error and continue the happy path with 0.0
  • foo().unwrap_or(13.37) to use your default
  • foo()? to return with the error and let the parent handle it, maybe
[–] Zykino 3 points 1 month ago

I'm using helix with arrows. On a standard layout its not so great, but on my main keyboard I have a layer with arrow keys near hjkl. So I can use that on all software even on my BÉPO (DVORAC like) layout.

[–] Zykino 5 points 2 months ago

From the article's own summary.

False Load Output Prediction and Speculative Load Address Prediction allow for data leaks without malware infection

But I guess "IA summary" did its best ¯\_(ツ)_/¯

[–] Zykino 1 points 2 months ago

Fake, all strain to their food, not a single one crossing to its neighbor's food. /s

You have a beautiful collection :)

[–] Zykino 2 points 3 months ago (1 children)

Why should I use a sudo alternative?

[–] Zykino 2 points 3 months ago (1 children)

-g is not documented, what does it do?

Note: this made me discover topless (SFW) and its Caveat section.

[–] Zykino 1 points 3 months ago (1 children)

From your example, I have a hard time inferring what is it doing.

22
submitted 4 months ago* (last edited 4 months ago) by Zykino to c/godot
 

I have been looking for a way to move non player entities on the map. For example I want cars to move around road, a parking lot, … I found way too many options without comparaison to see pro/cons. Is there a ressource telling which option is privileged?

I saw (in 2D, but I suspect all/most have their 3D equivalent):

Option My understanding
Path2D Very rigid path to follow (only saw used with tween). Can be nice to follow tracks, insert cubes in slot, … But when trying to have a more natural movement, with a bit of variety thanks to physic I don’t see how to do it.
AStar2D (and the AStar2DGrid variant) Robust algo known everywhere. Can add weight to connections. I suspect to make it work we have to give points to reach so we should "cover" the maps with points and link them together
NavigationServer2D Same as AStar2D but experimental, more automatic. Instead of specifying all the point we specify accessible zones. But adding weight to the connection is less obvious (using NavigationObstacle2D?) may be less customizable also?

Are there more options?
Is my understanding of each correct or completely wrong?
What is "the best" one (in Godot 4.3)? Like is there big performance drawback for some (at 100 entities there are lags or whatever)?

Keep in mind that I want my game as little as I can to understand how Godot/game engines work (I’m a developer so that part is easy, Scenes and Nodes choice less so), I don’t really care if using experimental feature means it disappear at some point or change behavior.

Edit: Just found out the official page explaining the different methodes.
So AStar is for grid/pathing on a set of points while NavigationServer can navigate to any point on the accessible area and uses A* as an implementation detail.

=> I think for my use case A* is better suited since I want to move on roads (that look like a grid with weight being the length).

view more: next ›