Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
On the other hand, C++ does virtually nothing by default... however, it supports libraries - you can get massive collections of code other people have made for virtually any aspect of a game.
Outside of the language itself, Gamemaker does have a variety of intentional limitations due to its multiplatform compatibility nature. Plus, there's efficiency to think of. Compare to BASIC, which is a very old intro procedural language... you could still do everything, but were limited to a maximum file size. C++ doesn't have many limits if you already know how to do it.
So... basically, if you're just starting out GameMaker is among the best as it has many quality of life features such as autocomplete. Longterm C++ is more universally used and is better to know for career development.
However C++ has far stricter syntax and doing simple things in GameMaker may take a whole lot more code in C++. C++ is hard compared to GML but you can do a lot more with it.
If you want a job with a major company you should start learning C++. It's different enough from GameMaker that you wont be able to easily transition. However, assuming you have decent experience with GML, you should be able to breeze through programming concepts in general and focus on learning the syntax.
Most large developers use C/C++ out of necessity, not because they like them (those are compiled languages and they offer complete control). Opinions may differ, but I'd recommend you try to learn a high level object oriented language first. C# is not a bad choice -- particularly because Unity is such a big thing now.
GML is very forgiving (probably too forgiving, to be honest). And it's extremely easy to get started with. Despite what most Unity devs say, there's no shame in using GML and Gamemaker. It's a great learning tool -- just make sure you're practicing using proper syntax, or you'll struggle later on.
Regardless of what you chose to start out with, you'll eventually find that most languages are fundamentally the same. Each new programming language you learn will be easier than the last.
I'm not sure someone using Unity is in any position to look down on GM users; both are comparatively hand-holdy in the grand scheme of things. Just my opinion, though.
In the long run, what you need to learn really depends on what you want to do. If you're the sort who wants to work on the hard code and backend (ie. the engines that games thrive on in the first place), you'll need C++ and a hefty understanding of some relatively high-end mathematics. On the other hand, if you want to be a game designer, it's more important to have a fundamental understanding of programming in general than a focused specialty in it.
This is especially true if you're going solo or indie studio; odds are, you'll be working with engine-tools like GM, Unity, etc., which generally handle most of the advanced, terrifying under-the-hood nonsense for you. GML will get you started here just fine - you're still learning how computers work through instructions and how to structure that sort of thing, and the focus generally lies more in trying to design a good game over the most elegant code base of all time - but C# is a great thing to get into, albeit with a slight catch:
Do not expect a general C# tutorial series to prepare you for using C# within a prebuilt engine such as Unity. Any engine acts as a sort of shell; GM has it's own set of instructions via GML, and likewise Unity has functions specific to Unity and frankly a briefly acquired understanding of how basic logic structures work - the ground covered by most language tutorials, in my experience - isn't going to be much help when you're cast adrift into an unfeeling load of documentation that, as a general rule, always seems to assume everyone is a lot more experienced than they likely are starting out.
By all means, learn the basics of C# or any other programming language (hint: they're dang near identical to GM's and everything else's, give or take some differences in syntax), but when it comes to engines don't be afraid to go out looking for tutorials and example projects for the engine you're trying to learn; in my experience, it's a lot easier to learn from someone else's code than it is to chisel at obtuse documentation and try to chart the course on my own. Just make sure you're learning something- a lot of tutorials are awful about just telling you what to do but not really explaining a single bit of it, which is great for imitation but terrible for comprehension, and comprehension is far more vital in the grand scheme of things.
I'm pretty sure that's just programmer mentality; it seems to be a consistent thing that people who work with certain languages or tools a lot develop some sort weird superiority complex regarding whatever it is they're using and their exact methods for doing this or that. Seems to be why so many general programming threads devolve into what the best language to tackle a problem with is. >_>
C++ was the best, for me, easy to figure out and lots of references. GML is very much like C++, I have been able to take what I learned 15 years ago and apply it to Gamemaker very well - I only use the "Code" tool in Gamemaker, none of the premade variable tools.
So, knowing some C++ will surely help you with GML. But GML could help you learn C++ too I suppose. Good luck!
However, once I started getting deeper into Game Maker, I fell in love with it. Something is simple doesn't have to mean that it is bad. I mean most of the developers that come to Game Maker come to it with that intention, and thus they end up making very simple games.
I don't know much about optimization and all, but I can say that you can do pretty much anything 2D that you can think of in Game Maker. See the game Project Explore on steam, and you will get a feel of what Game Maker can do in terms of complexity.
league oflegend made with it
First of all, I would like to let you know that it will be better for your own sanity if you ignore BBX. I have seen a few of his comments on this forum and I got all the known STDs in one as well as cancer from doing so.
C and C++ are the FOUNDATIONS of the modern world we currently live in. Every single piece of technology you see in your everyday life has been blessed with Dennis Ritchie's son (C) and grandson (C++).
If you want to be able to call yourself a programmer, you MUST have at least some knowledge of C/C++.
Both languages, and specially C++ because it is more modern, are the perfect learning vehicles to understand and assimilate the FOUNDATIONS OF PROGRAMMING, which you will need to be successful programmer.
The "scripting" (I cry every time I write this even with the quote marks) language of Game Maker is the most autistic piece of semantics you will ever see in your entire life and it will only confuse and detour you from the correct path. As with drugs, learn to say no to things that are not good for yourself.
Please, do yourself and the rest of the world a favour and go learn the FOUNDATIONS (I cannot emphasize this word enough) of programming. Do not learn a programming language or w/e funny name you want to label Game Maker's joke with, learn the FOUNDATIONS of programming: Programming structures, memory management, I/O, networking, etc.
Once you have learnt that, you will be able to approach any programming language that you are presented with by just taking a few hours looking at the documentation of said language.
Start by reading about the derivation of programming from mathematical algorithms, continue by getting a general grasp of all the major fields of programming and then slowly master each of them, one by one.
You don't need any "game engine" (still crying) for that, what you need is an IDE like Visual Studio or CodeBlocks, a physical notebook and a pencil.
This process, as everything in life, takes years of effort to master but I can guarantee you that it will be time absolutely well spent, since it will add value to your future.
I hope I have helped you with your question and you are free to get back to me on this discussion if something was not clear enough or you need further guidance.
Sincerely yours
I Agree.
I agree you should learn all the languages as they all have their own quirks and features, but there's also no reason to engage in code shaming... especially when there's RPG Maker games with default assets and unregistered Unity Personal Edition games readily available on Steam.
Honestly, I bailed on the GM forums a bit after the Humble Bundle because of what you might call "cancer" pouring in, but BBX was never part of that assessment. Dood does his best to give insight and aid around here, which is in pretty stark contrast to you more or less taking a huge dump on GM and anyone trying to use it.
Not everyone looking into game design needs to learn every last facet of programming, but to effectively make a game in C++ you do. If everyone had the time and intentions needed to become a proper programmer, there wouldn't be middleware like GM and Unity in the first place. Everything you mention as worth learning tends to go into the back-end that makes up what designers and artists actually use, which is why, as I said in the first place, whether or not GM is worthwhile is really going to depend on what your end goals are.
That said, for getting a basic grasp of how computers handle instructions and learning to work with that, GM is far from a terrible starting point. It's easy mode to C++'s hard, or Java's... iunno, masochistic? They're both more practical if you want to be an engine programmer or program outside of game design all together, but those aren't vital skills for everyone.