Sprocket League
Sprocket league is what would probably today be called an “auto-battler”, and sell like hotcakes on the indie games section of Steam, were it in any way polished or even finished. It is probably the largest project I ever care to make in Python, but some of my problems were, in retrospect, self-inflicted.
Each robot combatant is comprised of parts. The Chassis and Controller are the required frame and brain of the robot. Movers allow mobility. A Generator provides power for other components. Weapons can be used to make attacks when in range and having enough ammo.
Parts and materials are defined in json files. The material a part is made of affects its stats, as well as cost, but I didn’t get around to implementing an economy.