Jump to content

zoot

Community Members
  • Posts

    1.557
  • Joined

  • Last visited

  • Days Won

    9

Posts posted by zoot

  1. AI won't defend its ally anyway currently. It's not clever enough to do that.

    Shouldn't it attack aggressive Gaia entities, though? That seems to be the bug that is reported.

  2. Now, on the other hand, it seems to me this whole debate is quickly getting into the "unconstructive" area. There's a little too much being thrown in the air with numbers flying all over the place. I would suggest a little recap of the points debated here, because based on what is being discussed, it sounds a little too much like the whole game code needs to be rewrote absolutely-or-it's-never-gonna-work, and that's not going to be very constructive.

    Or, perhaps, to state it in another way: if the P2P model worked for so many other RTSs, it probably will for us too.

  3. @zoot: Well let's say 20 packet per seconds:

    P2p: each player sends and receives, 8 player => 8*20*8 => 1280

    ClientServ: 8*20+8*20: 320.

    Meaning, in terms of latency a non-neglibile gains in all case.

    That is wrong. In the P2P case we send 5 packets per second (one every 200 ms) per peer per peer. In the float-proof client-server case we'd send hundreds upon hundreds packets to account for position, health, animation state etc. of every given unit, building, projectile etc. per peer.

    And there is no "we may want to grow to 16 players". The player cap is fixed.

  4. @zoot: not sure P2P is really less bandwith, each client must send its user actions to each other clients anyways, so it grows exponentially with the numbers of players, whereas client server, it's as single send per client, and server issue agregated info once per client (with clever update/quantization/compression tricks to minimize bandwidth). So even latency might be better with client-server, minimizing the buffer bloat of p2p (huge number of packet, each having to pass the buffering of each network equipement.)

    The number of user commands (move unit, train unit etc.) per turn are much lower than the number of state changes (position, health, UnitAI changes of hundreds of units and projectiles etc.) per turn and we're capped at 8 players, so the amount of "exponentiation" is limited.

    (The game host may even act as a 'thin' server, distributing player commands so there is no "exponentiation" at all. I don't know the networking model well enough to know whether it actually does that.)

  5. In the distribution version, I believe everything is packed in one zip blob. If this still isn't efficient enough, maybe take a look at the pbf format: http://code.google.com/p/protobuf/ The reading speed of PBF is about 6 times that of XML, and the files are a lot smaller.

    I agree. If the goal is performance, you might as well take the full step and use a binary format. I would suggest retaining XML as the 'source'/'authoring' format, and then having some mechanism in the engine to convert it to binary "on the fly", and then store the binary result in the game's cache. That makes for a nice balance between optimization and mod-friendliness that is also used for textures etc.

    So flowfields (backwards pathfinding+storing) could help with that. Flowfields are mentionned on the forums here.

    I'm a bit dubious that flowfields can really be used like that. What if you have a loop in the flow? A proper cache in combination with the new pathfinder algorithm seems like a better course to me.

×
×
  • Create New...