Search Unity

GameMaker is so sick now.

Discussion in 'General Discussion' started by Master-Frog, Mar 24, 2017.

  1. Martin_H

    Martin_H

    Joined:
    Jul 11, 2015
    Posts:
    4,436
    Thanks, I'll take it as a compliment :).

    To be honest my punctuation is all over the place and I mostly go by what "feels" right. In my native language I'm not very good at that either, possibly even worse.
     
    IcyPeak and Dustin-Horne like this.
  2. Deleted User

    Deleted User

    Guest

    This made sense to me a lot.

    Actually, for one-man solo, Unity still a bit overwhelming, by its own modular design that make things far from each other to reach. Although that's good in a bigger team, where everyone can focus on their own stuffs.

    I'm considering about making transition to GMS2 also. Maybe, for small retro project that's "Fun" to make, instead of deadline pressure.

     
  3. holyshitwhatapaste

    holyshitwhatapaste

    Joined:
    Dec 26, 2017
    Posts:
    5
    Sorry could not help myself...

    GML is not a scripting language neither is C#, they are programming languages.
    Scripting languages are languages that do not require a seperate compilation step like JavaScript, PHP or Python.
    Programming languages require the code to be compiled before execution like C#, Java, GML.

    Also people that say Gamemaker is limited and can only be used for certain type of applications must realize that Gamemaker can be extended with link libraries for windows (DLL) and you can even extend Gamemaker applications with native Java code if you are developing for Android or even Javascript extensions for HTML5 etc. Just like almost any development platform out there.

    Still, Gamemaker is developed for creating 2d games and personally would not use it for 3d.
     
  4. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    The lines separating programming languages from scripting languages are very blurry now. You mention JavaScript doesn't require a separate compilation but at the same time it does compile through a Just-in-Time compiler and the same is true for both PHP and Python as well.

    Both C# and GML are labelled as scripting languages for their respective game engines not because of how they compile but because of how they are used. Both of them extend existing functionality and that's one of the main purposes of scripting languages so they're labelled as such.

    Microsoft even has a blog series that describes how you can use C# as a scripting rather than programming language.

    https://blogs.msdn.microsoft.com/cd...scripting-to-your-development-arsenal-part-1/
     
    theANMATOR2b and Martin_H like this.
  5. holyshitwhatapaste

    holyshitwhatapaste

    Joined:
    Dec 26, 2017
    Posts:
    5
    True in a sense but still, no you are wrong.

    A script is a sequence or instructions carried out by another program. Code is compiled to a standalone program. There is there key difference. You write PHP or JavaScript, you do not compile it. You drop it in a lamp-stack for example and see the results in a web browser. The compilation is done at some point but it does not work in a way that you compile your complete PHP or JavaScript code as an executable file yourself and then upload that file to a webserver.

    A scripting language is a language that "scripts" other things to do stuff. If you really want to bend the terms you can make anything a scripting language or anything a programming language just like you can bend any terms, but do not reference GML as being a scripting language and C# to be a programming language in the same sentence. They are both pretty much the same in terms of what is seen traditionally as a programming language, both are typed in a similliar syntax, compiled then executed.

    Even thou GML is very forgiving in terms of syntax etc it is still a fully fledged and expandable programming language with lots of functions built in for game development to make developing games easier and faster and not some "scripting" language.
     
  6. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    Here is a way to compile PHP. By your definition is it still a scripting language? Or has it become something else?

    https://www.exeoutput.com/

    No. C# is first compiled into an intermediary bytecode and only once the user runs the application or game is the bytecode converted into actual machine instructions. Explain to me how C# using a Just-in-Time compilation process is any different from JavaScript, PHP, or Python using a Just-in-Time process.

    https://en.wikipedia.org/wiki/Common_Language_Infrastructure
    https://en.wikipedia.org/wiki/Common_Language_Runtime
     
  7. holyshitwhatapaste

    holyshitwhatapaste

    Joined:
    Dec 26, 2017
    Posts:
    5
    But this does not compile PHP natively. It uses libraries and extensions to convert the PHP to an executable to be ran within .NET & .NETCore.
    Basically converting the functionality of the php file to a whole different language to be then compiled and ran.
     
  8. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    Just like C# which is converted into an intermediary language before being further compiled and ran.
     
  9. holyshitwhatapaste

    holyshitwhatapaste

    Joined:
    Dec 26, 2017
    Posts:
    5
    You do not seem to understand.

    "The current implementation of PHP is that of an interpreted language. You can argue the theoretical aspects of the fact that any language can technically be interpreted or compiled, but as it stands, the current implementations are such that PHP code requires an interpreter to run, and the interpreter manages the executing environment."

    Everything can be argued but like I said earlier. In the traditional sense PHP for example is not an programming language, it is a scripting language. C# is a programming language, it is compiled then ran.

    A PHP script and C# code. Have you ever heard people speak of PHP codes and C# scripts?

    You can argue this how much you will but I'll see myself out now. Cheers and good luck and fortune to all the devs here.
     
  10. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    Once again Microsoft has information on how you can write scripts in C#.

    https://msdn.microsoft.com/en-us/magazine/mt614271.aspx

    Mono, the other company developing a C# compiler, has similar pages.

    http://www.mono-project.com/docs/advanced/embedding/scripting/

    Additionally Unity uses the term "scripting" when referring to writing code in C#.

    https://unity3d.com/learn/tutorials/s/scripting
    https://docs.unity3d.com/ScriptReference/
     
  11. holyshitwhatapaste

    holyshitwhatapaste

    Joined:
    Dec 26, 2017
    Posts:
    5
    Think of it this way: Coding is like building a robot that for example kicks a football. Scripting is like already having the robot exist, but writing a paper for the robot telling it to kick the football then giving in to the robot.

    /end rant
     
  12. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    Thank you. That's precisely the point I have been making the entire time. Like I said in my earlier post, linked below, the difference between a programming language and a scripting language is the way the language is used.

    https://forum.unity.com/threads/gamemaker-is-so-sick-now.462626/page-3#post-3333833
     
  13. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    This is why I use Playmaker. Code/script/programming is too much BS! :p
     
  14. kburkhart84

    kburkhart84

    Joined:
    Apr 28, 2012
    Posts:
    910
    Another thought that occurs to me...can the language be used without the accompanying engine? If so, that argues towards a language not so much being a "scripting language." I love Gamemaker and how useful GML is, and the fact that it can do much more than what the word "scripting" implies. But, in my opinion, it is still a scripting language, more than anything because it doesn't exist much of anywhere else, and because it is totally dependent on the Gamemaker Engine.

    Also, just because they can now compile it to C++(and then into compiled code in an executable) doesn't mean it was always that way. The same GML we know and love now used to exclusively be a run-time interpreted language. In fact, I used to have objects and the code defined in code in order to create new objects at run-time. Any string could be valid code, and could be interpreted back then. The GML would be "compiled" run-time into the interpreted format. This also meant that the whole compiler/interpreter had to be included in all the builds. Since the re-write the system for GMS1 all of that went away.

    So yeah, despite all the power GML currently has, I would still consider it a "scripting language." Another point I can make, it was mentioned that you can add lots of things using DLLs....if GML wasn't a scripting language, why wouldn't you just code those things in GML directly instead of in a DLL?
     
  15. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    21,155
    This line of reasoning though doesn't hold up for the simple fact that any language is able to be compiled, interpreted, embedded in another application, and so on. Two excellent examples of this would be CINT and Cling.

    What are CINT and Cling? They're C++ interpreters. Both were developed at CERN (https://en.wikipedia.org/wiki/CERN) for use in experiments with the Large Hadron Collider. Both are designed to be both standalone and embedded in applications as scripting languages.

    CINT was eventually abandoned in favor of Cling which uses a more modern tool chain and has a Just-in-Time compiler.

    http://www.hanno.jp/gotom/Cint.html
    https://root.cern.ch/cling

    Getting back to the language itself, it has everything you need. You can declare variables and it supports multiple types.

    https://docs2.yoyogames.com/source/_build/3_scripting/3_gml_overview/6_scope.html
    https://docs2.yoyogames.com/source/_build/3_scripting/3_gml_overview/9_data_types.html

    You have data structures (arrays, lists, maps, and so on).

    https://docs2.yoyogames.com/source/_build/3_scripting/3_gml_overview/10_arrays.html
    https://docs2.yoyogames.com/source/_build/3_scripting/4_gml_reference/data_structures/index.html

    You have control structures (branching and loops).

    https://docs2.yoyogames.com/source/_build/3_scripting/3_gml_overview/14_language_features.html

    You have ways of extending functionality with external libraries.

    https://docs2.yoyogames.com/source/..._reference/miscellaneous/external_define.html
    https://docs2.yoyogames.com/source/...ml_reference/miscellaneous/external_call.html

    That there isn't a compiler or interpreter that isn't dependent on the engine isn't proof that there can't be one so much as proof that there simply isn't a need for one at this time. After all there are a lot of good easy to use languages out there already.

    There is a web-based tool for experimenting but it's currently dependent on the engine.

    http://yal.cc/r/gml/
     
    Last edited: Jan 1, 2018
  16. kburkhart84

    kburkhart84

    Joined:
    Apr 28, 2012
    Posts:
    910
    This specific statement kinda proves somewhat my point. Things change(and as was said earlier the lines are quite blurry anymore). But at the least, in the original designs, those languages you mention were made to work alone, which in my own opinion means they are no longer exclusively a "scripting language." GML on the other hand based on original design(and in fact current usage) cannot actually be used standalone yet.

    About all the language features it has...indeed it is quite fully featured much more than people think(I know GML better than I'd say I know about any other language, at least based on what I've recently used). But, in my opinion, the fact that the language is indeed not currently available in any standalone form makes me think it still counts as a "scripting language" no matter all the nice features it has.

    Note that like we have said, lines are blurry, and this is all just kind of wordplay anyway. As long as the purpose is served, I could care less if it counts as "scripting" or not. In any case, I'm far from expert on the subject. It is just the way I understood it that to call a language a "scripting" language more than anything was determined by the usage being standalone or along with something else. In the current state of things, you can't compare a language like GML with something like C++. GML won't work all by itself...it can't directly access windows APIs all alone, rather thru the DLL extension mechanism(which I can say I've actually done myself with it). It only has the access to that which the creator's give it function calls to. C++ on the other hand(though I'm no expert on details) has much more low level access(not like Assembly though, even though you can typically inline Assembly into C/C++ code).It can also be used independently, with or without an actual visual window. This is where I would normally draw the line between scripting/non-scripting languages.
     
  17. Master-Frog

    Master-Frog

    Joined:
    Jun 22, 2015
    Posts:
    2,302
    GameMaker has a breezy syntax and lots of built-in functions to help make games. The primary function of GML is to make games, where C# or C/C++ or JAVA or JavaScript (and so on) are general programming languages with some high and low level features, suitable for software engineering, application development and anything your brain can imagine.

    Even C gets broken down into machine code and I guess not even Assembly is true computer programming. :rolleyes:

    We're all just a bunch of hacks. :p