Games of Coding – A curated list of games that teach you a programming language
github.comI see you already have a pull request for TIS-100. That's the first that came to mind.
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...
Can't recomend enough Human Resource Machine! by World of Goo creator http://2dboy.com/ it's Android/iOS game teaching some basic programing concepts. Fun and good looking.
It really sucks that this game doesn't have the ability to make custom levels. I thought this game was really cute and well made.
A sandbox mode would have been great fun.
Thank you for the recommendation, looks great indeed. Can't wait to try with my kids :-)
Also on Windows, macOS and Wii U.
Linux too.
A similar post on Halite.io listing some interesting games:
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
I'm not sure if such games can help to learn programming. For example, Robocode is very dynamics-based and requires knowledge of control theory (which involves partial differential equations) and decision making under uncertainty. I'm doing software development for almost 10 years and yet such games are too hard for me. These games can help you to learn "AI" but not programming. It's simpler to create your own Robocode game from scratch than to master creating bots for it.
I don't know about that one but I've recently become pretty active the in the Screeps community (https://screeps.com/) and many of the players are first-time JavaScript programmers. In fact, one of the players in the top 20 for the game told me he had only been programming for ~40 hours before starting the game.
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.
Looks interesting. At least it's not competition-based and more sandbox-like. In global competition you are required to use state of the art techniques, and there's no other ways to just having fun.
Maybe try a Fruitbot? Scribd originally hosted the competition years ago, but it's on its own site now: http://fruitbots.org
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.
Robocode is very interesting if you want to learn AI programming in Java.
But for learning the Java programming language itself? Hmm definitely not.
Agree with you, will put a more appropriated name on the list.
I wasn't sure either, so I was looking for learning a new programming language when I found Robocode and General IO. I'll look forward to get the right name for the list.
While it isn't technically a game about programming, I'd add an honorable mention for Factorio - a game that, at its core, is about software engineering. In it, you build an ever-growing and ever-more-complex factory. You can choose to throw something together quickly because you need steel NOW (and pay for the technical debt later) or take your time to orchestrate the perfect layout only to discover that's not what you wanted in the first place.
Great game, highly recommended for anyone in software.
Does it count if the games use languages or systems that are unavailable outside of the game? (Shenzhen I/O for instance)
I don't think the corewars assembly is available outside of the game.
Corewars even write in their Page: "Special assembly".
Surprised Code Combat [1] isn't on the list. I think it's also completely free/open source [2].
I just picked up WarioWare DIY for my Nintendo (3)DS. It's got a pretty rudimentary rules engine to script the microgames, but some of the tricks you can pull using some clever triggers and stage setup reminded me of the best programming puzzles.
In my mind, it's the closest we'll get to a mainstream Piet programming environment :)
There used to be this game called Colobot, pretty fun:
https://en.wikipedia.org/wiki/Colobot
Now it's open source: https://github.com/colobot/colobot
I find that list to be missing Elevator Saga http://play.elevatorsaga.com/
I actually stopped playing games when I learnt how to code... coding is more fun!
Do not forget codingame.com.
I had never heard of codingame.com. This looks really interesting. Thanks for mentioning!
Sadly, they have zero marketing in the USA/HN sector. But their platform is terrific, better than anything else that's already out there.
Hi, please do a pull request with the game information.
The problem with games to teach coding is coding is not a game. Almost 95% of the time its exactly opposite to games. Uninteresting, boring and a test for grit.
I find that writing mods for games is much more interesting. It's more like "real" programming in the sense that you solve real problems with real constrains and you get a rewarding result. I feel like OP should include games with mod systems, such as Oolite (Javascript) or Battle for Wesnoth (Lua).
I think the lesson you learn from games teaching you programming within the game is that the entire point of coding is to create something interesting. Even if a project can turn into a slog halfway through you still know that at the end you will have something that hopefully you are proud of creating.
I guess it depends on how you approach problems. If most of the time you find it boring, maybe you're not really interested in whatever you're doing (working for a wrong company maybe?)...
I was hoping for a list of games which teach programming. These are more games or competitions that use programming (which is still pretty fun, but different).
If this is mostly looking for "real-world languages", I'd recommend Ruby Warrior (https://www.bloc.io/ruby-warrior/#/)
For in-game-only languages, pretty much everything from Zachtronics.
I have a list I have been keeping here. https://github.com/dakaraphi/development-resources/blob/mast...
Screeps - an MMO where you program resource-gatherers with Javascript or other languages. I haven't actually played it, but it sounds like a cool idea.
What, no Else Heart.Break()?
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.
When I get a chance, I'll write up a PR for Crobots:
By far the most interesting game in this genre (somewhat broadly interpreted) is Robozzle. Some of the puzzles made by contributors there are just pure genius.
Popping in here to mention Spacechem as one of the best.
The Corewars section is duplicated.
robocode taught me javascript way back in elementary school!
sad that stockfighter is not on this list anymore.
If it's still an active project, please do a pull request with the information.
Nice