Page 1 of 2
All players, bots and vehicles should update radar intel
Posted: Thu Dec 01, 2016 1:15 pm
by factoriouzr
All players, all vehicles (cars, tanks, trains), and all robots (logistics and construction) should update the intel (radar coverage, map) when they go through an area.
Re: All players, bots and vehicles should update radar intel
Posted: Thu Dec 01, 2016 4:29 pm
by steinio
Intel?
Do you play to much Ingress?
Re: All players, bots and vehicles should update radar intel
Posted: Fri Dec 02, 2016 5:47 am
by ssilk
That's not a good idea in general, cause charting costs a lot of CPU.
It makes sense of course, gameplay value increase is good, but not for all and everything and always.
Some more intelligent way of charting is needed to reduce CPU load effectively.
Re: All players, bots and vehicles should update radar intel
Posted: Fri Dec 02, 2016 3:08 pm
by factoriouzr
ssilk wrote:That's not a good idea in general, cause charting costs a lot of CPU.
It makes sense of course, gameplay value increase is good, but not for all and everything and always.
Some more intelligent way of charting is needed to reduce CPU load effectively.
Obviously it should be optimized. Not doing something because it costs CPU is not a good reason to not do something. If there is a performance hit, the algorithm should be optimized.
Right now, the game tracks biters and biter bases even if you don't have radar coverage because bots get destroyed outside of radar coverage and they are usually also out of roboport range. Thus the game is still doing the work of updating the bots and biters and making the biters target the bots, so updating the map is not much extra work. All the hard work is already being done in updating moving entities anyway. Updating static land images shouldn't be much of a performance hit.
Other optimization ideas just off the top of my head include:
1) reducing the size of the area updated based on the entity or vehicle
2) reducing the frequency of updates to once a second, once every 10 seconds etc
3) alter the update frequency based on what's going on. Eg. update moving vehicles more frequently then stationary vehicles
4) do predictive scanning by scanning in front of vehicles based on the direction they are going. This way you can multithread it and scan smaller areas but further ahead so that when the vehicle gets there it will be scanned as if in real time. This would be even easier for trains as they go along a predefined path (set by the track) and on top of that it would be even easier for trains because most trains will run automated and the game knows excactly where it's going and when it will get there (lights are reserved and blocks are locked as the train goes)
5) radars right now have a reasonably large active scanning range that is updated in "real time". I usually have large rectangular bases where the entire perimiter is covered in radars and I don't notice any performance hit so I don't think 10 - 50 trains/vehicles scanning much smaller areas and likely less frequently will be a performance hit. Granted if you go ridiculous and have 20 000 vehicles then you might see a hit, but that's true of all things. If you put 20 000 radars you will likely see a hit too. If you build a super massive factory you will also likely see a hit.
6) group entities together and update the entire group area once every x seconds/milliseconds instead of updating each overlapping area. This would make the most sense for bots which are usually dispatched in groups and go to close locations.
7) don't update the same chunk if it's been updated in the last x seconds/milliseconds. This would also improve bot scanning so the game isn't updating the same area every few milliseconds because bots fly over it
8) don't update a chunk if it's in the active radar range
In summary this is a useful feature that would add to gameplay and it should be optimized as needed to provide a balance between the feature being useful and performance.
Re: All players, bots and vehicles should update radar intel
Posted: Sat Dec 03, 2016 12:12 am
by Rseding91
Updating the chart costs a fraction of a MS to do.
It's simply that making robots render on the chart would make it near useless since it would just be a random slathering of robots all over the map.
Re: All players, bots and vehicles should update radar intel
Posted: Sat Dec 03, 2016 1:05 am
by MalcolmCooks
players already cover an area
by extension, cars and tanks do as well because they must have a player driving them
if you want to keep track of your trains, place radars to cover your rail network. I do this because I like to be able to see exactly where each of my trains is when I look at the map (helps a lot with not getting run over
)
as for robots, they are only really going to be flying inside your base, where you should have radar coverage anyway.
Re: All players, bots and vehicles should update radar intel
Posted: Sat Dec 03, 2016 1:26 am
by SHiRKiT
factoriouzr wrote:All players, all vehicles (cars, tanks, trains), and all robots (logistics and construction) should update the intel (radar coverage, map) when they go through an area.
I think that's exactly what's the radar for.
Re: All players, bots and vehicles should update radar intel
Posted: Sat Dec 03, 2016 9:55 pm
by ssilk
Rseding91 wrote:Updating the chart costs a fraction of a MS to do.
Hm. My experience says differently: I have for example 30 radars on a map and if I reduce them to 15 the performance rises about 15-20% (the difference between 20 and 24 frames per second).
30 radars are the equivalent of - hm - 500 thousand tiles (or 500 chunks - makes everything easier). While 15 is only half of that.
Re: All players, bots and vehicles should update radar intel
Posted: Sat Dec 03, 2016 10:03 pm
by Rseding91
ssilk wrote:Rseding91 wrote:Updating the chart costs a fraction of a MS to do.
Hm. My experience says differently: I have for example 30 radars on a map and if I reduce them to 15 the performance rises about 15-20% (the difference between 20 and 24 frames per second).
30 radars are the equivalent of - hm - 500 thousand tiles (or 500 chunks - makes everything easier). While 15 is only half of that.
*charting* costs near nothing. Having radars request to chart a chunk is slow - in 0.14 -. For 0.15 Oxyd and I optimized that so the whole thing takes almost no time.
Re: All players, bots and vehicles should update radar intel
Posted: Sat Dec 03, 2016 10:19 pm
by ssilk
Not that I don't believe that, but does charting not "copy" the entities of a chunk into the map? I mean: It needs to write colored dots into a bitmap, or?
For 30 radars about 500,000 pixels. Each tick. Alone the storage that needs to be read each tick is some megabytes.
I'm just interested, maybe I thought I understand the charting but didn't.
Re: All players, bots and vehicles should update radar intel
Posted: Sat Dec 03, 2016 10:28 pm
by Rseding91
ssilk wrote:Not that I don't believe that, but does charting not "copy" the entities of a chunk into the map? I mean: It needs to write colored dots into a bitmap, or?
For 30 radars about 500,000 pixels. Each tick. Alone the storage that needs to be read each tick is some megabytes.
I'm just interested, maybe I thought I understand the charting but didn't.
If the contents of the chunk haven't changed nothing is re-drawn. Even if the contents have changed at most the image is updated once per tick.
The image is just that - an image. We update the individual pixels of the image based off the entities on the chunk - no copying required. In fact it doesn't need to allocate any memory to update the chart when it already exists - it just re-draws the image.
Re: All players, bots and vehicles should update radar intel
Posted: Sat Dec 03, 2016 10:40 pm
by ssilk
Well, I meant with "copy", to read the links of the chunks and their entities into the CPU and then to change a piece of memory in the pic. But confirmed what I thought about the charting, thanks.
So this is also a "not just so good" idea, cause robots have the characteristic, that they change the contents of a chunk every frame.
Re: All players, bots and vehicles should update radar intel
Posted: Mon Dec 05, 2016 2:44 pm
by factoriouzr
MalcolmCooks wrote:players already cover an area
by extension, cars and tanks do as well because they must have a player driving them
if you want to keep track of your trains, place radars to cover your rail network. I do this because I like to be able to see exactly where each of my trains is when I look at the map (helps a lot with not getting run over
)
as for robots, they are only really going to be flying inside your base, where you should have radar coverage anyway.
Except when bots fly out of your network (another enhancement suggestion) and get killed. It would be nice to see what they scouted along the path and the enemy base/biters where they died so the player can respond appropriately.
Re: All players, bots and vehicles should update radar intel
Posted: Mon Dec 05, 2016 2:48 pm
by factoriouzr
ssilk wrote:Well, I meant with "copy", to read the links of the chunks and their entities into the CPU and then to change a piece of memory in the pic. But confirmed what I thought about the charting, thanks.
So this is also a "not just so good" idea, cause robots have the characteristic, that they change the contents of a chunk every frame.
I'm not suggesting to chart robots. I'm suggesting that robots update the intel. Ie. they scan an area. In fact I don't want robots to show on the map, that would be pretty useless. I just want them to scan sections they fly over and show what the game shows now with a radar scan.
Re: All players, bots and vehicles should update radar intel
Posted: Mon Dec 05, 2016 6:43 pm
by ssilk
Ah, NOW I understand. That is meant with "intel", never heard that before.
I would like to change this topic to
"Bots and vehicles will chart invisible map chunks"
Does that hit your suggestion or not?
Re: All players, bots and vehicles should update radar intel
Posted: Mon Dec 05, 2016 9:29 pm
by OdinYggd
But then, that renders Radar's second most useful feature obsolete- making your vehicles visible on the map so you don't lose them.
For players who favor peaceful mode that is the only reason to build radars at all.
How about meeting you halfway here.
With equipment grids becoming available, create a 'mobile radar' equipment. This can be carried on vehicle grids to reveal the vehicle and its surroundings on the minimap at a reduced radius and no long range scan.
Re: All players, bots and vehicles should update radar intel
Posted: Mon Dec 05, 2016 10:24 pm
by ssilk
I see this suggestion as a "wish", some idea (see subject above, we can of course add vehicles to it).
The specific implementation (modules?) doesn't matter yet. What must be proofed here is, if that when bots can reveal map if this is really fun/useful... IMHO you can test that only with modding.
Re: All players, bots and vehicles should update radar intel
Posted: Mon Dec 05, 2016 10:44 pm
by mattj256
ssilk wrote:
I would like to change this topic to
"Bots and vehicles will chart invisible map chunks"
I believe the original request was that players, bots, and vehicles should function like radars. This means they remove the fog of war for some area around them. This includes discovering new chunks as well as updating existing chunks.
Re: All players, bots and vehicles should update radar intel
Posted: Tue Dec 06, 2016 11:50 am
by daniel34
mattj256 wrote:ssilk wrote:
I would like to change this topic to
"Bots and vehicles will chart invisible map chunks"
I believe the original request was that players, bots, and vehicles should function like radars. This means they remove the fog of war for some area around them. This includes discovering new chunks as well as updating existing chunks.
Players already work that way and constantly lift the fog of war in a 2-3 chunk radius similar to a radar, but with reduced range.
https://wiki.factorio.com/Radar#Coverage
What I don't understand is the "invisible" part of the title. Ssilk probably means map chunks that have been black as of yet (never been charted), but the player/radar already makes no distinction between newly charted and recharted chunks and this idea also shouldn't.
I think the general approach is wrong here: For cars/tanks/trains this should be solved using the vehicle equipment grid and radar equipment, which would also then require power and be at least a bit more balanced in terms of resource costs. Radar equipment (and the required power equipment) would most likely be far more expensive than a car. Otherwise you could just station a bunch of cars around your perimeter and be done with map charting.
For bots this should be solved by allowing the roboport to chart its logistics/construction area instead of the bots themselves. As you generally have far less roboports this would also help with performance, even if Rseding91 mentions that charting costs next to nothing I can't imagine it being very performance efficient when you have 1000+ bots constantly charting the map. For the edge case of bots flying over area not in the logistics/construction range (eg. an L-shaped network) that's not a very good idea in the first place and I feel this change (charting with bots) would just lead to wasted developer time and loss in UPS for a feature most won't need.
Re: All players, bots and vehicles should update radar intel
Posted: Tue Dec 06, 2016 3:00 pm
by factoriouzr
ssilk wrote:Ah, NOW I understand. That is meant with "intel", never heard that before.
I would like to change this topic to
"Bots and vehicles will chart invisible map chunks"
Does that hit your suggestion or not?
Sure that's fine, just don't say "invisible map chunks" as that implies that they have never been charted yet. I want all things like this to update the charting. Ie. get it fully up to date when they go through the area regardless of if it has been charted before or not.