The usual consensus seems to be to get started with python and something like
libtcod edit:
better libtcod link. You probably really do want to try prototyping something basic with a library in place as your first pass, even if you plan on scrapping it and writing it from scratch.
You may want to check out
r/roguelikedev. It's not massively high traffic but it seems to have a really good signal to noise ratio as far as I've seen, and it also seems fairly friendly (much more so than tavern). There is a fair amount of completely impractical "I want to make a roguelike and I don't know how to program" as well as lapsed projects, but also a fair amount of actual roguelike devs posting, and the cogmind dev in particular is very active in community building. Questions like yours do come up, and
here's a semi-recent thread with some interesting discussion about the idea of starting from scratch.
Vajrapani wrote:from looking at crawl's github page it seems that most of it is coded in C++. Would this be the ideal language to make a RL in with minimal fuss, or are there better alternatives out there nowadays?
The fact that crawl is done in C++ does not make it a good idea, at all. What I would say is: if you have a reasonable amount of real-world development experience with C++ and have some experience-based idea of how to plan out a small-to-medium-sized project in C++ from scratch, then it might be a good language. If you want a learning project in C++ to build up your skills, that's also reasonable (though it handicaps the project). Otherwise, I would strongly recommend against using C++ for this situation. In my opinion it's too easy to accidentally make terrible, moderately bad, or just weird design choices that will become entrenched and lead to pain later, if the project goes anywhere. Also, the path to getting things to happen (and to positive feedback/reward cycle) in a higher level language is much simpler. It's not that you can't make bad decision in any language, but C++ gives you a lot of scope for it.
Crawl is in C++ for basically one reason: that's what Linley chose. Granted, there weren't so many other options back then, and I suspect our online infrastructure would be impractical in a language like python. But,
Sequell: linley henzell[6/7]: Henzell discussing his programming ability: "You see, I gave up on Borland's [C++] manual (which is very good, I'm just lazy) when it started talking about pointers [....] After pointers came structs, enums, pragmas, classes, macros, and a whole lot of other stuff which still means nothing to me."