A rougelike dungeon crawler. It allows me to kick the tires on most new languages that I want to try out. In order to get going with it I need to figure out:
- What can I use to display? Is it a native app interface, TUI, web based display?
- What do the collections look like in the standard lib and what operations can I do on them?
- How good is the multithreading/multiprocessing?
- What paradigm is the language in? (OOP, FP, procedureal, etc)
- What developer tooling exists for the language? Is there an LSP available if I want to use emacs/vim/vscode? Is there a plugin for IntelliJ? What's the debugger situation look like, or am I going to have to use print debugging?
- How does project/package management work with the language?
- What is the echo system like for the language
All of that is in service to building out the first bits of the game.
I was surprised this isn't the most popular answer. IMO programming a complicated game such as a roguelike can get you a very well-rounded knowledge of a language.
But what makes RLs absolutely ideal for learning a language is that you will get your first version running with an extremely minimal amount of code (and no other resources), and you build up from there. It's very strongly motivating.
- What can I use to display? Is it a native app interface, TUI, web based display?
- What do the collections look like in the standard lib and what operations can I do on them?
- How good is the multithreading/multiprocessing?
- What paradigm is the language in? (OOP, FP, procedureal, etc)
- What developer tooling exists for the language? Is there an LSP available if I want to use emacs/vim/vscode? Is there a plugin for IntelliJ? What's the debugger situation look like, or am I going to have to use print debugging?
- How does project/package management work with the language?
- What is the echo system like for the language
All of that is in service to building out the first bits of the game.
(also I am a backend dev)