-
Posts
624 -
Joined
-
Days Won
19
Everything posted by guerringuerrin
-
New test on this last commit ee1083529d: The commit before this one had identified that elephant deadlock when trying to pass through narrow passages. Two elephants try to pass through the passage at the same time. They have the same strength and resistance, and neither of them stops pushing: With the latest commit, this no longer happens. They can still take a while to get through sometimes, but they eventually manage to pass. Overall, I think the resolution of these deadlocks has improved significantly: Here I’m sharing the basic test I’ve been repeating with 24 elephants going through a base with narrow paths with micro: And here I’m sharing some other tests simulating a more or less standard army: This first video shows how the infantry units are able to advance without being significantly blocked by the elephants. The positioning of the elephants at the front is intentional. You can see how they block the entrances, yet the infantry is still able to push through them without major issues. Here, you can first see me repositioning my army to achieve an optimal formation. The infantry units flow smoothly through the moving elephants without any issues. Secondly, we can see that I send the army to the other side and move an elephant that was about to block others coming toward the passage from another angle, allowing them to get through quickly. Toward the end of the video, you can see me stop the last elephant moving along the upper line to help the infantry get through quickly. This is an interesting situation: even though the infantry units are faster than the elephant, they still aren’t fast enough to simply move around it, so the elephant ends up blocking their path. The solution is simply to stop the elephant for a few seconds. Another example of the infantry advancing smoothly, even when the elephants get heavily stuck at the various entrances: My overall impression of this latest commit is very positive. The elephants feel heavy to control but still reasonably fluid. I like that they feel heavy. They’re huge and heavy units. (I’d love to see them charging in side by side, swinging their tusks around and sending soldiers flying through the air. A charge-like ability with a cooldown would probably be OP, though. Sorry for the digression. ) Although less frequently, some of them will still get stuck in narrow passages. However, with a bit of practice, it’s easy to identify which ones need to be moved to clear the elephant jam. And honestly, I think it’s fine that this happens. They are large, heavy units that can easily knock down a building. I think it could even be an exploit to have a unit that can quickly flow through narrow paths while pushing enemy units ( while trampling them ) and reach its destination with a single click. It feels like a pretty reasonable drawback: You want to mass elephants and reach the enemy CC? Do a little micro. In fact, the most natural (and fastest) thing to do would be to destroy a few houses and make your way through. The infantry would probably capture some of the barracks, opening up even more space. As for the movement of mixed armies, it really feels and looks great. I forgot to include a video with cavalry, so I’m not sure if there’s one with the latest adjustments. It’s very, very good. I don’t think the elephant jamming is enough of a reason to block this PR. The improvements this work brings are clearly more valuable. In vanilla, we can see greater fluidity due to the overlapping. But the result is not only unrealistic, it also looks ugly. It’s like a snake of fast-moving pachyderms, so light and nimble that a single infantryman can stop them. In this video, I forgot about the enemy’s initial army, so they rushed in to attack the elephants, who ended up getting completely stuck against just four infantry units. So, ultimately, I think this is a gameplay decision. From a technical standpoint, I think the issues are already pretty well addressed. Perhaps the only thing still missing is some fine-tuning for ships. And it would be great to test some actual games over the next few days. We can coordinate and play a few 1v1s, and hopefully we can get some 2v2 games in as well. @AtrikI think I would add the pushing property to the worker elephant, but not the trampling property. A picture:
-
Hey @Arup, is this the same version as the one in mod downloader? Or you've made some changes? I'm confused
-
Yes, I agree with you. Although I’m not sure elephants necessarily need to be able to move smoothly through the narrowest possible passages. There has to be a point where the elephant’s size actually matters mechanically, and in those situations, the most logical choice seems to be to destroy the house rather than try to squeeze through it. But I think trying elliptical hitboxes is reasonable. I got the impression that implementing them would be quite complicated, but if there’s any possibility of doing it, I’d definitely give it a try.
-
I managed to block my 24 elephants again. The gaps they tried to pass through are quite small. I’ll clarify again here that I’m deliberately trying to push things a bit. In particular, I’d like you to look at what happens with the group at the bottom, which has a visibly wider path than the group at the top. The first elephant goes straight through, but the second one, which is coming slightly from the side, collides with the house and turns to its left to try to go around the house. However, there is no longer enough space for it to make the 90-degree turn, so it gets stuck at the corner of the structure's hitbox + some eles probably pushing it too, and ends up blocking all the eles. I replicated this with only a few elephants, and something similar happened. It seems that elephants need to make a 90-degree turn to go around a building, avoiding any contact between their hitbox and the corners of the structure. This can be seen in the following videos. There is clearly enough space for the elephant to pass through if it moved diagonally: The obvious conclusion is that the hitboxes are too large, both unit and building (I'm asuming hitbox are the green ones). They extend well beyond the 3D model that the user sees and create these visual inconsistencies: the elephant cannot pass through a gap that appears wide enough. Having the structure's hitbox larger than the model may be desirable to prevent units from clipping through it and perhaps also help with visual clarity. But for organic bodies, maybe we can cheat a little with this. And I think this is also why I mentioned several times trying to "give them more overlap". But perhaps that wasn’t the right term. Maybe it’s not a matter of giving them more overlap, but rather making their hitboxes smaller. This could help elephants move through gaps that appear wide enough to the user, and it would also prevent them from pushing each other without actually touching, as can also be seen in this same video (00:10). In this last example, we can see an elephant walking around the barracks while keeping an exaggerated distance from the structure's visible boundaries: One final clarification: It’s obvious that destroying the houses is the quickest way forward, and there’s no reason to expect the elephants to organize themselves perfectly and head straight for the fortress. After all, the purpose of this feature is to add more realism and make a huge creature like an elephant somewhat clumsy. However, I think there is still room to improve the visual inconsistencies I’ve shown, where there appears to be enough space for an elephant to pass through, but it nevertheless gets blocked. I think most users will consider these visual inconsistencies a bug, and they can make the experience somewhat frustrating. That’s why I keep pointing them out as something that I think needs to be addressed.
-
I like this behavior much more than what could be seen in my videos from the previous commit. I'm not sure to what extent it will be possible (or desirable) to make the behavior more realistic, but getting them to rotate a little when they are pushed would be really good, as it would make the behavior more realistic and, in many cases, could help open up paths for them to move through more quickly. But, in fact, I think this result is quite acceptable. And what I like most about this new patch is that the elephants entering the narrow path looks much smoother and more natural. They’re still clumsy and slow, which is fitting for something so large and heavy. But the movement flows much better than in the previous version, which felt stiff and a bit “dumb”
-
Yes, it could be what you say, and it might be related to a (bad) pathfinding issue. In this latest video of the stationary elephant, I think you can see a clear path that the elephant could take (orange arrow) instead of trying to join the path line that all the others are using. And since it never manages to get into position, it looks like it just stays still. I understand what you mean and, to some extent, I agree. So far, my intention with these testruns has been to force situations that may not be common in everyday gameplay but are still possible (such as a group of 24 elephants). I'll now start testing more "expected" situations, mixing elephants with infantry. We could also test MP in the next few days. I haven't tried to coordinate because I've been short on time, but we'll find an opportunity. Regarding the forces exerted by the elephant's hitbox, are they the same from the front and the sides, and while turning versus moving straight? For example, in this screenshot from the fourth video (at around 0:30), one elephant fails to reach its waypoint and ends up blocking a huge group behind it. You'd expect the combined force of all those elephants to overcome the resistance of one or two elephants blocking the way. I imagine accumulating forces is complex and could lead to less predictable results. That's why I was wondering whether the side edges of the hitbox could have lower force/resistance, allowing an elephant crossing the path of one coming from the front to be pushed aside. Maybe this is very complex to implement; I'm just throwing the idea out there. Maybe it's simply a matter of improving the pathfinding. Overall, my opinion of this PR is very positive, especially the new infantry and cavalry behavior. I think elephants (or units with the "solid" property) still need some tuning. Since these properties are optional, the PR can be merged as is, but I think fine-tuning them would be valuable to provide good baseline conditions, as we've already seen with infantry/cavalry.
-
A question came to mind while watching this freezing behavior: do elephants also receive that small "stun" when they are pushed? I wonder if that could be what causes some of the elephants to get stuck. An elephant gets pushed constantly and therefore never manages to leave the stunned state, making it look like it has stopped moving altogether.
-
@Atrik, I tested the latest changes you pushed in commit aec6e57f96 The elephant blob looks really good to me. There are still some small bouncing effects, but it seems to be improving in the right direction. As for movement around corners and through narrow paths, the behavior is still failing too often. I've included some videos of the tests I ran: Ele blob test Walking around corners and through narrow path: First test, no micro at all: In this second example, I helped them with some micro to get them to their destination. The results are better, but I still see it failing quite often. And paradoxically, the group without any micro performed better than the group I microed. As for moving through narrow paths, I got similar results to the previous test. The elephants get stuck at the entrance to the narrow path, and after a few attempts, some of them stop moving completely, permanently blocking the other elephants from getting through. It can also be seen that some of them get stuck on each other in an open area, significantly slowing down a group of them well before they reach the narrow area with the houses. In this second attempt, I helped them spread out a bit and enter through different spots, but the result was more or less the same. Something strange also happened with the group at the top. I assume this is a pathfinder issue. For some reason, the elephants at the back of the group decide that the best path is to go around the forest. As a result, one of them runs into another elephant that is heading in the right direction, and the "elephanting" begins ( aka "elefant traffic jam" ) In this last test, I send them back from the base. Look at what happens with the group at the top. One elephant tries to join the "path line", so to speak, and after a couple of bounces, it rebels and decides to stop moving altogether. As a good emperor, I ended up executing it. I'm a bit short on time, so I wrote this rather quickly and haven't been able to go into much more detail. I hope this is still useful for continuing to improve the PR.
-
New tests on the latest iteration. The bouncing elephants bug is now much harder to reproduce. When trying to gather them at the same point, the issue is much less pronounced than before: However, I was able to reproduce it in the following situations: Walking around corners: I think the bouncing effect is triggered when two or more units become blocked by objects or other units of similar strength. You can see in one part of the video that a single elephant gets blocked, but nothing happens because it has enough space to bounce. Later in the video, however, more than one elephant gets blocked from all sides, and that's when the bouncing starts. Yesterday we talked a bit about adding some kind of diminishing return calculation to reduce the bouncing effect as it keeps repeating. This could be a relatively low-cost solution in terms of performance that might address the issue. Moving through narrow paths: This is perhaps the most important issue to address. At some point, they should be able to "agree" on who gets through first. Common sense tells the user to destroy the house first before trying to pass, and it's perfectly valid for a successful attack to depend on the player's ability to move their units through narrow paths or turtle bases. However, it is still noticeable that more than half of the elephants get stuck in a space they should be able to pass through relatively easily: It makes sense that they don't turn as quickly as they do in vanilla and that, as a consequence, their attacks and movement take longer to execute. After all, we're talking about a huge animal. Somewhat slower and, in a way, "clumsy" movement is to be expected. Beyond continuing to tune the elephants' physical values, I think it would be worth considering some degree of overlapping. Not as much as what currently exists in vanilla, but enough to help reduce some of the clumsiness and to emulate a slight "compression" of their bodies when they are packed together. After all, they are organic bodies with some degree of flexibility, not rigid objects like tanks. Could we also try making their hitbox oval rather than square? This might help reduce collisions between them even further. This last comment is outside the scope of this PR, but I think it's worth mentioning: This testing also made me wonder whether it's desirable for elephants to prioritize attacking nearby units over buildings. In the video example, I send the elephants to attack the fortress directly. Then I press H to make them attack freely. The elephants prioritize attacking the units, but the ones in the back can't reach them and end up bouncing around without dealing any damage. Elephants are perhaps the only "hybrid" unit in the game, in the sense that, although they are not classified as siege units, they can still destroy buildings quite effectively. Perhaps we should consider giving them a smaller target acquisition range, so that in situations like this, they choose to attack buildings instead.
-
Turns out it was true they actually existed... I love this work, @Eilat. It looks really good!! The dust blowing around when the helicopter takes off is a great detail. Looking forward to seeing the next updates!
-
Dedicated server
guerringuerrin replied to victorcrimea's topic in Game Development & Technical Discussion
Thanks for all the work on this, @victorcrimea. I'll try to test this on Windows soon. -
@Atrik! I’ve been testing the PR. I haven’t noticed any functional bugs. Everything I’m noticing is related to tweaks for the units values. So I’ll share my impressions of their current behavior. In general, the units feel more “heavy” to me. I find it somewhat appealing, but I think it will all depend on the fine-tuning that’s done. I think some degree of overlapping could also be fine to make unit bumping feel less noticeable. I don’t think civilians and infantry should have such a gradual rotation, at least not when they’re moving individually. I hope I can explain what I mean. I don’t know anything about crowd movement, but I have the feeling that their turns should become wider as the size of the group increases, with this being more of a consequence of them bumping into each other. Maybe civilians could also be allowed to overlap with each other a little more. I’m sharing a few videos showing different situations. Unfortunately, we still can’t test multiplayer, so I did my best to simulate a battle. Woodcutting. Notice the woman on the left who gets stuck and can’t reach her destination, around the end of the video. I’ve never tested this with the vanilla version, so I can’t really compare whether this happens there as well.. Mining brothers: Here I get the feeling that the elephants are trampling the horses. Some horses appear to be standing still while being pushed around, or simply remain stationary, as if they can’t find a path to their targets. The trampling looks interesting, but the horses remain stuck for too long. And the elephants seem to have this infinite pushing loop. I assume you’ve already noticed it. Chopping Wood.mp4
-
"gigabundleUI" LOL
-
I have for you something better than that:
-
Ey, @Grautvornix, this is an awesome feature!
-
That happens to me for (not)reading too fast haha I'll keep an eye on the progress and see how I can contribute. Coincidentally, I'm getting back into studying Blender.
-
Don't forget the second big cat of Sudamérica after the jaguar! (although present in North, Center and South America): The Puma, a.k.a. the Mountain Lion
-
A lot of work here, @Thalatta! I hope you can pull it off. If you have any problems compiling, or if you need help with anything else, we're here.
-
Actually, thats wrong. Because...
-
I don't have time these days to investigate it, but the first thing I would do is follow @Stan` advice and study how it's implemented in the garrison
-
Also read the commit guidelines and you can always check the Wiki. And this is a very user-friendly guide to the basics of Git. The hard data is here: https://git-scm.com/learn
