To be honest, I think I learned about string pulling less than a year ago. The thing about the game dev community is that, although it's not very open _source_, it's really good at sharing ideas. There are white papers about internal research, tutorials, very in depth presentations.
For ordinary people, that might be like, meh, nothing special, but for a programmer, that's mindblowing 🤯 Even a 1% improvement for a day makes real progress in a long perspective 🚀
how could implement string pulling not be fun? I love implementing these classic algoritms. one of the most fun I ever had as a dev was implementing a progress bar. at the time, Microsoft was famous for progress bars that could go backwards, so I sat down and made sure mine gave a fair estimate of the remaining time and only went forwards. it turns out that this are non-trivial requirements. and fun!
I guess you're right. It's a *kind* of fun, for sure, especially if you solve the puzzle in the end. But string pulling, in particular, is hard to get right, there's a lot of fine tuning involved. And it's less fun when you know you have a day or two to have it - it would be a different thing if I told myself that I need to implement the best string pulling algorithm, and I have a week or two just for that.
To add to what others are saying: it's a combination of pure Flutter (the portable UI SDK I was involved with at Google) and Flame (a Flutter package for games, which I use for the map, for example). This combination works really well for my use case, but I'm the first to admit that it won't be a good fit for most games. (E.g. if you're building something less focused on UI, you should probably go with a regular game engine.)
Can you elaborate? How would you construct the nav mesh in the case of my game? I'm not saying nav mesh wouldn't be better, I just haven't found an implementation that would be clearly better for my case. That said, I haven't searched for long, and I welcome suggestions.
@@filiphracek Demyen's Triangle A* thesis paper is the navmesh based approach for string pulling using the funnel algorithm and might also be where the term string pulling originated, you would end up combining multiple grid cells into one or more triangles and then boolean subtract the houses or other blockable locations and what you are left with is only navigable locations (you'll also need to boolean subtract your character's and/or enemies' radii from the blockable locations so think adding those radii to the locations when subtracting since it will cause character/AI wall clipping if you don't). I have a video named "The Funnel Algorithm on a 3D surface" that shows what it looks like using a navmesh on what is basically a grid based movement.
Interesting ! You said that you need to do more tweaks to be good but I see that is already ready for production 😄, Great job !
First time to learn about string pulling algorithm. Interesting as always 👍
Fun video. I'd never heard of the string pulling algorithm!
To be honest, I think I learned about string pulling less than a year ago.
The thing about the game dev community is that, although it's not very open _source_, it's really good at sharing ideas. There are white papers about internal research, tutorials, very in depth presentations.
Have you tried quadtree search? Making mech skip over large empty areas could make movement look less artificial without additional path-processing.
For ordinary people, that might be like, meh, nothing special, but for a programmer, that's mindblowing 🤯 Even a 1% improvement for a day makes real progress in a long perspective 🚀
Here I thought you were going to apply crank-nicholson to the Lagrangian 🧐
Very interesting! Thanks. 🔥🚀🔥🚀🔥🚀🚀
how could implement string pulling not be fun? I love implementing these classic algoritms. one of the most fun I ever had as a dev was implementing a progress bar. at the time, Microsoft was famous for progress bars that could go backwards, so I sat down and made sure mine gave a fair estimate of the remaining time and only went forwards. it turns out that this are non-trivial requirements. and fun!
I guess you're right. It's a *kind* of fun, for sure, especially if you solve the puzzle in the end. But string pulling, in particular, is hard to get right, there's a lot of fine tuning involved. And it's less fun when you know you have a day or two to have it - it would be a different thing if I told myself that I need to implement the best string pulling algorithm, and I have a week or two just for that.
can i ask you, whats game framework u use for buildig games
It's more like GUI engine, it's Flutter!
Flutter + Flame package
i think its flutter on shader and customPainter. But idk. @@alooooohx
Flame (based on Flutter)
To add to what others are saying: it's a combination of pure Flutter (the portable UI SDK I was involved with at Google) and Flame (a Flutter package for games, which I use for the map, for example). This combination works really well for my use case, but I'm the first to admit that it won't be a good fit for most games. (E.g. if you're building something less focused on UI, you should probably go with a regular game engine.)
Wouldn't a NavMesh work better?
Can you elaborate? How would you construct the nav mesh in the case of my game?
I'm not saying nav mesh wouldn't be better, I just haven't found an implementation that would be clearly better for my case. That said, I haven't searched for long, and I welcome suggestions.
@@filiphracek Demyen's Triangle A* thesis paper is the navmesh based approach for string pulling using the funnel algorithm and might also be where the term string pulling originated, you would end up combining multiple grid cells into one or more triangles and then boolean subtract the houses or other blockable locations and what you are left with is only navigable locations (you'll also need to boolean subtract your character's and/or enemies' radii from the blockable locations so think adding those radii to the locations when subtracting since it will cause character/AI wall clipping if you don't). I have a video named "The Funnel Algorithm on a 3D surface" that shows what it looks like using a navmesh on what is basically a grid based movement.
Stop stringing us along, let us play your game already :)
To sum up the video:
if (goingToCrash())
dont()
lol