Hello,
Thanks for all your replies. The idea in this thread was to check if programmers liked/approved the suggested way shown in the tutorial for adding pathfinding to their projects. I know that using custom WED panels may bug some advanced programmers, which is why we put emphasis on the video that all they do is allow a simple way to change some variables (entity name so you can easily retrieve their pointer, and movement/animation settings if u decide to use IX's respective systems).
It may just be the way I am interpreting your sales jargon, but it appears
that the Zinc package comes as a trial "copper" package that will downgrade itself at 30 days.
I dislike this idea greatly. Zinc should be bundled with free-ware "material" only.
If you want to bundle a level for demo purposes, use crude or freeware levels/models.
If I want trial-ware, I will download trial-ware, and delete trial-ware when it expires.
This is my personal out-look on trialware "stuff". Its just dirty...
As croman said, upgrading from Zinc to Copper Trial is optional. If you don't visit Zinc's about panel:
, you'll never see it or get prompted to upgrade to it. The reason it's in there is so people won't have to download 80mb TWICE, since Zinc and Copper Trial use exactly the same files. Also, it's easier for me to maintain less editions of our products (one less installer for me to make). But that's why I made this video, so if this does bug more people, I'll consider splitting into different editions.
Next, "this" page advertises Zinc as "...unlimited entities and unlimited nodes",
but the page behind the "more..." link says only 999 entities and 999 nodes per level.
Are they both right? Or is one page incorrect/out-of-date?
Good catch. I'll update our <more> page to say unlimited entities/nodes since we just copied pasted the feature list from our older IP 2.0 product.
1> Does Zinc allow run-time creation/removal of nodes?
No. I want to add Doors to Intense X Silver, which means that pathfinding nodes will need to be activated/deactivated at runtime, so a different path will be found whether a door is open or closed. When I do, I'll consider updating Zinc so you can do this by code as well. Updating your Zinc will be even simplier than updating your Gamestudio version. You run an installer, and all your projects will be ready to use Zinc's new features. (all the installer does is copy files to your Program Files/Gstudio7/
IntenseX folder, so if people don't like installers, I possibly could upload a zip file as well, for manual installation. Let me know..
2> If an entity loses his path, due to node removal or getting "knocked off" the path,
does he head back to nearest/easily-reached/default node on his own?
IP works like that.. There's a Pathfinding Static and a Pathfinding Dynamic Layer, which work together to guide your Entities to their destination. The dynamic Layer has priority over the Static one. Every time an entity is ordered to move somewhere, the Static layer will find a path by selecting a subpart of the waypoints in the level using A*, so the entity begins moving towards a route like that:
Starting Point
Waypoint 1
Waypoint 2
Waypoint 3
Waypoint 4
Ending Point
If an obstacle is blocking the way between Waypoint 2 and Waypoint 3 (obstacle avoidance uses NO traces, so you won't notice any fps dropdown even with 100 entities pathfinding in the same level), then the Dynamic Layer takes over and guides the entity around the dynamic obstacle. After the obstacle has been avoided, the entity will resume to follow his static path (f.e. Waypoint 3).
2a> If not, could we users code a way for this to happen?
(eg lost entity will create a temporary-private node at his own location,
that is connected (at some point) to his original path, which he can then
follow and which will delete once he sucessfully reaches his old path)
You can call the MoveTo function as many times as you want, even while the entity is moving, to change his destination point, or even use your own movement system altogether. You can't create/remove waypoints at runtime, but if u come to understand how IX pathfinding works, you'll see that the only time this will be nesseccery is to have doors that open and close, so u activate/deactivate waypoints respectively. For dynamic obstacles, such as buildings created in RTS games, the dynamic avoidance system will be enough to handle this. But if you'll be creating long walls, etc, you'll need the activate/deactivation of waypoints i mentioned earlier.
There was a section in your video where you have to place nodes near an already defined path.
If it would be possible to attach an exsisting path to a node in order to let it create new nodes for your path generator, this would help users to reuse their levels faster.
Zinc controlled NPCs and other code controlled entities can share the same paths this was. - No need to define it twice.
I'm not too fond of pathfinding systems that use WED's paths to create their pathfinding graphs. This means that the user needs to MANUALLY define all possible edges between every waypoint. Zinc will do this automatically, so WED paths are not appropriate for graph creation. For more info on creating graphs using waypoints, you can check out Zinc's
online documentation.
um the zinc demo edition is best than the copper edition (edit: the zinc have new options in the panels)
when are a update avalaible for copper?
Intense X Zinc 1.0/Copper Trial 1.0 and Intense X Copper 1.0 will be released the same day. All zinc features are also included into Copper 1.0 for easier activation to existing non-ix projects.
could you add more smoother rotation while following nodes?
If you're using Intense X's movement then you can do it yourself from here:
Npc Action Help Page a bit outdatedOr, like Quadraxas said, you can write your own. In this case, when you issue a MoveTo command to an entity, Pathfinding will just update one of its skills to the direction(-180..180) that your entity should move towards, in order to follow the static/dynamic path to guide the entity to its destination.
(i have the Cooper, but possibly will use the zinc since i will only need pathfinding)
You won't have to downgrade, Copper 1.0 will have the exact same features, and adding Artificial Intelligence and writing your own
Custom Goals is only a click away.
just wondering if it handles physics movement or move by c_move
IX movement uses c_move. I don't know how sensible it would be to use real physics for movement, especially Gamestudio's ODE engine.. But you could write your own and make it move using physics towards the
pan direction that IX pathfinding will give you.
I have Gamestudio's Physics working for some simple objects in Silver, like Barrels and Crates.. But I'm thinking of adding ragdolls to silver as well, and for that I may try using one of those freeware physics engines available. or maybe gstudio upgrades to PhysX sometime soon (crosses fingers).
EDIT: Will it be posibble to just include a script and dont do the things over wed, only in the script? And is it possible to call the moveto function with the my pointer?
You could use Zinc like you used Intense Pathfinding 2 if you wanted to. So, you install Zinc, don't touch the Intense X menu from WED at all, and instead write this line to your main script: "#include <IntenseX.h>" and you can now use all Zinc's functions. That's all the
activation panel in WED does anyway, and create a DAT file that will store customization settings, as such:
Miscellaneous: Meter Size=90
Miscellaneous: Brightness=50
Miscellaneous: Sound Effects Volume=100
Miscellaneous: Gravity Steps=13
Miscellaneous: Downwards Trace=3
Miscellaneous: Maximum Fall=3
Miscellaneous: Step Up=0.125Otherwise, you'd need to change settings like this by code. You'll also need to define an NPC to be the graphmaker manually, use -d make_graph to build a pathfinding graph for each level, and stuff like that that happen automatically if you use the WED panels. But I promise that even by using the panels you can still use lite-c to control your Npcs like you did before. For example:
1) If you create a function called "ix_NpcAction" you can control all Npc entities that you add the Intense X Action to:
#include <IntenseX.h>
void ix_NpcAction()
{
//Inside this function, the 'my' pointer is assigned to the Npc running this action
//Write Custom Movement
//..
//Write Custom Animation
//..
//Order to go somewhere at beginning
is_Action_Walk_To_X_Neutral(500,200,50,NULL);
}
//Other stuff
//..
void main()
{
//Write Custom code here...
level_load("bluh.wmb");
}
2) You can now retrieve the pointer of an IX entity by the name you enter in the Npc Panel, like this:
my=ix_getEntity("Bob");Or if you don't like the WED panels, you can still use the old
sId_to_ptr(..) which compares a string with the my.string1 instead, but I highly recommend using the newer way.
3) You can still use the old functions which use the
my pointer to move an entity. For example, the source code for the new
ix_MoveTo(..) function is the following:
void ix_MoveTo(char* cName,PosX,PosY,PosZ)
{
my=ix_getEntity(cName);
is_Action_Walk_To_X_Neutral(PosX,PosY,PosZ,NULL);
}
Thanks to all for your responses. Keep them coming. I'm making some final touches from the feedback I received here and posting a download link very soon.
Cheers,
Aris