alre Posted September 17, 2021 Report Share Posted September 17, 2021 Between a24 and a25, the biggest change has arguably been unit pushing. This new feature has succeeded in smoothing unit movement considerably, but has made much more than that: it has changed they way units move and look, and the way they approach and engage enemy targets. I always felt like in this regard, mine was a minority opinion, but after discussing with a friend who was much more enthusiast than me about unit pushing, I think we can possibly agree on some way to enhance it, so I will speak out about what I think it's wrong about it. Units interpenetrate basically every time you move them. When you have a whole bunch moving together, they form queues so tight that they look like solid worms of people. In some cases, it may be hard to tell how many soldiers there are, making it particularly difficult to predict how a battle is going to go. It is even more difficult to tell how many soldiers are getting killed, because they are so densely packed in the melee that people dying are invisible inside the mob. Rams can sometime interpenetrate so deeply that two of them may look like there is only one, while they are attacking a building. Choke points are no longer of any real strategic relevance, you have to fit melee units into them to make them effective, and that's usually impossible/unfeasible. And the slightest gap between two buildings allows a whole cavalry army to pour in between in a couple of seconds. Any passage, narrow or large, can fit an army as large as you want. I think it wasn't necessary to deviate so strongly from how unit movement looked before, the new pathfinder is more andanced and effective, but it went too far on this new road. It is ok if a big mass of units struggles to go trough a narrow passage, that's how things work in reality anyway. And besides that, I think the look of battles is worse now than before, less clear and more hazardous. In any case, unit interpenetration is bad and should be avoided if possible. Thank you for bearibg my rant, let me know what you think. 3 1 1 Quote Link to comment Share on other sites More sharing options...
ChronA Posted September 17, 2021 Report Share Posted September 17, 2021 (edited) I second this with every fiber of my being. The ephemeral unit non-collision really detracts from my enjoyment of the game. In fact, I would call it a deal breaker personally; I am really not interested in engaging with any of the single or multiplayer content in the game unless this is remedied. (Luckily modding exists.) The only thing I would disagree about is that the situation was any more acceptable before alpha 25. Maybe units weren't sliding through each other quite so fluidly before, but they were still doing a lot of their fighting in infinitely dense knots where range and surface area did not matter; where you could not tell where one unit ended and the next began. It has always struck me as one of the most egregious failures of polish on this project. I would even suggest a different interpretation: more than a gamplay choice, this is a simulation performance and optimization failure. In theory this game supports 200-300 population per player in team games. (With the amount of performance degradation on display, I'd question that assertion, but whatever.) However 95% of units spend 95% of the game sitting inside each other and acting in lockstep within these horrid little singularities. Why then is the game wasting so many resources simulating so many individual units when it could be treating them in aggregate? Why not increase the separation of units, increase their pop cost by 5-10 X make their attack proportionate to HP, and call each one a battalion? I bet the game would run loads better and most players would not notice any real difference. (Here's my preferred setting in simulation\data\pathfinder.xml to ameliorate this issue. I'm sure the performance cost is horrendous, but...) <MaxSameTurnMoves>20</MaxSameTurnMoves> <Pushing> <Radius>1</Radius> <StaticExtension>2</StaticExtension> <MovingExtension>20</MovingExtension> <!-- This could be lower if there was a separate slider to scale the pushing force --> <MinimalForce>0.05</MinimalForce> </Pushing> <PassabilityClasses> <default> <Obstructions>pathfinding</Obstructions> <MaxWaterDepth>2</MaxWaterDepth> <MaxTerrainSlope>1.0</MaxTerrainSlope> <Clearance>1.5</Clearance> </default> <large> <Obstructions>pathfinding</Obstructions> <MaxWaterDepth>2</MaxWaterDepth> <MaxTerrainSlope>1.0</MaxTerrainSlope> <Clearance>3.0</Clearance> </large> Edited September 19, 2021 by ChronA 1 Quote Link to comment Share on other sites More sharing options...
maroder Posted September 18, 2021 Report Share Posted September 18, 2021 (edited) On 17/09/2021 at 12:41 PM, alre said: In any case, unit interpenetration is bad and should be avoided if possible. I agree in general, but the question is at what cost. For me, a game with less lag and smoother unit movement is exponential better than a game where units don't overlap but you have more lag and choppy unit movement. So while I'm always on the side of people who like nice graphics, I don't mind the trade-off at all between unit overlap and the performance that is gained through that. TLDR: I am a huge fan of unit pushing. Very good improvement. Edited September 18, 2021 by maroder Quote Link to comment Share on other sites More sharing options...
maroder Posted September 18, 2021 Report Share Posted September 18, 2021 (edited) On 17/09/2021 at 2:16 PM, ChronA said: In theory this game supports 200-300 population per player in team games This is something I was also thinking about lately. On my machine the game runs smoothly until 600 units max (world population) and then the first lag appears and judging from team game youtube videos, this seems to be the case for many people. And since most of the "big" performance optimizations I know of are by now already implemented (e.g. multithreading, unit pushing, pathfinder optimizations), maybe part of the solution to solve the lag could be to say: the engine supports less units, so let's design the game and the stats accordingly (i.e. make every unit worth more as @ChronA said) Edited September 24, 2021 by maroder Make myself clear 1 Quote Link to comment Share on other sites More sharing options...
LetswaveaBook Posted September 18, 2021 Report Share Posted September 18, 2021 On 17/09/2021 at 12:41 PM, alre said: Units interpenetrate basically every time you move them. When you have a whole bunch moving together, they form queues so tight that they look like solid worms of people. In some cases, it may be hard to tell how many soldiers there are, making it particularly difficult to predict how a battle is going to go. It is even more difficult to tell how many soldiers are getting killed, because they are so densely packed in the melee that people dying are invisible inside the mob. Rams can sometime interpenetrate so deeply that two of them may look like there is only one, while they are attacking a building. Choke points are no longer of any real strategic relevance, you have to fit melee units into them to make them effective, and that's usually impossible/unfeasible. And the slightest gap between two buildings allows a whole cavalry army to pour in between in a couple of seconds. Any passage, narrow or large, can fit an army as large as you want. I think it wasn't necessary to deviate so strongly from how unit movement looked before, the new pathfinder is more andanced and effective, but it went too far on this new road. It is ok if a big mass of units struggles to go trough a narrow passage, that's how things work in reality anyway. And besides that, I think the look of battles is worse now than before, less clear and more hazardous. In any case, unit interpenetration is bad and should be avoided if possible. I totally agree with this. What I think is probably the worst is that a group of javilineers can now occupy a very condensed space and launch death from a super small area. Quote Link to comment Share on other sites More sharing options...
KKaslana Posted September 18, 2021 Report Share Posted September 18, 2021 @alre @ChronA @LetswaveaBook Give it a try. I think this is what you guys want to do with the pathfinder. Just make sure to use attackmove (ctrl+click). 2 Quote Link to comment Share on other sites More sharing options...
wraitii Posted September 21, 2021 Report Share Posted September 21, 2021 My take for now: Units overlapping is not a desired outcome of the pushing logic However, it is quite a bit harder to prevent it and actually make pushing work and/or pathfinding work. The pathfinding benefits of pushing outweigh the cons of units overlapping I don't know if I'll have time / how much time I'll have for A26. Possibly little. So I wouldn't expect this to get much worked on. It's possible that there could be tweaks to pathfinder.xml to improve things. On 17/9/2021 at 2:16 PM, ChronA said: The only thing I would disagree about is that the situation was any more acceptable before alpha 25. Do you mean that e.g. A24 already had problems with this or are you talking about the A24-A25 SVN version? 2 Quote Link to comment Share on other sites More sharing options...
faction02 Posted September 24, 2021 Report Share Posted September 24, 2021 I haven't tested much the feature yet, but it seems problematic for ships. Since ships do not target a particular units but spread their arrows on all the targets, overlapping units is quite problematic. If we think about 9 ships perfectly overlapping each other fighting 10 identical ships perfectly overlapping each other, the 9 ships would all die while the 10 ships would all be damaged but survive. Of course, in practice, ships do not overlap perfectly but this is just to illustrate the issue. I was wondering whether the pathfinding problematic should be split into 2 parts: ground pathfinding and naval pathfinding? The two problems are quite different I would guess since on water, there is usually fewer units and less obstacles. On games like Starcraft2, flying units overlap each other while ground units do not so I was wondering if something like this could make sense for 0ad and potentially help to get an easy/temporary fix at least. Quote Link to comment Share on other sites More sharing options...
wraitii Posted September 24, 2021 Report Share Posted September 24, 2021 The feature can be disabled individually for ships if people prefer so. Quote Since ships do not target a particular units but spread their arrows on all the targets, overlapping units is quite problematic. If we think about 9 ships perfectly overlapping each other fighting 10 identical ships perfectly overlapping each other, the 9 ships would all die while the 10 ships would all be damaged but survive I _believe_ this is incorrect, as an arrow that hits its intended target only its the intended target and not any other target that may overlap it. Quote Link to comment Share on other sites More sharing options...
faction02 Posted September 24, 2021 Report Share Posted September 24, 2021 (edited) 1 hour ago, wraitii said: The feature can be disabled individually for ships if people prefer so. I _believe_ this is incorrect, as an arrow that hits its intended target only its the intended target and not any other target that may overlap it. Nice, worth looking what others think about it. Not sure if I explained well my intuition. My issue with ships is that the arrows are spread over all ships in range instead of having them used to kill one units after the other as it is the case for other units type. The first arrow goes to the first ships, the second arrow to another ships etc...( vs all arrows goes to one ship until it dies as it would be the case for another unit type). If I can put my 10 ships in the same spot, I can make sure the enemy ships will spread the arrows on the 10 of them and if I have more ships, I also have more units to split the arrows while I would at the same time fire more arrows on the enemy. When my ships do not overlap, ships in the back will usually be out of range. They will therefore not be targeted nor fire at the enemy ships. If I do a quick drawing of ships range with each color standing for a different player: - ship B only targets the enemy ship F; - ship C will spread one third of his arrows on each ship D, E and F; - ships D and E will fire only at ship C; - ship F will fire at ship C and ship B, both receiving half of the dps; If ships do not move, ships C will be the first one to die since it receive all arrows from D and E and half of the arrows from ship F. Ship F will be the second one to die since it receives all arrows from ship B and one third of the arrow from ship C. Both player loose one ship. With overlapping ships: - B and C send one third of their arrows on each enemy ship; - D, E and F send half of their arrows on each enemy ship; In this case, I would expect the blue player to loose 0 ship while the red player loose everything. Since repairing is free, the blue player may never loose a ship if he is active in repairing them and there is no possibility to ever come back. The initial number advantage can be cumulated over time. Edited September 24, 2021 by faction02 1 Quote Link to comment Share on other sites More sharing options...
maroder Posted September 24, 2021 Report Share Posted September 24, 2021 I guess this problem could be solved if ships would use the normal attack pattern where they attack the nearest unit / the unit you task them to attack and not buildingAI which spreads the attack on all enemies in range. But don't know what side effects that would have or what the original reason was to give ship the buildingAI. Quote Link to comment Share on other sites More sharing options...
LetswaveaBook Posted September 24, 2021 Report Share Posted September 24, 2021 2 minutes ago, maroder said: But don't know what side effects that would have Side effect: Shooting a volley with 20*35 damage at a single woman. 1 Quote Link to comment Share on other sites More sharing options...
Freagarach Posted September 25, 2021 Report Share Posted September 25, 2021 15 hours ago, maroder said: what the original reason was to give ship the buildingAI. Units who don't have BuildingAI can't fire multiple arrows (yet). 3 Quote Link to comment Share on other sites More sharing options...
Acanthis Posted September 25, 2021 Report Share Posted September 25, 2021 My two cents as a long time, off and on player: Formations are the one thing I want to see really working above anything else. Formations and unit cohesion were such a big part of ancient warfare that the game really loses a lot of immersion for me in that we see wild mobs of units engaging one another as the default. I would very much like to see formations as the default setting for groups of units. It seems to me that each formation type needs to have bonuses and tradeoffs for units within it. Directional damage would be super. I would very much like to see battlefield tactics become more important, forced even, upon players. Terrain bonuses play a big part of this too. The game is still fun and playable without these features, but I feel that really in the long run the game would be better served if there were more attention paid to how players field their units before, during, and even after battle. 3 1 Quote Link to comment Share on other sites More sharing options...
alre Posted October 27, 2021 Author Report Share Posted October 27, 2021 While formations may have a great potential for changing the game, I still think that first of all, we should avoid units overlapping like breezes. I'm very convinced that the pathfinder can work perfectly without units passing trough each other all the time. I attach here a simple mod I made that tweaks the parameters of unit pushing to limit what I think are the shortcomings of this new pathfinder: wild unit overlapping and irrelevance of chokepoints. From the video below you can see that the number of units is always easy enough to guess from the size of the mob, and that cavalry slows down a bit when it has to pass trough a chockepoint. Remember that this is just a demonstration made trough the simple tweaking of some parameters, one can achieve much better results by changing the c++ script that defines unit pushing. Atlas - Scenario Editor - maps_scenarios_prova.xml 2021-10-27 09-56-42.mp4 Atlas - Scenario Editor - maps_scenarios_prova.xml 2021-10-27 09-56-42.mp4 For instance, the aura that I gave to cavalry to enforce friction between units next to each others (not the same as in Res gestae mod, although I invite you to try that as well), could be integrated into the unit pushing system whitout much problem. Also I tried giving it to infantry as well, but the game wouldn't allow me because of limitations on the rendering of auras, which would not be a problem if that was made with c++. In general, it could be possible to change the game in a finer and also more effective way by tweaking the engine instead of just trough a mod, I can try it, I just don't know how to compile the engine (and my VS try license expired). Please let me know what do you think. I believe there is no reason for not trying to change this, and I hope I convince you as well. As always, I claim no right on the mod attached, which isn't really that creative so... you can add it to the game and whatever. stronger_pushing.pyromod 2 1 Quote Link to comment Share on other sites More sharing options...
maroder Posted October 27, 2021 Report Share Posted October 27, 2021 considering performance I think its not a good idea to attach an aura to every single unit. the other values could of course be tweaked. 1 Quote Link to comment Share on other sites More sharing options...
alre Posted October 27, 2021 Author Report Share Posted October 27, 2021 the aura can be integrated into unit pushing, for a minimal computational expense overall. Quote Link to comment Share on other sites More sharing options...
Stan` Posted October 27, 2021 Report Share Posted October 27, 2021 3 hours ago, alre said: the aura can be integrated into unit pushing, for a minimal computational expense overall. Coupling components that way seems like asking for trouble if even possible. Vs community doesn't require payment. Quote Link to comment Share on other sites More sharing options...
alre Posted October 28, 2021 Author Report Share Posted October 28, 2021 that is not really an aura, I forced into one because I couldn't put it into the engine. I originally designed it to be into the engine aside unit pushing. 1 Quote Link to comment Share on other sites More sharing options...
Stan` Posted October 28, 2021 Report Share Posted October 28, 2021 2 hours ago, alre said: that is not really an aura, I forced into one because I couldn't put it into the engine. I originally designed it to be into the engine aside unit pushing. Yeah sure. I'm hoping someone can help us implement some kind of friction in C++. I suppose there is a way to add it without adding a big number of range checks which is what auras do. https://code.wildfiregames.com/rP25182 <- Pushinghttps://code.wildfiregames.com/rP25219 <- MSVC Warninghttps://code.wildfiregames.com/rP25686 <- OOS Fix.https://code.wildfiregames.com/rP25708 <- Configurable pushinghttps://code.wildfiregames.com/rP25747 <- Pushing glitchhttps://code.wildfiregames.com/rP25748 <- Unit pushing: fix pairs of unit being allowed to overlap. I'm not sure about the terminology, but I think what is implemented is static pushing. 08:41 < wraitii> Well Ideally we'd implement a weight-per-template & static-moving pushing 1 Quote Link to comment Share on other sites More sharing options...
wraitii Posted January 13, 2022 Report Share Posted January 13, 2022 On 27/10/2021 at 10:37 AM, alre said: I attach here a simple mod I made that tweaks the parameters of unit pushing to limit what I think are the shortcomings of this new pathfinder: wild unit overlapping and irrelevance of chokepoints. I believe there is no reason for not trying to change this There unfortunately is: you're changing unit 'clearance', which affects pathing substantially and adversely. In particular, your units won't be able to go through some small gaps they could go through before. Further, splitting infantry and cavalry paths slows the game down. That being said, slowing units down when they are being pushed might be a smart idea, I think I'll try that out in C++ and see what happens. Quote Link to comment Share on other sites More sharing options...
wraitii Posted January 15, 2022 Report Share Posted January 15, 2022 Made a diff incorporating the idea of slowing down units based on pushing pressure around them: https://code.wildfiregames.com/D4439 I think it's a very neat idea. 1 Quote Link to comment Share on other sites More sharing options...
skeletonzombie Posted January 15, 2022 Report Share Posted January 15, 2022 Do units become faster when going downhill? Maybe this can also work with wind? Quote Link to comment Share on other sites More sharing options...
wraitii Posted January 24, 2022 Report Share Posted January 24, 2022 I've merged a substantial change to unit pushing in SVN. You should be able to test it out starting tomorrow. There are new parameters, and overall the behaviour of the system is IMO much better. 2 5 Quote Link to comment Share on other sites More sharing options...
alre Posted February 3, 2022 Author Report Share Posted February 3, 2022 On 24/01/2022 at 4:38 PM, wraitii said: I've merged a substantial change to unit pushing in SVN. You should be able to test it out starting tomorrow. There are new parameters, and overall the behaviour of the system is IMO much better. very good. it looks to me however that the difference is hard to notice in most cases. anyway, I'd make it possible for different units (cavalry) to have different pushing radius, irrespective of clearance. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.