Control systems are very important in the game (the high-level is almost as much a logistics game as it is a tactics game), but you don't get to think about those until you can successfully walk your units around and complete basic tasks.
It's fun and easy to download a Randombot to modify, even if you don't upload it to the public competition. It might just be a good place to try a new language, like Lua or Ruby.
But for learning the Java programming language itself? Hmm definitely not.
Does it make sense to break down the list by categories? For example:
- New to programming: Lightbot, Spritebox
- Reverse engineering: https://microcorruption.com, many of the Zachtronics games
And so on...
Also, here are a couple of other lists of games I've been going through:
- http://steamcommunity.com/app/375820/discussions/0/481115363...
- https://www.rockpapershotgun.com/2015/11/09/best-programming...
https://halite.io/ http://vindinium.org/ http://theaigames.com/ http://www.rpscontest.com/ https://www.codingame.com/home https://leekwars.com/ http://russianaicup.ru/ http://dev.generals.io/
Link to the post: http://forums.halite.io/t/other-ai-contests/925
Great game, highly recommended for anyone in software.
In my mind, it's the closest we'll get to a mainstream Piet programming environment :)
https://en.wikipedia.org/wiki/Colobot
Now it's open source: https://github.com/colobot/colobot
For in-game-only languages, pretty much everything from Zachtronics.
It's a game set in a world where you can hack pretty much any object and fiddle with its source code. Yes, just as weird as it sounds. Want to get into a locked room? You can either hack a key to try all possible combinations at once, so it'll open any door. Or it might be easier to just hack a door somewhere else to point at the locked room...
Also, it has a great soundtrack.