Jump to content

Josh

Staff
  • Posts

    24,629
  • Joined

  • Last visited

Everything posted by Josh

  1. Josh

    Thumbs view

    Weird. I created a project in "C:\New Project" and I am seeing the same behavior.
  2. Josh

    Thumbs view

    I don't understand. Is your game's directory "C:\games\somethingelse"?
  3. It only supposed to show one one subfolder actually. No recursion beyond that.
  4. Editor updated with a few bug fixes If a treeview widget uses both the DRAGANDDROP and the MULTISELECT style, then nodes won't be selected until the left mouse button is released. This is a first step to allow the scene browser tree to have some more needed functionality.
  5. I can confirm the behavior is different in debug and release, but it looks like this is due to a missing implementation for convex hulls, maybe. I found this in the header for NewtonCollisionClosestPoint: It makes sense that collision trees would not work, because that is a polygon mesh with no volume. However, it seems like convex hulls should be fine. "User-defined" collision is something else in Newton, using a user-defined callback for custom collisions. Here is my test program: #include "UltraEngine.h" #include "ComponentSystem.h" using namespace UltraEngine; int main(int argc, const char* argv[]) { //Get the displays auto displays = GetDisplays(); //Create a window auto window = CreateWindow("Ultra Engine", 0, 0, 1280, 720, displays[0], WINDOW_CENTER | WINDOW_TITLEBAR); //Create a framebuffer auto framebuffer = CreateFramebuffer(window); //Create a world auto world = CreateWorld(); //Create a camera auto camera = CreateCamera(world); camera->SetClearColor(0.8); camera->Move(3, 0, -2); camera->SetDebugPhysicsMode(true); auto unlitMaterial = CreateMaterial(); auto unlitShader = LoadShaderFamily("Shaders/Unlit.json"); unlitMaterial->SetShaderFamily(unlitShader); int width = 2, height = 1, length = 3; auto model = CreateModel(world); auto mesh = model->AddMesh(); mesh->AddVertex(0, 0, 0); //S mesh->AddVertex(-width * 0.5, -height * 0.5, length);//NW mesh->AddVertex(width * 0.5, -height * 0.5, length);//NE mesh->AddPrimitive(2, 1, 0);//S , NW, NE mesh->AddVertex(-width * 0.5, height * 0.5, length);//NW h mesh->AddVertex(width * 0.5, height * 0.5, length);//NE h mesh->AddPrimitive(0, 3, 4);//S , NW h, NE h mesh->AddPrimitive(0, 1, 3);//left mesh->AddPrimitive(4, 3, 1); //"face" mesh->AddPrimitive(2, 4, 1); //"face" mesh->AddPrimitive(0, 4, 2); //"right" world->SetAmbientLight(1); //auto& mat = unlitMaterial; auto mat = CreateMaterial(); mat->SetTransparent(true); model->SetMaterial(mat); //model->SetColor(0.5f, 0.8f, 0, 0.25f); model->SetPosition(0, 0, 0); auto collider = CreateConvexHullCollider(mesh); model->SetCollider(collider); Vec3 targetPos(-2, 0, 0); auto box = CreateBox(world, 0.1f); box->SetPosition(targetPos); auto mover = box->AddComponent<Mover>(); mover->movementspeed.x = 0.2; model->Turn(0, 90, 0); //Main loop while (window->Closed() == false and window->KeyDown(KEY_ESCAPE) == false) { targetPos = box->GetPosition(); auto newTargetPos = TransformPoint(targetPos, nullptr, model); bool isInside = model->GetCollider()->IntersectsPoint(newTargetPos); if (isInside) { model->SetColor(0, 0.5, 0, 0.5); } else { model->SetColor(0.5,0.5,0.5,0.5); } world->Update(); world->Render(framebuffer); } return 0; }
  6. I mean that navmesh movement will be faster than player physics because it is much simpler. This can make a significant difference when large numbers of characters are in use.
  7. Confirmed. This also prevents you from dragging an entity onto another entity's properties. Stay tuned...
  8. Josh

    Thumbs view

    What was the path of your project directory when you were having a problem?
  9. I think this is fixed, in next build that goes up
  10. Player physics use a series of cylinder shapes to handle collision. A first-person player does not need to rotate because it is invisible.
  11. Okay, everything there looks correct to me. The orange bounding box shows the volume the navmesh can possibly cover. The blue tiles all look correct. Your player entity is set to be a navigation obstacle, so it is being considered in the navmesh calculation. You can uncheck the nav obstacle property to prevent this. Player physics are completely separated from navmesh pathfinding. Navmesh pathfinding uses Agents. https://www.ultraengine.com/learn/NavAgent?lang=cpp Agents only respond to navmeshes and to other agents. They can't see the physics of the world. It's a totally separate system. In Leadwerks these were inseparable but in Ultra you have a lot more control. This allows you to do things like create multiple navmeshes, one for big characters and one for small characters. You can make characters that are controlled by both physics and navigation, or you can have an army of characters that are only using fast navmeshes.
  12. Added OpenAI editor extension to Steam build.
  13. If you just call LoadMap and assign the returned value to the variable you used the first time, all the old objects will be automatically deleted.
  14. Ultra 0.9.3 now has support for entity references in component fields. I have added a forum for posting user-made components: https://www.ultraengine.com/community/forum/130-components/ I want to create a library of components that are each simple and fairly abstract, but can be used to piece together gameplay. The development process for 90% of users should consist of adding a component to an entity, setting some properties, and connecting inputs and outputs in the flowgraph.
  15. Josh

    MatchRotation

    This component will copy the rotation of another entity, with adjustable smoothing. MatchRotation.zip
  16. Added Map::GetEntity(uuid) Lua interpreter will now load entity component references Added Material:GetHandle(), should only be used in a world render hook
  17. Added component members that can reference other objects in the map. To define a property like this just set its initial value to null in the JSON file: { "name": "target", "label": "Target", "value": null } The component property will display an interface for selecting any object in the map.
  18. And you won't. This is a special thing I added for @klepto2 The Hook ID can be HOOK_TRANSFER or HOOK_RENDER.
  19. Please send me a PM with your password and I will try it.
  20. Thanks, I made the needed changes. It will take a few hours for the pages to re-cache.
×
×
  • Create New...