I would say it depends on what type of real-time combat you are going for.
For games like Age Of The Empires, they likely use bounding boxes and do simple AABB checks to see if they are within range, or use range and angle calculations like MagicLord said. I’m not sure if using the physics engine would be faster/slower, since you’d need to do AABB checks whenever your units got close anyway. You’d constantly be needing to iterate over all your units, which then it may be faster letting the physics engine do that for you.
If you are going for something akin to Street Figher, then I’d suggest rethinking how you plan on doing it. I highly doubt there is any way to have 70 characters on screen with that kind of system. For that kind of game, you need to activate/deactivate collision boxes around and then use the physics system to tell whether a attack landed. Making just two characters in this type of game is complicated, so around 70 would be very hard.
For games like the Zelda series, I would suggest using bounding boxes for your characters, and then bounding boxes for your weapons. I think there’s a few Godot tutorials for this type of combat system.
For games like Nidhog (the game with the swords, I think that’s what it’s called), you’d almost certainly have to use the physics system since the game revolves around that kind of gameplay. You would need to make a collision shape around your player, and then another around your weapon(s). That said, you’ll likely struggle having around 70 characters on screen moving around and attacking each other with a system like that.
Those are just some examples. Without knowing what type of combat you are going for, I’d suggest reading up on how combat systems similar to the one(s) you are wanting to make are setup. There’s plenty of Unity3D and GameMaker tutorials and practically every style of game out there, and it shouldn’t (in theory) be too hard to translate the basic coding concepts from one engine to another.
Regardless, I would say chose whichever you want to do, and not worry too much about it. If performance becomes an issue, you can always refactor your code to use a more performance system. No matter which system you use, you’ll learn more about what you need/want, and can devise a better system when you refactor (if you need to refactor)