LiamKarlMitchell / InfiniteSky

InfiniteSky is an open-source mmorpg project, It is written in Node.JS
GNU General Public License v3.0
33 stars 42 forks source link

Implement a grunt task to take obj files and turn them into tilecache files. #178

Open LiamKarlMitchell opened 9 years ago

LiamKarlMitchell commented 9 years ago

We have made some obj's that can be found in the navigation_mesh archive on the fruit salad branch here. https://github.com/LiamKarlMitchell/InfiniteSky/blob/InfiniteSky_FruitSalad/FruitSalad/Data/navigation_mesh.rar

Recast JS

A Javascript library to handle navigation meshes, in nodejs and the browser.

It embeds an Emscripten-compiled bundle of the RecastDetour navigation c++ library https://github.com/vincent/recast.js

Recast's API can be found here but there are some undocumented things. https://github.com/vincent/recast.js/wiki/API

Part 1: The grunt task should be able to make a tilecache from the obj's some example code is here. https://github.com/vincent/recast.js/blob/f.load.save/tools/make-tilecache

Please see other grunt tasks for an example on how to code the task skeleton.

// this may be required
npm install -g grunt-cli

For talks on navmesh caching/saving see https://github.com/vincent/recast.js/issues/9

If interested, nav obj's were created first with a script to dump them from WM then a program to limit the polys. https://docs.google.com/document/d/1TLX8mAcPRLdz4WIq_lkbNQckFZxQG-KLsaIV8wr-CxU/edit

Part 2:

Create a test script that will load a navmesh tile and get some coords / paths from A to B. Would be cool if this can be shown/proven with their browser demo but not a requirement. (Or just draw the path with line tool in some 3D package to verify and put a screen shot here)

Part 3 would be making a grunt task to generate the OBJ from the games WM files. Ane has a script somewhere to help (i have it too but can't remember where I put it sigh it will be in my downloads folder somewhere i guess)

Part 4: would be configuring actor settings for monster sizes. (Different radius should not go over a gap that is too small etc)