Age of Empires II had a creative map editor, where you could "program" via triggers and effects. It wasn't as in depth as the blizzard games which you could write code, but was easier to use. You could make a trigger (ie. units in this area, time passed, number of units on the field, build a building, etc) then effect (ie spawn unit, move unit, kill something, etc). Which was used in custom maps to do all sorts of fun games. Or like here you can make a nand gate by moving units around.
The latest Definitive Edition of the game actually allows writing code using Ensemble Studios' original scripting language, XS. There are some great docs on it here: https://ugc.aoe2.rocks/general/xs/
The scripting functionalities, such as built-in functions, are still getting expanded with most major updates.
There is also a python-based tool for creating and editing scenarios and triggers via python scripts called AoE2ScenarioParser - and a lot of people are using it as well!
I used to make those. There was a lot of creative stuff people discovered.
For example, the game's terrain was baked at launch, so you couldn't turn land into water. But someone noticed that bridges seemed to spawn water textures under them (a cosmetic detail), and if you created a Bridge1 object and deleted it in the same trigger, it would vanish too quickly for the player to see, creating the appearance that water had appeared out of nowhere.
Someone used it to make an "ice-breaker" ship, which would turn ice to water (I think this required dozens of triggers for each point on the ice.) Some of these things had thousands of triggers, which the editor absolutely wasn't designed for. (It had no copy+paste function, and the window of viewable triggers was tiny.)
Fun times.