No announcement yet.

FTE Quake supports 4 million entities. Darkplaces only supports 32k entities.

  • Filter
  • Time
  • Show
Clear All
new posts

  • FTE Quake supports 4 million entities. Darkplaces only supports 32k entities.

    FTE Quake uses an extended networking netcode that can address upto 4 million entities, while darkplaces only uses 2 bytes for it's netcode and can only address 32k entities.
    Internally Darkplaces uses a two byte memory structure to hold the entity number: and thus even there can only address upto 32k entities.

    It isn't enough to even do a 128 x 128 grid of entities
    >BUT That's Only 16k!
    The messages going back and forth manage to waste 32k edicts either way, though if you spawn the entities over multiple frames you can get away with it (but can new clients that get hit all at once?)

    To put this into context: you couldn't even have a small forest in Darkplaces made of even 1 polygon trees.

  • #2
    This has changed, however, in an extremely hostile fork of Darkplaces which retains LordHavoc's original given name (it forked in 2012: retaining LordHavoc's "Dead Name").
    This "LightPlaces" fork, from time adds ascii art like the Cross of Jerusalem and the Irish Celtic Cross to various c file headers, aswell as backporting some of the few features added since.
    A good reason to fork, no?


    • #3
      10 years ago Darkplaces was asked to add more entity support. The developers such as divVerent (Rudolf Polzer) laughed and said no. No one needs that many entities.


      • #4
        The fork, available in the ChaosEsque Anthology iso packages (as binaries and with source code included), as of last year, supports up to 4 million entities in Darkplaces (or rather LightPlaces): with backwards compatability to normal darkplaces clients up to 16k entities.

        Any mention of the fork earns an immediate ban on both #fte on irc and from the darkplaces "developers".

        The Xonotic and Darkplaces developers also ban anyone who has expressed views online anywhere that they disagree with.
        For instance: A long time Xonotic contributor Mircea Kitsune was banned from contributing to both Xonotic and Darkplaces because he expressed, on twitter, 2 years ago, appreciation of the "loli" belief system and of ancient marraige practices (marrying young girls). For his traditional Japanese view (he is Japanese) he was banned from ever contributing to Xonotic or Darkplaces. He didn't mention his views anywhere but his own places: but the Darkplaces developer Cloudwalk explicitly said he was banning him for his beliefs.

        The same goes for anyone who expresses an opinion that boys should not be castrated. The proud white techies of Xonotic and Darkplaces ban any contributor that expresses "anti trans" beliefs.
        Darkplaces and Xonotic developers support the castration of boys "if a doctor approves" and oppose the traditional marraige practices of all the world (marrying young virgin girls).

        So: The ChaosEsque Anthology project has, for a year now, provided a version of Darkplaces that can address upto 4 million entities: by learning the internals of the engine and the fte coding scheme and implementing it in Darkplaces. The FTE developer eureka was furious. The Darkplaces developers dismissive "we could have done that if we really wanted to".

        ChaosEsque has entities such as spawnarrays that can, in one fell swoop, will into existance entities in various shapes, procedurally.
        Thus has butt up against Darkplaces limits. Thus the coding change.

        Just wanted to let you know: So if you want more entities in Darkplaces: the chaosesque anthology ISOs contain the zip file with the Darkplaces engine fork that can do it.
        Set protocol masqurading on if you want compatibility with DP7 protocol while using up to 4 million entities. Set protocol to LP7 (light places 7) if you don't care about compatability.
        And if you are under the old limit just do nothing.

        The Darkplaces and Xonotic white developers have declared war on the traditional beliefs of the world; and the traditional beliefs of the old religions. And anyone who holds the views therein; regarding either. They have banned long-term contributors like Takoi (Mircea Kitsune) because of the contributors beliefs being of the old nature and not the new white-eunich-woman-worshiping-cult.

        If you want more entities: You now know where to find them.


        • #5

          Example of a spawn array.


          • #6

            Example of a spawn array and map code similar that calls it.


            • #7
              ChaosEsque anthology supports heightmaps and modulation of heightmaps by another for spawnarrays.
              So if you want your spawnarray in the shape of a gear you can do it. If you want it modulated by a checkerboard you can do that too,
              Such things make it easy to spawn many entities: and thus the fork of Darkplaces to support up to 4 million entities.
              There are 2 binaries to choose from: a 240k entity max one, and a 4 million. The 4 million uses more memory as Darkplaces pre-allocates everything on runtime and C can't use dynamic arrays in global structures even if you use C99 (not that anyone would do such). We did not wish to go down a mind bending and memory-space destroying alloc-dealloc odyssey so haven't changed the memory code.



              • #8
                Another example of a spawnarray. You see why more entities are needed?
                And why such was implemented the Darkplaces fork?
                Naturally Darkplaces completely rejects the changes, and is only interested in purifying it's belief and purging all who do not obey as such in mind and word.
                Attached Files


                • #9
                  Here is an example: you as a mapper can build little brush entities, label them (targetname).

                  Then you can call them from the spawnarray, and give a list and have them randomly picked. Do you see the prototypes in the foreground?

                  Now look at the background. That is a spawnarray, which has a heightmap applied (another entity (or list of brush entities, or list of brush entities and external models to randomly pick from).

                  It is randomly picking from each type: the list of spawnarray items, the list of "skip" items, the list of "skip column" items, the list of intersection items.

                  So if you don't want to spawn the ingame things (cities, buildings, items, trees, etc): you can make your own and have it spawn them by copytarget.

                  You can chain this too: make a spawnarray spawning spawnrandom spawnradial etc. You can chain with copytarget too.



                  • #10
                    You can supply external models for use as a randomly selected heightmap:
                    "spawnarray_heightmapbrush" "heightmap0 heightmap1 heightmap2 heightmap3 heightmap4 heightmap5 models/ebomb.mdl models/player/seraphina.iqm models/casing_rifle.iqm"

                    The same for a second heightmap to modulate the first:
                    "spawnarray_heightmapmodulus" "modulushm models/uziflash.md3 models/ebomb.mdl models/glassshardtriangle2.iqm models/tagrocket.md3 models/casing_lebel.iqm"

                    You can also list in-map brush entities alongside: it is your choice to use external models or in-map models to describe to the spawn array at what height to spawn the members of the spawnarray.