Posts

Showing posts from August, 2018
Image
Finally I fixed all navmesh generation errors and can go continue with the rest of features. (Navmesh is drawn in green lines). Now I need to add area tagging and connections, i.e. I move to tile cache now. After that I need to restructure code a bit so that navmesh build code goes to navmesh class, so to be able to run independently of node tree. The code is in navigation branch, have fun.
 Heh another day another offended person. I wonder why this time no mob arrived for revenge? It is quite common scenario - somebody gets "offended" by something minimal, like if I tell them what to do if they ask what to do (no, nothing actually offensive), then grows mob of supporters, nobody hears your side and the whole mob attack you. Now you feel like you will never try to help any person on that channel. This is Discord - everyone is full of themselves, glass souls and attention whores. There is no way out - they choose you as offender. Such communities make hobbies much less fun. It is good that most people are not this way. Good old IRC never had this problem for some reason - maybe more mature audience? Anyway, sad things aside, I do have some progress on navigation - got debug rendering work, now I can find what is the problem with navmesh generation. Also I want to link here my older repository, generator for roadmaps. Might be useful for somebody starting to i
Implemented control via signals.
Image
Fixed issue with incorrect navmesh query results. It was a problem with navmesh bounding box calculation. to merge one AABB to another, use bb.merge_with(), not bb.merge(), as thi later will return new AABB, while former will increase size of existing AABB.  So now I'm going for navmesh visualization and adding agent signal sending (hope it will work with Spatial+script agent)
Image
Finally made tiny little agents work. OMG how many bugs remain, but I do have some progress. Obvious bugs left: For some reason navigations work only in positive quadrent (+x, +y,+z) When higher obstacle is on the path, agents behave like it is small wall they can jump over. Looks like geometry is cut off, need to test this. First thing I need to do now is navmesh debug display, so I could debug thing like this. For the rest: UI integration of everything. API for all agent controls. Probably this comes above, Agent error handling, including removing/adding which is needed when velocity control is not enough. Implement all controls possible and non-physical agent. Physics based control will be implemented later (need to understand more things better for that  Implement distant path checks later, so targets beyond 256 polygons produce no errors. But for now 1000 agents and no FPS drop. YAY! Everything is in repository. The script you can use to test code: extend

Godot and C++

There is annoying inconsistency with C++ programming in Godot - handling of conversion of basic type to a String. You need to use rtos(), itos() or String constructor. There is no String constructor for integers or floats. Isn't it API design flow?

The why and the how

Hi all! Decided to create blog for development of game, so to have easy way with this. Completely failed with my PR to godot, so I decided to not waste time any more on doing thing I think are needed by others and fo things I need myself. Godot navigation system is a joke. One of strong points of Urho3D is Recast/Detour/DetourCrowd based navigation. It is really powerful and does all I need. I more or less have it complete or close to now. No helper nodes ready, and I need to comlete proper separation of objects. Never was OOP guy, but I try... https://github.com/slapin/godot/tree/navigation Anyway, I'm not yet sure if I'm to submit PR about it as I dont want to waste my tiny bit of free time on fruitless discussion and being frustrated again. But I think anybody who needs it can pull from github, and I will update that branch for sure. As I'm getting annoyed by the same questions again and again I just decided to write a small FAQ: 1. Q:. Why do you not pay