Game Development Community

Walkabout Navigation Toolkit help thread

by Daniel Buckmaster · in General Add-On Discussion · 11/08/2012 (3:57 pm) · 223 replies

This is the official Walkabout help thread. If you need a hand installing or using Walkabout, please ask away! But before you do, I'd really appreciate if you could follow a couple of guidelines:

  • Re-read the installation instructions! Seriously, I know how often I run into some ridiculous issue, then realise I'd missed a step or misread a line. It helps me and you!
  • If you're reporting an error in compilation, please tell me the errors you get and what files they're in, if you can!
  • If you're reporting a bug, please provide steps I can take to reproduce it!
Feature requests, comments and any other feedback are welcome here as well! If you have questions you'd prefer to keep between you and me, feel free to contact me directly.

Known issues

  • Release 1 Patch 3: no navmeshes appear in the browser list in the nav editor. Fix
  • Engine version > 3.5.1: project generator scripts are incorrect. Fix. Also, be sure not to include the Recast module in your project configuration!
  • On platforms that are not Windows, you may need to replace FLT_MAX with F32_MAX. In fact this is probably a good idea in Windows as well.

About the author

Studying mechatronic engineering and computer science at the University of Sydney. Game development is probably my most time-consuming hobby!

#121
02/06/2014 (3:15 pm)
I think that palette is by load order. I was playing with this a few months back - working on a RPG conversation editor clone of Bioware's radial menu conversation system. I've got the game side working but a real conversation editor is a good chunk of work....

Anyway, I agree with Dan regardless of the actual mechanism. Shouldn't be too tough to extend the palette though.
#122
02/06/2014 (5:15 pm)
I think the issue may present it self with the error message (console):

GuiBitmapBorderCtrl: Could not construct bitmap array for profile 'GuiDefaultProfile'



#123
02/06/2014 (5:18 pm)
Huh. I always thought that was unrelated. I'll keep it in mind but it's not a high priority for me right now - I'm starting to work on options for dealing with water bodies.
#124
02/06/2014 (5:51 pm)
Correction!!! The error is indeed unrelated! Sorry about that Daniel!

Try this, it works for me...

In ToolsToolbar.ed.gui :

%guiContent = new GuiContainer(EWToolsToolbar) {
   canSaveDynamicFields = "0";
   Enabled = "0";
   internalName = "ToolsToolbar";
   isContainer = "1";
   Profile = "editorMenubarProfile";
   HorizSizing = "right";
   VertSizing = "bottom";
   Position = "0 31";
   Extent = (29 + 4) * 14 + 12 SPC "33";
   MinExtent = "8 2";
   canSave = "1";
   Visible = "1";
   hovertime = "1000";
   isClosed = "0";
   isDynamic = "0";

change the extent to:

Extent = (29 + 4) * 14 + 45 SPC "33";
#125
02/06/2014 (6:04 pm)
Or maybe just change that 14 to a 15? I have no idea how the editor GUI is structured or I'd suggest that number should be calculated dynamically.
#126
02/06/2014 (6:12 pm)
@Daniel, Yes it's the same. And it should be dynamically. I'll implement this in the (Dark) UI-recourse :)
#127
02/06/2014 (8:24 pm)
Thanks Dan and Nils, changing that to 15 worked all the way.... for the life of me I cant seem to get my AI to crouch!! I did steves resource and it works but I cant figure out how to put it in uaisk when my guy goes for cover???
#128
02/06/2014 (8:46 pm)
Thanks for that, Nils :). Donnie, I've never really tried to get them to crouch - are you having trouble finding the right spot to put the crouching in the UAISK code? Or is it just not happening when the bots are UAISK-controlled? (Or Walkabout-controlled?)
#129
02/07/2014 (10:52 am)
Having trouble finding the right spot in uaisk??? however on coverpoints theres stand, crouch, and prone, so if I got them to crouch in uaisk how would i tie that into my cover point?? Driving me crazy, using steves resource works in command window, when I know the ai's ID # but their never the same.... any help would be great and cause less harm to my loved ones... jk on the last part!!
#130
02/07/2014 (3:50 pm)
Donnie@ decide first of all, when/where you want them using the poses.

I started by editing the scripts/server/player.cs ::onDamage() to test it and have them crouch if hit and not killed.

For examples; scripts/server/UAISK/aiMovement.cs ... onReachDestination() could be used to have them crouch if they reach their destination and they are guarding.

Also check on "movementPositionFilter()" ... consider adding a function to there to have the AI "stand up", to counter any crouch, etc.

In my code base, I use that to plan the next recast path, so all new movements go there first.

EDIT: I'd start by looking at the code in UAISK "where your guy goes to cover" ... where ever that exists, as its not stock UAISK to go to cover far as I know.
#131
02/07/2014 (8:21 pm)
hey jeff, guess my biggest prob right now is finding out how to get the id number in script so I can use steves resource to crouch?? to be more clear, when any ai take damage they are to crouch, i dont understand how to deal with their id numbers to assign like 5454.setaipose(1);!! is their a function for that, hell i just confused myself, lol....
#132
02/08/2014 (5:02 am)
Donnie, in whatever callback function you use, the object should be passed. So, for example, damage callbacks look something like this:
function PlayerData::onDamage(%this, %obj, %amount, ...)
{
   ...
%this will contain the ID number of the datablock, and %obj the ID of the player that got hurt.


Here's a little sneak peek of what I'm working on right now...

i.imgur.com/Ru6G0ial.jpg
#133
02/11/2014 (6:14 pm)
thank you so much guys,in aiThought, I used %obj.setAIPose(1); in defending to have my enemy crouch when hit and %obj.setAIPose(0); in attacking so he stands back up... works great with www.garagegames.com/community/resources/view/22501!!! If you think theres a better place to do it please let me know.... Now to add walkabout for seeking cover and pathfinding!! Thanks again Daniel...
#134
02/11/2014 (6:35 pm)
Great to hear you got it working :).
#135
02/13/2014 (10:37 am)
@Daniel: Are you also working on allowing linking between meshes?
I had to abandon Walkabout for the Flexible A* resource on here, because of this missing feature that I needed.
Do you know when we'll be able to get our hands on an update?
#136
02/13/2014 (12:44 pm)
Sorin, which A* resource do you refer to? The one built into 3.5?
#137
02/13/2014 (11:52 pm)
Sorin, sorry to hear this is stil causing pain. Could you tell me a bit more about your use case so I can mull over possible solutions? Andy, the navigation code in 3.5 is an upgraded version of my earlier recast resource, basically a subset of Walkabout. Sorin's referring to an earlier resource that dates back to TGE if I'm not mistaken.

I'm terrible at sticking to promises about when I might release something, but hopefully within a week or two. I've added basic water handling, and factored in the code changes in the 3.5 release, and I'm in the process of updating the documentation.
#138
02/14/2014 (6:00 am)
@Daniel
Expose getNearestMeshPosition(or_whatever_it's_called) to console, k thx buy ;)

I suppose the use of multiple connected meshes might be useful for HUGE maps ... but might be a pain in the bum to code ...
#139
02/14/2014 (1:31 pm)
Sounds very nice daniel!
#140
02/14/2014 (2:18 pm)
@Andy S.: As Daniel said, I was talking about this
resource.