After a year of work and countless corner cases the pathfinder upgrade is finally done! Yay, cool. But what’s a pathfinder?
It’s an implementation of one of the algorithms developed as part of the graph theory branch of mathematics, that is a “single-source shortest path” algorithm which…
Yeah, okay, sorry. Think of it as “movement code”. When you order your party to move, or when enemies come to you to try and kick your ass, that’s the pathfinder at work.
What it does is build a set of points that characters must move to to get to their destination. So you take point A, point B, point C and move one step at a time, that’s the gist of it. Control engineers call “moving one step at a time towards your goal” a “proportional regulator” and it’s also how cruise control on your car works.
The issue that prompted this upgrade is that, with the old pathfinding code, characters could only move at 45-degree angles, which didn’t match the originals. Therefore the main improvement is that characters can now move at any angle, providing more fluid and realistic character movement.
This upgrade also brings in one new feature from the originals: actor bumping. When somebody’s moving and a “nice enough” actor stands in his or her way, that actor can move out of the way for just the time needed for the moving character to pass. This is done only if there is no other way, like when an actor is blocking an open door; characters will always prefer moving around somebody instead of bumping.
Furthermore, as in the originals, characters will now back off and wait for a while when the situation is too crowded, again providing smoother movement instead of continuously re-calculating the paths to be taken.
The whole movement pipeline was also improved: characters will only stop mid-way if there really is no hope of reaching their targets and bigger parties will not get tangled up when moving all together.
One last bonus is that, previously, base walking speed was the same for all games, while the originals all had different speeds. This is most noticeable in Planescape: Torment with its bigger sprites. This pathfinder unhardcodes base speed into an .ini file variable, allowing varying speed between games and providing one more degree of freedom for making new games with GemRB.
So here it is and we hope you will like that your characters now learned how to walk smarter. :)
News in the making
If you want a curt overview of what to expect in the next release, check the changelog in the making, which we update approximately every 100 changesets. If you want to know almost everything, follow the commit log instead.
If you want to know only when new releases happen, you can subscribe to the very low frequency gemrb-release mailing list.
- 2020: Unexpected new use case of GemRB: music video
- 2020: No more discord between IRC and Discord
- 2020: New homepage! (Minimal Mistakes edition)
- 2019: GemRB 0.8.6 released! (Revenge of the squirrels edition)
- 2019: Discord channel opened on the Gibberlings3 server
- 2017: GemRB 0.8.5 released! (Lynxiversary edition)
- 2016: Windows builds are back, through AppVeyor
- 2016: GemRB 0.8.4 released! (Icy bone box edition)
- 2015: Looking for Planescape: Torment testers
- 2015: GemRB 0.8.3 released! (Party hard edition)
- 2015: All the GemRB mods are now available in WeiDU form
- 2015: 10 player party mod released
- 2015: GemRB 0.8.2 released! (Deepwinter edition)
- 2014: GemRB 0.8.1 released! (Fork Me edition)
- 2014: Video overview of development in 2013
- 2013: SDL2 released!
- 2013: Yet another compilation script (especially for Debian and progeny)
- 2013: GemRB 0.8.0 released! (Fork Me edition)
- 2013: GIT repository fully moved to GitHub
- 2013: Video overview of 2012 (forum is back!)
- 2012: GemRB 0.7.2 released! (Paradox of choice edition)
- 2012: GemRB 0.7.1 released! (Feat of feats edition)
- 2011: GemRB 0.7.0 released! (Life of a Bhaalspawn edition)
- 2011: GemRB 0.6.6 released!
- 2011: GemRB 0.6.5 released!
- 2011: Breaking News
- 2011: GemRB 0.6.4 released!
- 2010: GemRB 0.6.3 released!
- 2010: 10th anniversary of GemRB and the 0.6.2 release!
- 2010: GemRB 0.6.1 released!
- 2009: GemRB V0.6.0 is out
- 2009: GemRB V0.5.1 is out
- 2009: GemRB V0.5.0 is out
- 2009: GemRB V0.4.0 is out
- 2009: GemRB V0.3.2 is out
- 2008: GemRB V0.3.1 is out
- 2008: GemRB V0.3.0 is out
- 2007: GemRB source repository migrated to SVN
- 2007: GemRB V0.2.8 for Windows is out
- 2006: GemRB V0.2.8 is out (and .7)
- 2005: GemRB V0.2.6 is out
- 2005: GemRB 0.2.5 released
- 2005: GemRB 0.2.4 released
- 2005: GemRB 0.2.3 released
- 2004: GemRB 0.2.2.8 Released
- 2003: GemRB v0.2.2.6 is Out
- 2003: GemRB v0.2.2.0 is out
- 2003: GemRB v0.2.1.6b for Windows
- 2003: New Linux Source Code Released
- 2003: New Demo Available
- 2003: New Source Code Available
- 2003: New CVS Repository Structure
- 2003: New Linux Source Code Release
- 2003: Linux Source Code Availabe
- 2003: First Demo Available
- 2003: IRC Channel
- 2003: Project Homepage is On-line
- 2003: GemRB Project is starting again