I recently purchased a game called “Gladiabots” on Steam, apperently it came out four or five days ago. Their Websites elevator pitch is:
AI COMBAT ARENA
Assemble your robot squad, construct their AI and send them in the battle arena to see your strategy play out.
Iterate, improve and repeat until you outsmart all your opponents and friends online.
Iterate, improve and repeat until you outsmart all your opponents and friends online.
I was surprise at how fun it is. You don’t have to write any actual code, but drag and drop different variables and create if/else statements from the library. There’s a lot of debugging you’ll do, but none or syntax errors. It’s an interesting way to practice your logical skills. The design of the game does match with the learning method of deliberate practice:
You play quick rounds which you can fast forward into lasting a few seconds where the AI you designed competes with another AI (either a built in campaign, two AI’s you built to compete each other, or multiplayer). You immediately go back and improve the AI design after immediate feedback, and the redesign is really quick since you don’t have to deal with syntax.
Deliberate practice requires you to repeat an activity that has been broken down into simple component parts, get immediate feedback, and retry immediately after you’ve committed an error. That is exactly what this game does with it’s quick battles that require you to go back and redesign your AI again and again.
The fact that it doesn’t have real code is a benefit that has it’s inconvenience.
Positive: A) You’re pushing yourself to design an algorithm, and can do it very quickly. B) You’re constantly debugging, but these aren’t syntax error, which can be hard to catch with regular coding and take a long time to rewrite.
Negative: You aren’t playing around with real code, but having real code wouldn’t give you the benefit mentioned above.
A similar game that has real code is Screeps, but this is more of a long-term game and you don’t get to have as many quick battles. Playing both games seems to have the benefit of developing that tacit skill by hammering at programming problems from different angles, honing “tacit (short-term) and strategy (long-term)” if you will.
Mudhack is someone of a merger of the two concepts above, while being text base only, you run quick problems trying to hack either NPC or other players while coding defenses from being hacked. Much of the code of this game generated by the players is intended to be nonsense to confuse you, so I wouldn’t recommended it unless you have any programming experience under the belt.
The benefits of these is that you can repeat problems again and again until you build a better tacit understanding. To add websites with actual programming problems like codewars.com and their katas, which are similar to the problems chess players solve, and studies show are some of the most effective ways at developing skills at the game. And finally, it’s reading actual books and solving real-world problems, which are a must. These three practices I believe match best the routine chess players go through to develop their skills, which seems to me to be a decent foundation for deliberate practice.