Jump to content

  • Log In with Google      Sign In   
  • Create Account

Help Deciding On New Language

  • You cannot reply to this topic
7 replies to this topic

#1 blesseddisciple   Members   -  Reputation: 105


Posted 23 July 2016 - 04:20 PM

  Okay, first things first. I am new to the community and am looking to find a new programming language for making simple 2d games, mainly on windows but I would be open to mobile or browser if it was easy enough to get into. I have been programming in BASIC (qbasic and then QB64) for nearly a decade and am fairly efficient at it. I enjoy it, but I am looking to branch out to maybe something with a bit more "shelf life" moving forward. I don't really care much about speed or super powerful programming. Its just a hobby right now.


            Ideally I would like to learn a language that has:


*fairly easy/ simple syntax (preferably better than C++)

*simple ways to draw/print to screen without 50 import declarations or API's or whatever

*easily compiles to executable without jumping through hoops to make a stand-alone game.

*Not overly complicated file I/O commands (mainly for save games and whatnot, in QB64 it would be something like 'OPEN filename FOR INPUT/OUTPUT AS variable')


           Languages I have tried and did not care for:


- C/C++, I understand it is one of the best and most powerful languages, but I do not care for the syntax and don't plan on making a career out of simple game programming anytime soon

- Java, I actually like java quite a bit, but IMO its not very practical for simple game programming due to overly long disorganized feel and particularly strict OOP style.

- Objective C, same reasons as JAVA

- actionscript, I somewhat enjoy actionscript but it still feels a little disorganized to me, looking for something a little cleaner.


           Languages I am interested in but not sure about:


~Python: I like the syntax a lot, it seems pretty clean and versatile. basic graphics seem easy from what ive read. But, ive heard creating exe or stand alone games is pretty complicated, which is a bummer.

~Ruby: ive heard that Ruby is super simple to learn and actually pretty powerful for a high-level language, but I also heard its not very practical for game programming. Also, I wonder about compiling exe, etc.

~Lua: don't know much abut this? any comments?

~Other Basic-derivatives. Newer more developed basic-derived languages might be the answer, but there are a ton and I don't want to spend the next six years sorting through them all. Any help here is appreciated.


Any suggestions are appreciated but please add detail relevant to my information.

Thanks everyone!

Edited by blesseddisciple, 23 July 2016 - 04:28 PM.

#2 Nypyren   Crossbones+   -  Reputation: 10087


Posted 23 July 2016 - 04:50 PM

You might like C#, DarkBASIC, or maybe GameMaker.

Anyway, your best bet is to try each language-of-interest out for a while (a couple weeks or less). Create simple programs to test out each one of your requirements that you listed, and if the language doesn't fit, try the next one. After you've tried them all you'll be able to choose which one you think fits your style the best.

Edited by Nypyren, 23 July 2016 - 05:06 PM.

#3 blesseddisciple   Members   -  Reputation: 105


Posted 23 July 2016 - 06:05 PM

DarkBasic actually looks pretty sweet. Seems to be much more developed than QB64. I will definitely switch over, although I was hoping to learn a non-basic language moving forward. Gamemaker doesn't offer enough mechanical programming for my taste. I will look into C#, thanks

#4 rpiller   Members   -  Reputation: 834


Posted 23 July 2016 - 07:27 PM

Lua is a blast! You can use love2d library they used Lua. Leadwerks engine on steam used Lua as well and it's an easy engine to make 3D games in too. Lua is one of the most embedded scripting languages around and used in a lot of AAA studios for game dev.

#5 Alberth   Members   -  Reputation: 5007


Posted Yesterday, 03:40 AM

Welcome here.


Wow, it has been a long time since I programmed anything in BASIC :)

I think it's a good step you try a different language, expand your horizon.


My path is mostly BASIC, C, assembly language, C++, Python, Java, Lua, and nowadays, just any language.

Let me run along your choices.


- C/C++. Powerful, yep. "best" is more difficult. Both languages live near the "bare metal". If you want the raw CPU power, this is where you have to be. C is very small. C++ is much better for writing applications. Both languages give you performance, in exchange for no limits, and no safety net. If you make an error, it just crashes without any message why or what happened. I think it's good you don't go there now.


- Java. A bit simple language to me, but I came from the big powerful C++ corner there :)

It's a simple language, quite powerful, and it tries to protect you from harming yourself, and gives useful reports on crashes. It likes long boiler-plate code, although a lot of it is more pushed by the community and the "learn Java" books, than by the language itself.


Classes do make a more fragmented code style, but that's general to anything OO-ish. That is however not all bad, this style of programming does have a lot of merit, but it takes time and experience to understand how and where to apply it (and how and where not).

I would say, this is one journey you should make, one day.


- Objective C. Don't know it at all, and as far as I know it's an outsider, as only Apple uses it. Unless you're programming apples, I wouldn't go there.


- C# (mentioned by Nypyren), is close to Java. It's mostly in Windows-country only (although Mono exists too). Never used the language, but it has more bells and whistles, since it's a main language by Microsoft.


- actionscript. Don't know any of it.



If you really want a truly compiled language, I think this is mostly it. (Don't know about Ruby.) Java is already a bit edgy here, as well as C# afaik.

I am not sure why you want a compiled language though. If you just want to have fun programming games, you don't need a compiler. Why is a compiler important to you?




- Python. Definitely a good choice. It's a well designed language, easy to learn, has very sane ideas how to program, with a big community. Documentation is good and readily available. It is a full blown general purpose language. You can write real big things in it. Loads of libraries ("batteries included"), pygame is for writing 2D games. After 10 years, this is still my first choice of language, if there are no special requirements that need to be met.


- Ruby. Never programmed in it, but I read about it, but that was a lot of years ago. I think your estimate is about right, but I might base that on old information.


- Lua. Really really simple language. It's high level, and very minimal, and mostly aimed at embedding in another program (ie scripting) rather than as language to write applications in. Really fast to write code, but you don't get much help beyond that.




Other languages you may want to consider... I miss the Pascal-derived languages in your list. While Pascal fell off my radar before C++, it's bound to exist still. The design of the language was quite neat, although what I consider to be Pascal, is probably totally obsolete by now, as that was 20-25 years ago.


- JavaScript is also a language that I am told is quite nice. It has no relation with the Java language, except the 4 letters in its name. Used a lot in web browsers. Never done anything with it.



As Nypyren said, check the languages you're interested in. Find a tutorial that you like, look for game related libraries, and try it for a while, form an opinion about it.

We can talk all day, but nothing can replace actual experience with a language.

Edited by Alberth, Yesterday, 03:40 AM.

#6 blesseddisciple   Members   -  Reputation: 105


Posted Yesterday, 06:14 AM

Thanks for your reply, Alberth. I appreciate the information you provided. As far as compiled goes, I just want a language that doesn't make it overly complicated to create an executable. Basically, I want to know that if I make a cool game I can save it to a disk on pop it in a different PC 5 years from now and it will run with having to download a bunch of old outdated stuff. I want portability, not for commercial purposes, just more for personal archiving.

#7 Alberth   Members   -  Reputation: 5007


Posted Yesterday, 07:23 AM

Ah, ok. Yeah, I can see the purpose of that :)


I consider executables mostly as "throw away" data, and use the source code as archive.


An executable runs at the platform that you compiled it on. Microsoft takes an effort to keep old stuff running, so it mostly works there (at least it used to, as I am not  a Windows user, I don't know how that evolved to now). I use Linux instead, where I update to a new OS version about every 6 months, where libraries that you use are typically updated as well, and binaries of the previous version just fail to start (note that a Linux system provides pretty much every standard application that you need, and a lot more that you don't need, so it's not as bad as it sounds). Building your own programs from source is the normal thing to do. Having the source around also means you can just fix things, and rebuild, rather than being stuck with an old executable that you lost the source of.


Even at source level, you're not completely done though. Different languages have different ideas about backwards compatibility. Older C/C++ source code will continue to work, Java source will also continue to work (Java is extremely conservative, even to the point that it sacrifices some functionality of its own new features to stay compatible).

Python 2 lasted about 10 years, where Python 3 is now the newer version that everybody migrates to.


I don't know about the other languages.



Obviously, if you use a language, you read about it, which means you'll know that new versions are coming out, and you'll know what new features it brings. Generally they also state whether it's compatible with an older version of the language (at source level), so you know whether your source compiles on the new version.

#8 sirpalee   Members   -  Reputation: 386


Posted Yesterday, 11:54 PM

Rust? It's the cool toy around these days, powerful language, compiles fast and safe code. There are some nice collections of libraries, which help starting from zero
(like piston).

Downside, you have to deal with complex things, like ownership, borrowing etc...

shaken, not stirred