Jump to content

gamecreator

Members
  • Content Count

    4,925
  • Joined

  • Last visited

Community Reputation

866 Excellent

About gamecreator

  • Rank
    Advanced Member

Profile Information

  • Gender
    Male
  • Location
    Hawthorne, CA

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Very true. It's difficult to be creative and sell people on it. But it's not impossible. Usually it involves combining familiar mechanics in a new way. Deep Rock Galactic does this very well (FPS, RPG, procedural generation, fully destructible world, etc.).
  2. Very cool. Not to nitpick but maybe the vegetation render distance could be farther out, especially the bush (which seems to pop in very close). Otherwise it's already starting to look like parts of a game. Reminds me a lot of GTA.
  3. Whoa! Thank you! I'm gonna read through it. I don't have a specific one in mind but this opens up a lot of possibilities, if it's as straightforward as it seems. Josh moved it to the programming forum but here's the link: Thanks again!
  4. It would be great to have a simple tutorial or walkthrough for this process as I know nothing about shaders but I'm pretty comfortable learning by modifying.
  5. Right. The host would still be authoritative and could check that the client didn't cheat. But that's down the line. Right now I'm just trying to get to step 1: making sure the client is where the host was.
  6. Well yes, that's the plan. But I'm trying to figure out how the client would have the proper position for the character, since you can't just use GoToPoint() on the client (I think). The ideal way to do it would be for the host to not need to send anything to the client, once it sent the client the start and end points of the navigation (with timestamps). The client should then be able to calculate where the character needs to be at any given time. Yes. I was debating whether to include that but it demonstrated well that the controller might not even be where we expect. Probably should have been a separate discussion.
  7. I was just theorizing about how to make sure that a pathfinding character on a host ends up correctly in the same position for a client. Actual network code would come later. And yes, I call GoToPoint only once (when I hit the spacebar). Ignore that it's possible to hit space multiple times in that code.
  8. I'm trying to figure out how to do pathfinding over the network and I'm not having any luck so far. I found this nice thread and post where you could supposedly get the navmesh points. I threw together a project using it but my tests weren't too promising. The problem is that if the character is going fast enough, he'll miss points entirely, kind of acting like it's drunk, making all but the start and end points useless for network prediction/interpolation. Here's the video: The red markers represent all the points that FindPath returns (10 points + beginning and end). Note that I'm only using GoToPoint once. I have a feeling that FindPath only works for the default speed (and perhaps acceleration). Here's the code: #include "Leadwerks.h" using namespace Leadwerks; Entity* player = NULL; Entity* navpointbox[100]; int main(int argc, const char *argv[]) { int j=0; Leadwerks::Window* window = Leadwerks::Window::Create("Navmesh Point Test", 0, 0, 1280, 720); Context* context = Context::Create(window); World* world = World::Create(); Camera* camera = Camera::Create(); camera->SetRotation(65, 0, 0); camera->Move(0, -2, -12); Light* light = DirectionalLight::Create(); light->SetRotation(35, 35, 0); Map::Load("Maps/map.map"); NavMesh* navMesh = world->navmesh; //Enable navmesh debugging // camera->SetDebugNavigationMode(true); // Start: -15.0, -2 // End: 9, 7 //Create a character player = Pivot::Create(); Entity* visiblecapsule = Model::Cylinder(16, player); visiblecapsule->SetScale(1, 2, 1); visiblecapsule->SetPosition(0, 1, 0); player->SetPosition(-15, 0, 2); player->SetMass(1); player->SetPhysicsMode(Entity::CharacterPhysics); while(true) { if(window->Closed() || window->KeyDown(Key::Escape)) return false; if(window->KeyHit(Key::Space)) { player->GoToPoint(9, 0, 7, 10.0, 5); // player->GoToPoint(9, 0, 7, 5.0, 5); NavPath* path = new NavPath(); vector<Vec3> pathpoints; path->navmesh = navMesh; path->navmesh->FindPath(player->GetPosition(true), Vec3(9, 0, 7), pathpoints); for(std::vector<Vec3>::iterator it = pathpoints.begin(); it != pathpoints.end(); ++it) { std::cout << "Point: " << it->x << ", " << it->z << endl; navpointbox[j] = Model::Box(); navpointbox[j]->SetColor(1.0, 0.0, 0.0); navpointbox[j]->SetScale(0.3, 1.0, 0.3); navpointbox[j]->SetPosition(it->x, 0.5, it->z); j++; } } Leadwerks::Time::Update(); world->Update(); world->Render(); context->Sync(); } return 0; } So, is there a way to get ALL the ACTUAL points the character will walk through (not just markers it might miss anyway)? Meaning, if a host lags for a second, I want the client to know exactly where the character should be at any given time. If this can't be done for Leadwerks 4, maybe we could have a FindPathPoint in Leadwerks 5 that returns a Vec3 at a given time. I understand that a character could be pushed out of the way or whatever too so it won't be 100% reliable.
  9. You can detect if two objects collide with Collision but I don't think it'll give you the shape of the collision. Might be able to do it with Newton somehow.
  10. 480p? Get some 4K, or at least 1080p going. That said, great progress.
  11. I'd be really curious what it would look like at a good bitrate and as video instead of a GIF. As a GIF it looks a bit weird. But if it's just to give us an idea, then mission accomplished and pretty exciting.
  12. Neat. Would this work with multiple hazes, separated by objects?
  13. You're a few months late: Also, the article you linked says how they do it. They stream it in from an SSD, which is a newer version and reads faster.
  14. That was an issue in the past. Using GetSpeed isn't accurate so your game won't play the same on different computers.
  15. Say a game is a fixed 60fps and you want to add that blur effect I talked about over 5 seconds. effect->SetProperty("strength", bluramount); bluramount += 1.0 / 60 / 5; // Adds a fraction of blur per 60fps frame and 5 seconds Edit: Actually, isn't this what SetFloat does now? I don't know much about shaders but would this be a uniform?
×
×
  • Create New...