Author Topic: Looking for a language for minimum effort/maximum payoff.  (Read 1003 times)

Active Stormer

  • Newcomer
  • Posts: 1
  • Karma: +0/-0
    • View Profile
Looking for a language for minimum effort/maximum payoff.
« on: March 17, 2021, 06:56:58 AM »
So, I'm not a technical person so my productivity time regarding coding is limited to 2-3 hours per day. If I do more, I get exhausted and things get bad.
I'm currently learning C++ but I'm wondering if I shouldn't be learning some other language.
I suddenly remembered Thomas Biskop mentioning switching from C to Java massively increasing his productivity. So, yeah, I wouldn't like to be stuck with something that is holding me back, especially that I can't afford to waste time.

Like what language would be good for developing a commercial roguelike with complex combat mechanics with least time/effort? Like it must be time-effective but can't be too limiting.

AgingMinotaur

  • Rogueliker
  • ***
  • Posts: 802
  • Karma: +2/-0
  • Original Discriminating Buffalo Man
    • View Profile
    • Land of Strangers
Re: Looking for a language for minimum effort/maximum payoff.
« Reply #1 on: March 17, 2021, 09:15:29 AM »
There's no final answer to the question "which language should I learn?" but I'll offer you my two cents anyway. If development speed is of the essence, you may be better off trying a scripting language rather than C. I heard good things about Lua, but use Python for my own project, and have been happy with that. It has stuff like memory handling built-in, so you can pretty much get straight to business. On the down side, Python is not good at heavy lifting, but it's sufficient for a typical, turn-based Roguelike. If graphics rendering becomes a bottleneck, it's usually because the programmer is doing something wrong. Bits of code I have had to optimize include world generation (although a few seconds of load time when the game starts isn't a huge catastrophe) and AI routines (when you have hundreds of actors looping over detailed calculations). For graphics rendering and other handy tools, it's worth checking out Pygame or libtcod (which is tailored to Roguelikes in particular).

Another option for you might be to consider using a full-fledged game engine. The most popular one is arguably Unity, although I like Godot myself. It's open source, in active development, and uses a scripting language quite similar to Python. I only tried it briefly, but it was quick to pick up (I had a playable framework for a Pooyan clone after a few hours), and it seemed versatile enough for a variety of projects.

As always,
Minotauros
This matir, as laborintus, Dedalus hous, hath many halkes and hurnes ... wyndynges and wrynkelynges.

ekolis

  • 7DRL Reviewer
  • Rogueliker
  • *
  • Posts: 186
  • Karma: +0/-0
  • get ye dennis
    • View Profile
    • Ed's home page
    • Email
Re: Looking for a language for minimum effort/maximum payoff.
« Reply #2 on: March 21, 2021, 06:34:34 PM »
Maybe I'm biased, but I would recommend C#. It's similar to C++ in terms of syntax, but you don't have to worry about memory management and pointers; instead, there's a garbage collector which automatically deletes unused objects. There are a number of game engines out there which you can use with C#, such as Unity and Godot. There's also some functional programming features such as LINQ which can save you some time, if you're into that (if you like arrow functions in JavaScript, C# has something similar which I think JavaScript borrowed the idea from). The main downside of C# is that it is still somewhat tied to Windows, depending on which UI framework you want to use. Unity should be able to run on just about anything, but if you want to use legacy stuff like Windows Forms then that will only run on Windows.
The Ed draws near! What dost thou deaux?

>EAT SANDVICH

mekaerwin

  • Newcomer
  • Posts: 15
  • Karma: +1/-0
    • View Profile
    • Email
Re: Looking for a language for minimum effort/maximum payoff.
« Reply #3 on: March 31, 2021, 06:37:34 AM »
I'd say I highly recommend using any language that does garbage collection and other things like ekolis suggested. There are just too many messes you'll make yourself without having to deal with the additional overhead. I also second Unity as long as you are comfortable with component based architecture and I was surprised that I actually liked going from a loosely typed language to one that is strongly typed. It simplifies a lot of things and helps a lot with avoiding errors. I just don't see a lot of gain from the having things loosely typed. I'm sure there are well thought out arguments to the contrary though.

If you want to really simplify it and don't mind paying for an engine, GameMaker Studio can be pretty effective for 2d games (I wouldn't bother with 3d even though I've seen people push it). They've added structs recently so you can do a bit more with it than you used to. The only problem there is that you are learning a proprietary language that can't be used elsewhere, but I found it similar enough to Java that the transition was very quick (coming from Java, not sure how well the other way would be). When I prototype I like to use it, but I find that C# and visual studio are much more robust.