Opinion gml was my first programming language, now i hate all other languages (rant)

Seknight

Member
Just a quick 4 am rant. Don't take it too seriously

I first started using gamemaker studio 1.4 when i was 15. I am now 19 and i have met a couple of other languages (python, Java, C#, javascript), and after using them all for a while i can only draw one conclusion

i hate (learning) all programming languages
especially python, i have a deep hatred for python.

When learning all these languages i kept comparing them to gamemaker, and got annoyed when they did not live up to my expectations.
See i'm not a fan of rules. i don't like having to put semicolons after every statement. i don't like excessive indentation, or using a new line and curly brackets when my if statement has only one action.
I like to break all rules of proper coding and instead use whatever format i find readable in that situation. And i especially like annoying my friend with how gamemaker allows this.

want to annoy someone who hates messy code? tell them this works in gamemaker

GML:
if x=0 x=1
But my biggest point of criticism is the documentation
oh the documentation
I have never seen such a beautiful docs like in gamemaker
I'm guessing it is because it is the only docs on the planet for gml (which is also an upside), but you will not believe my frustration when the python documentation my university provides does not even mention the return type. There simply is no other documentation that can compete with how detailed gamemaker is, not as far as i can tell anyway. I also noticed it's much easier to look up whatever i need. did you know clicking the middle mouse button on a function brings you directly to the manual page for it?

bottom-line: i appreciate gamemaker, to say the least...

so what do you guys think?
am i maybe just too lazy to properly learn how to code?
 

kraifpatrik

Member
All I can tell you is that other programmers would hate to work with you. If you want to ever program in a team/company, where it is common that everyone has to follow the same coding style, you should learn to code nicely. Regarding the docs, I don't agree that GM has the prettiest, but that's just a matter of taste.
 

Ihato

Member
i hate (learning) all programming languages
especially python, i have a deep hatred for python
I was like that too, when I was 19, because meaningful white space was stupid to me.
Didn't even try it, just irrationally decided I hate it. It was pretty silly.
 

TsukaYuriko

☄️
Forum Staff
Moderator
That's the export option that compiles GML to a different language (such as C++) and then directly to native machine code for your target platform, instead of into an embedded virtual machine. The converted version of your code therefore also has to follow the conventions of that language, not just GML, and such discrepancies may not be automatically fixed during conversion for all such occurrences.

Overall, while it's convenient to be able to program however you want, when you take it to the extremes, it makes it a nightmare for others to read your code or work with you. As long as you're self-sufficient and never require help from others, and don't intend to ever work with others, that's fine... otherwise, you're priming yourself for becoming a general nuisance further down the road and are essentially ensuring you won't get a job in this field (or at least not keep one for a long time) and will find it difficult to receive help on support forums such as the GMC. While I don't know whether that's your long term goal, I can state that, based on my personal experience, that's exactly what would happen.

I'd advise against making this your mentality and instead coming to terms with the fact that software development necessitates following at least a fundamental amount of rules and conventions, to make both the lives of yourself and the ones that may need to work with you easier in the long run.
 

GMWolf

aka fel666
especially python, i have a deep hatred for python.
oh yeah python is the worst. We have entire systems built out of python at work and its slow, error prone and... python. Luckily i'm on the game side of things so its c++ all the way.

(python, Java, C#, javascript)
Your problem is dealing with meh languages.
C# is probably the nicest in this list but its still an OO mess.

You should try C or C++. Its much more immediate than c# (no need for classes everywhere)
GML is inspired by C and javascript so you should have no issues picking it up.
But save yourself some trouble and dont use Microsofts ecosystem>
Learn CMake and use clang. You will get better error messages and a much simpler build system.
I started with MSBuild (microsofts build system) and always hated how you managed linking libraries. Well it turns out that its just because MSBuild is huge, complex, and designed to be used with a GUI.
With Cmake its all made much simpler (and cross platform :))

I have never seen such a beautiful docs like in gamemaker
GM docs are for sure incredible. Not only do they teach you gml, they teach you gamedev altogether.
I think the Rust docs are actually just as good. They are really well written. (Rust is one of those langyuages you may like to learn too, just the learning curve is very steep to begin with).
cppreference is also a great resource.
 

Roa

Member
I was like that too, when I was 19, because meaningful white space was stupid to me.
Didn't even try it, just irrationally decided I hate it. It was pretty silly.
No.... hating python is a pretty valid thing...

It's an awful language
Though I don't think he has the experience to fully grasp why.


[edit]


oh yeah python is the worst. We have entire systems built out of python at work and its slow, error prone and... python. Luckily i'm on the game side of things so its c++ all the way.
oh yeah.. slow, error prone, ugly, bloated, needs full life support to even launch, inconsistent lib support, tuples4life, and don't even think about updates or you might open the flood gates to hell.
"BuT iTs sO EZ... " if you consider no actual development planning and just want something simple working in 20 minutes while your CPU bangs it's head again the bricks. :bash:

I laughed my ass off when I found js in chromium engine can do redundant task 4 times faster than python XD. I sit here noticing the surge in python learning and use, and think, almost having and existential crisis to myself "python is someone's first language".

Your problem is dealing with meh languages.
C# is probably the nicest in this list but its still an OO mess.
Yeah, C# and js are nice if you know what you are going for. The easiest to learn practical languages. JS is so much like GML, its unreal sometimes. And C# is powerful and flexible, very well supported, but if you don't plan well, it can definitely become a mess.
 
Last edited:

Seknight

Member
You should try C or C++. Its much more immediate than c# (no need for classes everywhere)
GML is inspired by C and javascript so you should have no issues picking it up.
But save yourself some trouble and dont use Microsofts ecosystem>
Learn CMake and use clang. You will get better error messages and a much simpler build system.
I started with MSBuild (microsofts build system) and always hated how you managed linking libraries. Well it turns out that its just because MSBuild is huge, complex, and designed to be used with a GUI.
With Cmake its all made much simpler (and cross platform :))
thanks for the suggestions! I might check them out but right now i don't have much reason to learn new programming languages. I started a study AI so I'm going to learn AI programming languages (fifth generation).

one problem:
we are going to learn PYTHON first :bash:
 

Ihato

Member
Sorry to burst your bubble now guys. Python is great. Very useful stuff like youtube-dl, ranger, Gentoo's portage are all written in Python and are not slow at all. I wrote a ton of web scrapers using BS4 and scripts that employ a REST-ful API because that is easy with Python. What is most hilarious is that OP wants to do AI and doesn't realize Python is the #1 language used in AI and stuff likeTensorFlow and NumPy are written in Python.
 

var

Member
Most languages are pretty good for what they're made for, and bad if you're not used to them or you try to use them for the wrong thing. Python is really good for quick scripts, and doing data science. It has very strict style guidelines, so it's easy to collaborate and work as a team on python code. However, it's fairly slow compared to many other popular languages, so it's not a good choice if you want high performance and there aren't any good packages implementing the crucial parts in C/C++. C/C++ are good for when you need to micro-optimize your code for absolute maximum performance, and if you put in the work to make your code portable then it can run on whatever you want it to. However, it takes effort on your part to make it portable, and it's very easy to shoot yourself in the foot in so many different ways. Java has particularly strong static typing, and all memory management is fully automatic, so many bugs that could be hard to isolate in other languages will throw an obvious syntax/compiler error right out of the gate. However, the language is fairly verbose, so it's difficult to quickly hack together a small script to accomplish tome easy task. (side note: Java's documentation is by far the best that I have ever seen, even including GML.)

If you're working on your own, then you do you and I won't judge you for it. But if you work on a team or even ask someone for help with your code, it is extremely important to follow strict standards for formatting and readability. I agree that it's fun to to hacky stuff that the language allows you to do. To be completely honest, one of my favorite single lines of code ever is this C code:
C:
while(*s++ = *t++);
It's such a cool way to copy a string, and once you know it, it's easy to execute. However, it's horrible to encounter something like that in someone else's code, and I would never actually use that type of code in anything important. For another example, let's look at the code you gave:
GML:
if x=0 x=1
After looking at it for 30 seconds, I think I know what it does, but I'm still not sure. If I had to guess, based on what I know of GML, it sets x to 1 if it currently equals 0. However, it goes against standards set in practically every single other popular language out there. Every other language has some sort of delimiter between the condition it's testing and the statement it conditionally executes. Python requires a colon and a newline, and C-style languages require a closing parentheses. This makes it obvious what code is always executed, and what code is only sometimes executed. Additionally, the expression x=0 is ambiguous. From what I know of GML, it simply returns a boolean, and doesn't actually set the value. However, all other popular languages are consistent in how they work. A single equals sign will always set the variable to the value on the right, regardless of the context. Safe languages like Java will even throw an error if you accidentally try to use a single equals in the condition of an if-statement. Putting in a second equals sign costs you an extra 0.2 seconds, and saves multiple seconds or even multiple minutes of the time of people reading the code.

GML is very different from most other languages. If you learn one side before the other, it's difficult to make the paradigm transition, which is why I don't like recommending GML as a first language if you want to get into other languages later. If you're committed to going into any professional career that requires coding, I would recommend learning an easy language like Python or Java, and approaching it as if it's your first language. It will be difficult to adjust from GML to what people in the real world use, but once you have significant experience you will see the many ways that GML is inconsistent with other languages, and how it teaches bad habits. It's an easy language to learn, but is a more difficult route to learning how to program in the real world.

You should try C or C++. Its much more immediate than c# (no need for classes everywhere)
C/C++ are not good languages for beginners. The manual memory management is valuable to know about and useful in some situations, but adds another layer of complexity to something that's already complex to learn. They're also falling out of use for general purpose programming these days due to several factors, most notably the availability of powerful computers—it's usually better to buy a computer that's twice as fast rather than spend more time coding something that that runs twice as fast. They're good languages to know, but certainly not required, and there's better languages to start with.

I sit here noticing the surge in python learning and use, and think, almost having and existential crisis to myself "python is someone's first language".
Python is a good language for beginners in almost all regards. It tends to use more english and less symbols, so you have fewer things to memorize when you're starting off. It allows but doesn't force OOP, so you can start off ignoring classes entirely, and then learning about them later on when you're ready. You don't have to deal with primitive data types at all. The strict style guidelines force you to follow good habits early on, and make it easier for mentors to look at and understand beginners' code. It's also overall a good language for small personal projects and fast prototyping, which is most of what a beginner is going to want to do when they're starting. Once you have a good handle on python, most of the same paradigms exist in C/C++/C#/Java/JavaScript, so it's easier to make the switch and learn the few new concepts you need to learn (memory management, strong/static typing, different types of primitives). The one part of python that is universally bad is the garbage that almost everyone tries to pass off as documentation; TensorFlow is the only decent documentation I have ever seen for a python project. It's also not the fasted language by any means, but it's fast enough for most things, and most other things have python packages with a backend written in C or some other high-performance language.

Source: been programming for over a decade in mostly Java, Python, and JavaScript, but also including C, C++, C#, Ruby, Bash, PHP, SQL, Swift, Perl, BASIC, Matlab, GML, and probably several others I'm forgetting. Fields range from academic ML research and pure algorithm development to modern webapps, desktop apps, and games.
 
Last edited:

GMWolf

aka fel666
Python is really good for quick scripts, and doing data science.
I'd argue the libraries python has available are good for data science. Python itself, not so much.
as for quick scripting i'm quite partial to lua myself. Unofrtunately it doesnt have as good support from the community. Its a shame since its such a simple, yet powerful language.
t has very strict style guidelines, so it's easy to collaborate and work as a team on python code.
I have to strongly disagree. The lack of strong typing and extensive use of strings over enums makes it very hard to understand large existing python codebases.
However, it takes effort on your part to make it portable
C/C++ is actually very portable. it compiles to almost anything, including embedded systems! And there is a version of the standard library available for almost any platform!
Where things are less portable is in os specific code, like window creation etc. Although thats the case everywhere.
Java may have some cross platform window management library in its standard library but thats easily remedied in c++ by a number of great opensource corss platform libraries (such as glfw, or sdl2).
C/C++ are not good languages for beginners.
C++ sure. C, why not? its a simple language, you can get started really easily, and it teaches the fundamentals of memory management.
The manual memory management is valuable to know about and useful in some situations, but adds another layer of complexity to something that's already complex to learn.
You mean like how in GML you have to manage memory with data structures (manual create + destroy)?
In c++ 17 you even get smart pointer, stick to those and you dont have any manual memory management to do! (I make it a rule to not use new/delete. Always smart pointers, or malloc for low level systems such as allocators)
t's usually better to buy a computer that's twice as fast rather than spend more time coding something that that runs twice as fast. They're good languages to know, but certainly not required, and there's better languages to start with.
Id wager i can write code that's more than ten as fast in c/c++ than python, and at least twice as fast than java (assuming non trivial workload that isnt just a benchmark for jit compilers)
there's better languages to start with.
Op says he already learnt a bunch of languages. and disliked learning them. They all have something in common: they are all very high level.
I think learning something a little simpler like C can be refreshing.
It also opens new ways of programming that can be very enjoyable in their own right. OO isn't everything.
If you want to do Data Oriented Design, for instance, you don't have many other options that C/C++ or Rust.
 

var

Member
I'd argue the libraries python has available are good for data science. Python itself, not so much.
as for quick scripting i'm quite partial to lua myself. Unofrtunately it doesnt have as good support from the community. Its a shame since its such a simple, yet powerful language.

I have to strongly disagree. The lack of strong typing and extensive use of strings over enums makes it very hard to understand large existing python codebases.
Fair points. Personally I'd argue that python's packages are part of the language, but I do agree that the basic syntax and features aren't as good for data science as, e.g., matlab. There's a bunch of languages that I feel are better than the popular ones, but are less versatile and have fewer online resources. The other examples I can think of are TypeScript vs. JavaScript and Rust vs. C++.
C/C++ is actually very portable. it compiles to almost anything, including embedded systems! And there is a version of the standard library available for almost any platform!
Where things are less portable is in os specific code, like window creation etc. Although thats the case everywhere.
Java may have some cross platform window management library in its standard library but thats easily remedied in c++ by a number of great opensource corss platform libraries (such as glfw, or sdl2).
Sorry, maybe I wasn't clear enough. That's the exact point that I was trying to make. It can be portable, but it usually takes more work to make it portable. A Java program needs a JRE installed to be able to run, but once it has a JRE it will be nearly guaranteed to work fine. A C++ program will run on anything, but you have to go out of your way to make it portable and compile it for the exact target platform you want. Java is portable out of the box. C++ is not.
C++ sure. C, why not? its a simple language, you can get started really easily, and it teaches the fundamentals of memory management.
You mean like how in GML you have to manage memory with data structures (manual create + destroy)?
In c++ 17 you even get smart pointer, stick to those and you dont have any manual memory management to do! (I make it a rule to not use new/delete. Always smart pointers, or malloc for low level systems such as allocators)
As I said in my last post, both C++ and C have features that just add complexity to the already complex learning process, and they're becoming less relevant these days for the majority of programmers. Sure, smart pointers make is a bit easier. However, languages like Java and Python don't need any pointers or manual memory management of any sort. Garbage collectors simply provide one fewer thing to worry about when learning programming from scratch or learning new programming paradigms from scratch as OP is trying to do here.

Id wager i can write code that's more than ten as fast in c/c++ than python, and at least twice as fast than java (assuming non trivial workload that isnt just a benchmark for jit compilers)
good for you very cool & impressive

My point that you seem to have missed was that these days, performance matters far less than is used to. Pure python without even any C/C++ backend is probably performant enough for the majority of programs being created nowadays.

Overall, C/C++ are still very useful for many situations. They're frequently the best choice for some situations. However, there are a host of factors that make them less useful as a beginner's language.
Op says he already learnt a bunch of languages. and disliked learning them. They all have something in common: they are all very high level.
I think learning something a little simpler like C can be refreshing.
It also opens new ways of programming that can be very enjoyable in their own right. OO isn't everything.
If you want to do Data Oriented Design, for instance, you don't have many other options that C/C++ or Rust.
OP literally told us why he doesn't like learning new languages: he doesn't like strict syntax rules, and he doesn't like the lack of quality documentation. C and C++ aren't any better than Java and Python in those regards, and honestly JavaScript is better than any of them if he's looking for both loose syntax and good documentation. If he's already tried and disliked even JavaScript, then I think the root problem is pretty straightforward: they aren't GML. OP has simply had the misfortune to spend 4 years learning GML and only GML, and has picked up a bunch of bad habits from that. There's really no solving that in any way other than powering through and learning any reasonable language, and which specific language that is doesn't really matter. Python at the very least is generally regarded as one of the easier languages to learn, so it would make the process quicker and less painful—and I say this as someone who started with BASIC and Java, and specifically disliked Python until more recently.
 
Some interesting posts in this one. Got to love @GMWolf pimping C. (Age doesn't matter, when you can do what C can do.)

But just from the educational perspective, I just say be a litttle bit careful about feeding on the Python hate in this thread. You're a student, so keep an open mind, and be ready to get good at it. You don't want to buy into a small circle of Python haters and then give up on it for some arbitrary reason like not liking it's awkward syntax.

Python's a very useful language to have in your backpocket. Even if you don't work as a Python developer, chances are you're going to be working with it... for one reason or another. (And remember: Few real developers actually have the luxury of working exclusively in one language. )
 

Bearman_18

Member
See, I don't hate learning knew languages, but that's partially because I forced myself to get into good coding practices when I was only using gamemaker. So I'm used to always using semicolons, putting everything in brackets, using ==, etc. You don't HAVE to do those things in GM, but I did it anyway, because I knew that other languages I would probably use in the future do those things.
 

Seknight

Member
OP literally told us why he doesn't like learning new languages: he doesn't like strict syntax rules, and he doesn't like the lack of quality documentation. C and C++ aren't any better than Java and Python in those regards, and honestly JavaScript is better than any of them if he's looking for both loose syntax and good documentation. If he's already tried and disliked even JavaScript, then I think the root problem is pretty straightforward: they aren't GML. OP has simply had the misfortune to spend 4 years learning GML and only GML, and has picked up a bunch of bad habits from that. There's really no solving that in any way other than powering through and learning any reasonable language, and which specific language that is doesn't really matter. Python at the very least is generally regarded as one of the easier languages to learn, so it would make the process quicker and less painful—and I say this as someone who started with BASIC and Java, and specifically disliked Python until more recently.
I see i should have been more specific, i actually don't dislike JavaScript. I thought it was very similar to GML even. It's just that i didn't spend enough time working with JS to make a fair comparison so i generalised.
As for python: it's not very beginner friendly in my experience. the "syntaxerror: bad input" gives me almost no feedback (for a beginner it may even seem actively misleading because it can sometimes give the wrong line). as for the docs, the one my university gave me failed to mention that input() outputs a string.

Op says he already learnt a bunch of languages. and disliked learning them. They all have something in common: they are all very high level.
The problem is not that they are high level, the problem is that i found them hard to get into. Maybe it's because I'm used to a programming language that has only one application and therefor has all resources in one place.

But just from the educational perspective, I just say be a litttle bit careful about feeding on the Python hate in this thread. You're a student, so keep an open mind, and be ready to get good at it. You don't want to buy into a small circle of Python haters and then give up on it for some arbitrary reason like not liking it's awkward syntax.
Oh don't worry I'm not giving up on python (not that i have much of a choice). I just wanted to have a light hearted rant about it and see if i'm not delusional (probably am partially). Using python for university has been getting easier, especially when working with others.
 
  • Like
Reactions: var

Elodman

Member
Well, well, again...

  • standard, "oldish" studied languages from Pascal & C to Visual Basic, Delphi, Clipper, DBase, SQL, CA-Visual Objects and some assembly x86. (also wrote a Pascal to C translator proggy as a CS degree work in the 90'ies)
  • work platform: AS/400 RPG(ILE), CL, SQL
  • other game creation tries with: Python, Construct (click x 100 / hour, thus try to write an algorithm )
  • marginal "modern" language experience (java, C#, HTML)
So, I can tell u from my long, too long time spent in front of CRT & LCD monitors, that for nothing would I change / return to any general purpose languages. The very abstact whys:

  • Not easy to see through code & things - unmanageable. Anyhow u manage include files, units / libraries, assets, it is all a boring, incomprehensive, spaghetti-codish mess. After a few hundred lines - even in easy to read Python - as pleasant for the eyes as a rhino with severe diarrhea. :eek:
  • Who wants to use 3rd party Libs & hunt for docs, test & hope it does what they say? (Pygame Lib. experience)
  • Who wants to mess with memory & pointers & nice accessories like "public static void" ?
  • How to trust it works on all / most computers, & how would ya port it to eg. consoles in a reasonable way / cost?
No, methinks the ones choosing non-game specific engines, languages, are sacrificing their time & game ideas in favor of the feeling: they write sg from scratch to feel the fake power over a conquered machine.

Maybe GML has room for improvement, but with v2.3 it is drawing near to the point when being quite acceptable & lovable even for "programming linguists". Methinks, its not worth to be that picky, the end product should be the primary objective, the nice, easy language (& engine + IDE) is a bonus. :squirrel:
 

GMWolf

aka fel666
No, methinks the ones choosing non-game specific engines, languages, are sacrificing their time & game ideas in favor of the feeling: they write sg from scratch to feel the fake power over a conquered machine.
But I like that feeling 🥺

Also someone has to implement those nice specific languages.
I'm endorsing C/C++ from the perspective of someone who doesn't like existing tools and enjoys writing tools that fit my needs :) (my needs being developing those tools, I'm a software development masochist)

I also use c++ at work, developing games for pc, Xboxes, playstation, and more.
C++ has so far given me very little trouble. If you stick to a version of the standard library all platforms support (I think we use c++17) all is good.
What has been far more trouble are the different architectures we work with.
Unified memory for example.
I don't think any language will let you deal with unifies memory quite as nicely as C/C++ and rust would.
Managed languages (java, c#, etc) simply won't let you emplace objects anywhere you like. (Also useful when using GPU pinned memory)

This may not seem like it would matter if you use a game engine, but if you have written custom shaders ingesting data from buffers you know what I'm talking about. There is a lot you simply cannot do efficiently or ergonomically with what GM offers.
 
Last edited:

11clock

Member
I feel the exact opposite. The more I learned other coding languages, the more I hated GML. Now I can’t stand coding in GameMaker at all, and is the main reason why I don’t really use GameMaker outside of jams anymore. I tried coming back to GameMaker a few times but kept bouncing off of it. GML is too painful to work with.

I highly value tooling. JetBrains IDEs are the best coding IDEs I have ever used; I barely even need to type my code since almost all of it is autocompleted or automatically refactored. Meanwhile tooling for GML is incredibly limited. I also really need static typing. I don’t like working with dynamic typing due to how error prone it can be.
 
Last edited:
*sigh* People who hate Python make me a sad puppy. :<

There are so many excellent frameworks to choose from (Pygame, Flask, Skulpt, Selenium, PyQt5 etc.) and the learning curve is especially forgiving compared to other languages such as C, C++, Java, etc. It literally only took me a week to become proficient since it tends to follow the same structure. The most notable difference however is that it doesnt need curly braces, semi-colons, or redundant parentheses in the If statements; BUT indentation and spacing does matter and that can take some getting used to.

Probably my biggest gripe with Python is just how SLOW it can be. Since it doesn't require a compiler and literally compiles during its runtime, things can get very hairy in a hurry when you're just starting out and already have a lot of coding experience. I personally code in the .Net stack at work; C#, ASP.net, SQL, HTML, CSS. And on occasion I use Angular JS. And aside from GML, I leisurely program in Python because there's just so much you can do with it. The potential is HUGE and I am always eager to explore it further.

In so far as learning other languages, I've always been fascinated with computers. Much of that influence came from my father and in a way I feel like I was born into it. While I started exploring and experimenting with other languages, I found that disciplining my skills shed some light onto the best coding practices. Once you understand the fundamentals of programming and practice with different languages, IDEs, etc, you'll get better at identifying key points in your learning.

There are a LOT of things to learn regarding Python among various other OOP languages. Your preferences depend upon what you wish to accomplish and how far you are willing to go. And if you only want to code in GML that is totally fine. That's your thing. :)
 
But I like that feeling 🥺
And that's great. I'd love to learn stuff like C++ and even assembly at some point, even though there's no real "use" for it for me, which makes me a little sad. There's definitely something nice about getting close to the actual machine that's doing all the work. )':

Also someone has to implement those nice specific languages.
Indeed. But unless we're working on a giant team on a AAA game where there are a hundred other programmers working with us to get things done, it's probably a little faster to use tools like GameMaker or Unity or whatever for our games, hahah. Even most AAA studios have dropped trying to build their own engines for every project, and usually just go with Unreal (which does use C++, yes). It's kind of lame and depressing to think about, but that's how it is. On the art side, I can't wait for raytracing to "bless" every game with perfectly accurate lighting, making every game that comes out even more samey looking than they already are....

....I don't really know where this rant was going. Basically, I wish it was the early 90s, and I had a "real" reason to learn assembly language right now, hahah. :'D
 

zendraw

Member
you havent learned anything you have just became a fanboi and this is the resault, its the same when game fanbois become fanbois of a game and defend the game indefinetly, or its creator. dialbo 2 for instance everyone will say legendary, yet its a total fail in design.
 
  • Thinking
Reactions: var

Bearman_18

Member
The first language I learned was TI-Basic on a TI-83 calculator. Believe it or not, I have never had an easier time creating a turn-based combat system than I had on that calculator. It was a very rudimentary system, but still, it had all the basic stats and systems. Using the calculator was slow, but easy to understand. I even used it to make the beginnings of a zork-esque slenderman game, well after I was already fairly well-versed in GML. I think it was a solid entry to programming, mainly because almost every language is easier to use and more powerful than TI-Basic, with or without dynamic typing and memory management.

That said, it was still jarring to start learning C++ after using GMS for years. What? I have to tell the computer what each variable is? I can't use a bool as an int? I have to find libraries for everything I might want to do?
But I still ended up liking C++. There's a certain feeling of cleanliness to it. I like not having to think about anything I haven't explicitly defined. This actually made the introduction of structs to GMS very exciting to me. I started thinking about how I could potentially ignore the object system entirely and build my own, using only exactly the variables I need. I like the way GMS does so much for you. But I also like the way C++ does almost nothing for you. It's harder to use, but ultimately more powerful if you can figure it out.

Of course, I have no delusions of superiority when using C++. Unless you're specifically wanting to create your own engine/tools or are creating a huge project that you want to optimize as much as possible, you might as well just use an engine. Where C++ is more powerful in the long run, GMS is more powerful in the short run. You have to choose the right weapon for each battle. No sense building a tank just to fight one unarmed opponent. Just grab a knife and go ham. (Of course, what with the 2.3 update and all the crazy 3D tools people are building these days, GMS is shaping up to be a hell of a lot more than a knife. And you can still use C++ for very small projects, especially text-based ones. This metaphor isn't perfect.)

So yeah, investing time into learning engines like GMS, Unity, Unreal, etc. is a wise decision, especially going into game development. But I would highly recommend everyone take the time to learn languages like C++ as well, even if it sucks at first. A good knowledge of those languages will make you much more versatile as a programmer, I think.
 

Melons

Member
This thread is too long for me to bother reading through, so I'm sure this has been said but I'll say it anyway. While Game Maker is a brilliant tool, Game Maker Language (or the syntax more accurately) is designed to teach you vaguely how programming works (although that's debatable), but now how to program. It's like learning English from the foreign exchange student who's barely passing the class. Stick to properly formatting your code so it becomes habitual. There should really be an option to turn on strict syntax that at least requires proper parenthesis, semi-colons, brackets, and braces.
 
Top