1. Forum will be completely down this Saturday to move to a new faster host. Time TBD and probably at least 4 hours.
    Dismiss Notice

EQBrowser and graphs

Discussion in 'MMO Emulators' started by suineg, Oct 29, 2013.

  1. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
    lol, indians gonna win world series dawg.

    NL sucks btw
     
  2. Secrets Active Member DONOR

    Secrets
    Joined:
    Jul 30, 2016
    Messages:
    471
    Ratings:
    +39
    zoningquest is finished

    ead5c17dbd.jpg

    a1a9d1278a.jpg
     
    • Like Like x 2
  3. Alasliasolonik Active Member

    Alasliasolonik
    Joined:
    Jul 30, 2016
    Messages:
    499
    Ratings:
    +99
    Update: Not sure what to eat for dinner tonight.
     
  4. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
    prasboys
     
  5. Alasliasolonik Active Member

    Alasliasolonik
    Joined:
    Jul 30, 2016
    Messages:
    499
    Ratings:
    +99
    Update: STILL not sure on what to eat for dinner!
     
    • Solidarity Solidarity x 1
  6. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
  7. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
  8. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
  9. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
     
    • Like Like x 1
  10. Alasliasolonik Active Member

    Alasliasolonik
    Joined:
    Jul 30, 2016
    Messages:
    499
    Ratings:
    +99
    Good morning, forum! How is everyone doing today?
     
  11. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
  12. Kharzette Watcher of Overs DONOR

    Kharzette
    Joined:
    Aug 4, 2016
    Messages:
    578
    Ratings:
    +103
    How does the server send movement? Is it periodic position updates? And some of them are under ground?
     
  13. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
    Playing with Navmesh & Navmesh agents. Z still fucked, but at least I have gnolls climbing hills instead of running through them.

    Doing something like this to adjust Z:

    Code:
    if(NavMesh.SamplePosition(this.transform.position, out myNavHit, 100 , NavMesh.AllAreas))
    {
         this.transform.position = new Vector3 (movetoX, myNavHit.position.y, movetoZ);
    }
    


    SVm0RR0.png
     
  14. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
    The Z that the server sends the client is sometimes correct and the client adjusts based on the zone geometry.

    The way I have to implement this variable adjustment is very tricky because it is extremely easy to lower FPS from 50 to 8 when every single mob is calculating the adjustment with every step they take up or down a hill.

    This is webgl specific in terms of performance. Since you are limited in a browser compared to a mobile/desktop app that uses all available resources.
     
    #154 tyen, Oct 29, 2016
    Last edited: Oct 29, 2016
  15. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
    @performance

    I usually get 40fps in this zone on chrome. With my navmesh test, I have 30fps, for example.

     
  16. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
    -Server sends client initial x,y,z spawn spot coordinates.
    -Server then sends client target positions with delta positions
    -When delta magnitude != 0 and an npc reaches it's target destination, it has to keep walking on the delta path while waiting for the next target position update.
    -When delta mag == 0 and an npc reaches it's target destination, it will idle at the target position

    cut this script up to make it more readable.

    Code:
    //Initial Spawn Position
    public float x;
    public float y;
    public float z;
    
    //Target Position
    public float movetoX;// x coord
    public float movetoY;// y coord
    public float movetoZ;// z coord
    public float movetoH;// z coord
    
    //Delta Position
    public float deltaX;// x coord
    public float deltaY;// y coord
    public float deltaZ;// z coord
    public float deltaH;// z coord
    
    void Start()
    {
        //place NPCs via ZoneSpawns packet positions
        this.transform.position = new Vector3(x, y, z);
    }
    
    void Update () 
    {
    
        //update deltas from clientupdate packet
        if(updateDeltas == true)
        {
            deltaF = new Vector3 (deltaX,deltaY,deltaZ);
            updateDeltas = false;
        }
           
        if (deltaF.magnitude != 0)
        {       
            //idle gameobject recieving a target position
            if(clientUpdate == true)
            {
                //initial movement
                targetPosition = new Vector3 (movetoX,movetoY,movetoZ);
            }
            //if waiting on update from server for final target position, move along the delta positions
            if(clientUpdate == false)
            {
                //continuing to move in between updates
                targetPosition += new Vector3 (deltaX,0f,deltaZ);
            }   
            //move now
            this.transform.position = Vector3.MoveTowards(this.gameObject.transform.position, targetPosition, step * Time.deltaTime);
        }
        //idle npc after reaching a target destination.
        else
        {
            if (deltaX == 0 && deltaY == 0 && deltaZ == 0 && movetoX != 0 && movetoY != 0 && movetoZ != 0)
            {
                this.transform.position = new Vector3(movetoX, movetoY, movetoZ);
            }
            else
            {
                //FOR  Y ADJUSTMENTS IF UNDER OR BENEATH WORLD WHEN NOT MOVING AND NO POSITION UPDATES FROM SERVER
            }
    }
    
     
  17. Kharzette Watcher of Overs DONOR

    Kharzette
    Joined:
    Aug 4, 2016
    Messages:
    578
    Ratings:
    +103
    You don't really need a full pathfind query for a movement update. Just a capsule trace style move routine should suffice, though there's always the chance it could diverge from the server's results. I guess you could check and do corrections.

    The move routines should take a motion vector and trace it against the collision, with each hit reflecting the vector along the surface hit until the energy is expended, with some special cases for stuff like stairs and ramps. The good ones are swept over time, so you don't get any tunneling with fast movement.

    They are incredibly tricky to write, so hopefully Unity comes with one. If not, the old quakes had swept box routines, and Unreal has swept shapes of the basics.
     
  18. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
     
    • Like Like x 1
  19. qwertyqweqwertwqert Retard Rehabilitation Program

    qwertyqweqwertwqert
    Joined:
    Jul 30, 2016
    Messages:
    1,526
    Ratings:
    +122
    Whats gonna be the advantage of eq in a browser? For people to play on their phone?
     
  20. tyen Well-Known Member

    tyen
    Joined:
    Jul 30, 2016
    Messages:
    2,496
    Ratings:
    +1,863
    EQBrowser runs in a browser on a PC, EQMobile runs on Apple & Android. I'll have mobile up in the store(free) next xmas.

    They both connect to the same server.