entdata parameter in compile log

Discussion in 'Mapping Questions & Discussion' started by UFOslava, Oct 30, 2009.

  1. UFOslava

    UFOslava L1: Registered

    Messages:
    36
    Positive Ratings:
    0
    i was compiling a beta of my map, and came across some strange string...
    "entdata [variable] 195642/393216 (49.8%)"
    49.8%???
    Is this entity data limit?
    Does that means if i finish the second stage, there will be no room for stage 3? :O
     
  2. eerieone

    aa eerieone

    Messages:
    1,009
    Positive Ratings:
    569
    many % of the entdata are the gamelogic , the rest are prop_static&dynamic, brush-based entities (func_door, areaportals, trigger.....), and a huge number (in my case) are lights, since you need 3 things for a good light (prop, lightsource, lightcone)

    try to keep it under 100%, it might crash servers when it goes above

    edit: though i´ve written to correct me, obviously i forgot :)
     
    Last edited: Oct 30, 2009
  3. A Boojum Snark

    aa A Boojum Snark Toraipoddodezain Mazahabado

    Messages:
    4,769
    Positive Ratings:
    5,535
    /me stabs eerie. Disseminating wrong information is bad :(

    entdata is NOT a limit. You can go as high as you like. Meridian is around 200 and Panic is over 150. It was something valve put in for themselves as a guideline during HL2 development to keep under system requirements.

    entdata is literally the amount of data (bytes) the entity lump takes up. the crashing limit (not displayed anywhere) is related to edicts (entity dictionaries) which are an engine resource in limited amounts.
     
  4. drp

    aa drp

    Messages:
    2,254
    Positive Ratings:
    2,555

    you never cease to amaze me with your humongous head of hammer knowledge.
     
  5. MoonQuake

    MoonQuake L3: Member

    Messages:
    111
    Positive Ratings:
    21
    EDIT (*for the polycount update):
    entdata % is a very inaccurate number roughly representing the entities found in your map and the resources they use and you can go above 100% as you like.

    It's just that each entity as the potential to use more or less resources (edicts) from the game and few people know how to find this value.
    (and yes this value can be found and displayed)
    A lot of entities means your map takes up more resources, of course, but unless these entities are complex or create other entities themselves, you'll rarely bust the resource limit. (the edicts limit which is 2048) and crash the game or server.

    What matters if you don't want to bust the resource limit is making sure you don't have too many of these complex entities or spawning entities existing at once or too many entities in large numbers:

    - rain particles (can create a lot of stuff)
    - many large breakable_surf (a large breakable surface of 1024x1024 can easily create 100 objects once broken)
    - triggers of all types
    - dynamic objects
    - the players and their every explosions/particles/built objects or gibs when they die all count in the same limit
    (as a rough example, 32 live players of randomly mixed classes, just standing there doing nothing use about 500 edicts, imagine how many if they're all running around shooting, building stuff...)

    It's hard to know how many edicts any given entity as the potential of using, but you can use the following console command to help you:

    The console command "report_entities" shows the total number of edicts you have at any time. So if you add more entities and you're not sure if they use a lot more "edict memory", use the command to see the difference before and after the change. It also shows how many edicts are used for each type of entities. Like all your rain particles use up 75 edicts...etc...

    RULE OF THUMB: try to keep the number of edicts below 1200. That's what stock maps do because what's left is about 800 edicts, and a full 32 players server uses about 800 edicts just for the players resources.

    I hope that helps determining the real entity limit of a map at its current state.

    So to recap: if you are afraid your map will bust the limit of the engine and crash the game, edicts are what to keep an eye on, NOT entdata.

    MQ
     
    Last edited: Oct 8, 2010
  6. A Boojum Snark

    aa A Boojum Snark Toraipoddodezain Mazahabado

    Messages:
    4,769
    Positive Ratings:
    5,535
    :facepalm: You are talking about the edict limit, not entdata. Please do not confuse them and spread such info. (did you even read my post? :/ )
     
  7. UKCS-Alias

    aa UKCS-Alias Mann vs Machine... or... Mapper vs Meta?

    Messages:
    1,264
    Positive Ratings:
    748
    The limit came from hl2 and is a guideline. When HL2 was new many pcs did have quite low specs compared to now. If entdata reached 100% at that time it could already be a very laggy map. These days the value isnt anything usefull anymore.
    Funny but thats not the way it counts. The window breaking only adds 1 dynamic entity for the glass animation. There is a very diffirent check and limit on them.

    To check turn on sv_cheats and type cl_showents in console. it will give a list with all active dynamic objects. The last one is the number you are at. (and note that its usualy models of your weapons). The actual limit you should go for is 1400 (pipeline and goldrush have 1480). This will ensure that your map will run fine in any situation. It can crash it if there are 32 demoman spamming 8 stickies and 3 grenades. but in any normal game youll never even reach that, you dont even get near it.

    [ame="http://forums.tf2maps.net/showthread.php?t=3924"][INFO] Source engine entity limit & more - TF2Maps.net[/ame]

    For more info about it.

    [ame="http://forums.tf2maps.net/showthread.php?p=113359#post113359"][INFO] Source engine entity limit & more - Page 2 - TF2Maps.net[/ame] shows info about many used entities also.
     
    Last edited: Oct 30, 2009
  8. eerieone

    aa eerieone

    Messages:
    1,009
    Positive Ratings:
    569
    no need to stab me, i asked to correct me if i´m wrong :)

    i´m just saying, servers were crashing when cashworks had 112% entdata,
    i went and deleted some entities, went under 100% and the crashing stopped

    theory is one thing, but that´s how it worked for me in practice

    thx for the correction :)
     
  9. UFOslava

    UFOslava L1: Registered

    Messages:
    36
    Positive Ratings:
    0
    So what do i do?
     
  10. A Boojum Snark

    aa A Boojum Snark Toraipoddodezain Mazahabado

    Messages:
    4,769
    Positive Ratings:
    5,535
    You ignore it. His issue was likely something else. Either coincidence or he was actually breaking the edict limit and thus removing entities helped. The edict limit is unrelated because how many edicts are used is different from entity to entity.
     
    • Thanks Thanks x 1
  11. MoonQuake

    MoonQuake L3: Member

    Messages:
    111
    Positive Ratings:
    21
    Edited my previous post. Really wasn't clear, I agree. :)

    Someone worried about if they got too many entities in his map should be aware of the reason why it can happen and how to prevent getting to that point. They can't just ignore the entdata%, they must understand why that number can be big and if it's dangerous or not when it is.

    entdata is related to the number of edicts in a map, therefore it can give a general resources limit idea. It's just not precise enough to be considered as a mandatory entity limit, just an easy and safe way to scare people! :)

    That's why I felt like giving out a more precise way of being careful to prevent "busting the resources limit" if we can say that.

    Could be useful to a lot of people.

    UKCS-Alias: yeah, I was wrong with the numbers but the method works wonderfully. I thought it really was just a hidden limit that couldn't be found like everybody was saying, but after looking into it myself, I found you could display this value. :)

    MQ
     
    Last edited: Oct 8, 2010