(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-20-24 02:18 PM
0 users currently in Programming.
Acmlm's Board - I3 Archive - Programming - Game Maker anyone? New poll | |
Pages: 1 2Add to favorites | Next newer thread | Next older thread
User Post
1210
Newcomer








Since: 04-04-06
From: USA

Last post: 6613 days
Last view: 6613 days
Posted on 04-04-06 11:53 AM Link | Quote
Learning about all of these languages use to program games, programs, etc.. I don't think I've seen anyone using Game Maker, which has a programming language all to itself. I just wonder if anyone here actually uses it. Well? Anyone?

If you don't know what Game maker is, here is the link: http://www.gamemaker.nl/
Check it out!
1207

Red Goomba








Since: 04-03-06
From: Carmel, New York

Last post: 6614 days
Last view: 6614 days
Posted on 04-04-06 02:23 PM Link | Quote
Game Maker is a decent game making engine. You can do a lot of things with it to make a pretty good platform game or an action/adventure, but that's about it. I've seen some decent The Legend of Zelda clones, but that's pretty much pushing the program to the limit. The application's programming language is also pretty nice, but it also includes a drag and drop interface... it's really organized.

Although, I guess if you really work hard with it (and I've experimented with it), you can probably make a perfect or near-perfect Final Fantasy/Super Mario Bros. clone.
1210
Newcomer








Since: 04-04-06
From: USA

Last post: 6613 days
Last view: 6613 days
Posted on 04-04-06 03:29 PM Link | Quote
Yes, I agree. Though I have never used any other language other than GML (Game Maker Language), I think Game Maker is and can be advanced for serious designers such as myself. But there are plenty of things that still need to learn. I have one game on www.mfgg.com in the demos section (though it's a COMPLETE game). Please check it out! Any ideas or bug reports are welcome!


(edited by Littlink on 04-04-06 02:33 PM)
Squash Monster

Bouncy


 





Since: 11-18-05
From: Right next to myself.

Last post: 6308 days
Last view: 6302 days
Posted on 04-04-06 06:40 PM Link | Quote
The GameMaker language is actually pretty constricting. Last I checked, you don't have proper object support or even proper functions.

It's a lot of fun to play with, and might be reasonable for cranking out prototypes, but you really do lose a lot by not taking the leap into a decent language (I'll suggest Java).

Basically, with GML, you gain built-in sprite, collision detection, tilemap, and game-object support at the expense of functions, objects, and bunches of other really powerful programming tools.
1210
Newcomer








Since: 04-04-06
From: USA

Last post: 6613 days
Last view: 6613 days
Posted on 04-05-06 11:10 AM Link | Quote
-----
The GameMaker language is actually pretty constricting. Last I checked, you don't have proper object support or even proper functions.
-----

Well, it all depends on what you think is a "proper function". Game Maker has its own functions made just for game design. It's just a matter of opinion really.

-----
It's a lot of fun to play with, and might be reasonable for cranking out prototypes, but you really do lose a lot by not taking the leap into a decent language (I'll suggest Java).
-----

I have to agree, Game Maker is fun to explore, but is good for making decent games. Not all of the games made with GM are 2-D platformers, or cheap RPGs. Once registered, you can use 3D functions and that's when it gets complex. VEEERY complex... Java? Heard of it but never really thought of it. Maybe I should.

-----
Basically, with GML, you gain built-in sprite, collision detection, tilemap, and game-object support at the expense of functions, objects, and bunches of other really powerful programming tools.
-----

Yes, yes. Quite correct, though one would want to use real sprites though. Using draw_rectangle(x-16,y-16,x+16,y+16,true) makes the game look a bit sloppy.

Thanks for your thoughts! Quite interesting.
Squash Monster

Bouncy


 





Since: 11-18-05
From: Right next to myself.

Last post: 6308 days
Last view: 6302 days
Posted on 04-07-06 12:45 AM Link | Quote
Originally posted by Littlink
Well, it all depends on what you think is a "proper function". Game Maker has its own functions made just for game design. It's just a matter of opinion really.
The function thing is not a matter of opinion. It's a matter of whether you can, with some syntax or another, do this:

int someFunction(int arg2, int arg2)
{
return arg1 + arg2 * arg1;
}


And then do int someNumber = someFunction(someOtherNumber, yetAnotherNumber);

Originally posted by Littlink
I have to agree, Game Maker is fun to explore, but is good for making decent games. Not all of the games made with GM are 2-D platformers, or cheap RPGs. Once registered, you can use 3D functions and that's when it gets complex. VEEERY complex... Java? Heard of it but never really thought of it. Maybe I should.
Yes. Yes you should. And I'll teach you all the non-obvious stuff (how to pop up a window with a timer event, load some sprites from some files and draw them, whatever else you need) if you can pull off something that shows you've learned what's in the chapter I just linked.

And if you need 3D stuff, you can import some stuff to let you get at some 3D library or another, I think it's OpenGL. And a real 3D library will rock any built-in one's socks.

Originally posted by Littlink
Yes, yes. Quite correct, though one would want to use real sprites though. Using draw_rectangle(x-16,y-16,x+16,y+16,true) makes the game look a bit sloppy.

Thanks for your thoughts! Quite interesting.
Java's supply of methods like draw_rectangle() is quite apt. But you can do far more with some images and AffineTransform than you'd probably believe.


(edited by Squash Monster on 04-06-06 11:47 PM)
1210
Newcomer








Since: 04-04-06
From: USA

Last post: 6613 days
Last view: 6613 days
Posted on 04-07-06 10:16 PM Link | Quote
So you want to introduce me to Java? Hmmmm... It all depends. What (compiler,program,etc...) is needed to use Java?
Jagori

150


 





Since: 11-17-05

Last post: 6301 days
Last view: 6301 days
Posted on 04-07-06 10:55 PM Link | Quote
You need the Java development kit (JDK). You can get it and Netbeans (a usable IDE, but you don't need it to program in Java) here. If you don't want Netbeans, just get the JDK 5.0 itself. I'll defer to Squash Monster for any other things that might be necessary, but the JDK is the main essential thing.


(edited by Jagori on 04-07-06 09:58 PM)
firemaker

Cheep-cheep


 





Since: 12-13-05
From: Somewhere in a place called Berkshire

Last post: 6379 days
Last view: 6379 days
Posted on 04-08-06 09:38 AM Link | Quote
Yeah, the loss of functions in game maker is what causes me to stay away from it. Otherwise it wouldn't be too bad. Good for a n00b to programming though.
Squash Monster

Bouncy


 





Since: 11-18-05
From: Right next to myself.

Last post: 6308 days
Last view: 6302 days
Posted on 04-08-06 10:59 AM Link | Quote
As Jagori said, you're going to need the JDK.

You're also probably going to want an IDE, because syntax highlighting is nice, and going into DOS to compile isn't. Any old IDE should work. Netbeans is one, and supposed to be good, though I never really liked it. The people at my office use JBuilder, which has some very awesome tools and some overly complicated configuration stuff needed for every project. I use JCreator LE, which isn't all that great, but works very well and simply for the majority of the things you'll want to do.


(edited by Squash Monster on 04-08-06 10:01 AM)
1210
Newcomer








Since: 04-04-06
From: USA

Last post: 6613 days
Last view: 6613 days
Posted on 04-11-06 03:46 PM Link | Quote
Okay. I'll look into it. Thanks for all the advice. Hey, and did you all know that GM can use pretty much any other programming language? You would have to have to be a good preogrammer though.
Disch

Red Cheep-cheep


 





Since: 12-10-05

Last post: 6580 days
Last view: 6580 days
Posted on 04-11-06 04:11 PM Link | Quote
I am downright baffled that Java could be recommended for game development

I mean sure.... Java has its uses. But game dev isn't really one of them.

Pick up some C + SDL (or C + SDL + OpenGL if you want 3D). Same platform independence, but much better suited for game dev, and far less bloated.
Squash Monster

Bouncy


 





Since: 11-18-05
From: Right next to myself.

Last post: 6308 days
Last view: 6302 days
Posted on 04-11-06 10:38 PM Link | Quote
And why isn't game dev one of them?

Java and C run at about the same speed*. Java has a very good graphics framework in java.awt that will be more than enough for most 2D games. If that's not enough, both have access to solid graphics libraries in the form of SDL and OpenGL.

The major tradeoff in using Java is that it eats memory. But then, you get java.awt, javax.swing, and a free garbage collector in return. Yes, if you're doing something very heavy-duty, you'll want the extra memory and the speed**. However, I doubt these are the concerns of somebody making their transition out of Game Maker.

*Given you run the JVM with the -s argument, which nobody does but everybody should, and that you use gcc to compile your C, which isn't the best for game development but most people do it anyway.
**If your game uses the garbage collector a lot, doing it by hand is going to help a lot. And my previous comment about speed is mostly void if you use a more appropriate compiler.
Disch

Red Cheep-cheep


 





Since: 12-10-05

Last post: 6580 days
Last view: 6580 days
Posted on 04-11-06 11:04 PM Link | Quote
Originally posted by Squash Monster
And why isn't game dev one of them?


I'm not saying you CAN'T make a fully functional, high quality game in Java. I'm saying that's not Java's strong point. For someone interested in game developemtn, Java is not the right path to be looking at.

It's very possible to make a super-awesome high-quality fast-paced 3D action game in VB6 -- but that doesn't mean VB6 is the language you should choose when you're interested in making such a game.

Originally posted by Squash Monster
Java and C run at about the same speed*


While I don't have enough experience with Java to really attack this. I don't believe it for a second (even with your footnote). Going through any kind of VM (even a fast one) is going to do nothing but eat unnecessary CPU time and memory.

The key difference between Java's and C/C++'s approach is that C/C++ is meant to be recompiled for each platform, whereas Java isn't. I suppose you could get around that by recompiling the Java game for each target platform, optimized for that platform. But if you're doing that, what's the point of using Java in the first place? (there are infinite libraries available for C/C++ which handle garbage collection and any other aspect Java can offer. In fact I'd wager that there is far more you can do with the libraries available for C/C++ than what's available for Java).

But aside the point. Performance-wise... there is no freaking way in hell any Java program will be faster, smaller, or less demanding than the same C program (when equal effort is put into optimizing them). I'd bet my life on it.


Yes, if you're doing something very heavy-duty, you'll want the extra memory and the speed**


That's just the thing. It doesn't get any more heavy-duty than game dev. Games are the most demanding kind of program on every aspect of your computer. Memory consumption, video and audio processing, and general CPU power. All has to be done in real time, with little or no latency. As the game gets larger, the shortcomings of a slower language compound. Going for that little bit of extra speed can (and most likely will) make the difference for people with low or mid-range computers.

But this comes down to what you feel is "fast enough". Sure, you can get a Java game running at a decent speed for most people. But it will always be a little slower than it needs to be. And for some people that will make the difference between being able to play the game and not being able to.

There's a reason so few commercial games are written in Java.


(edited by Disch on 04-11-06 10:05 PM)
(edited by Disch on 04-11-06 10:06 PM)
Squash Monster

Bouncy


 





Since: 11-18-05
From: Right next to myself.

Last post: 6308 days
Last view: 6302 days
Posted on 04-12-06 08:16 PM Link | Quote
Originally posted by Disch
I'm not saying you CAN'T make a fully functional, high quality game in Java. I'm saying that's not Java's strong point. For someone interested in game developemtn, Java is not the right path to be looking at.
You make it sound as if choice of language is a horribly binding decision. Switching from Java to C consists of learning how to allocate memory and moving the square brackets when you declare an array. The reason for suggesting Java in the first place is that it's fully capable for what's expected, and much easier of a transition.

Originally posted by Disch
While I don't have enough experience with Java to really attack this. I don't believe it for a second (even with your footnote). Going through any kind of VM (even a fast one) is going to do nothing but eat unnecessary CPU time and memory.

(....snip...)

But aside the point. Performance-wise... there is no freaking way in hell any Java program will be faster, smaller, or less demanding than the same C program (when equal effort is put into optimizing them). I'd bet my life on it.
The -s argument in Java enables heavier use of dynamic recompilation. In exchange for a bit longer of a load time, the JVM will start to compile whatever code is taking the most processor time and replace the stuff it has been interpreting on the fly with it when it's done. It works better than a lot of real compilers in a large number of situations, primarilly because it knows exactly when to unroll loops.

I'm not going to attempt to argue that a Java program will be smaller in hardrive or memory footprint than the equivalent C program. That'd be crazy talk. I'm also not really going to recomend it for 3D work -- though yes, you have access to the 3D libraries, Java's floating point system is incompatable with everything and you lose hardware acceleration.

Originally posted by Disch
That's just the thing. It doesn't get any more heavy-duty than game dev. Games are the most demanding kind of program on every aspect of your computer. Memory consumption, video and audio processing, and general CPU power. All has to be done in real time, with little or no latency. As the game gets larger, the shortcomings of a slower language compound. Going for that little bit of extra speed can (and most likely will) make the difference for people with low or mid-range computers.
The last Java game I wrote that was tested on a lot of computers was a technical demo for explaining random terain generation. At worst, it lagged for the first 6 or so seconds at startup, then proceeded to run at 60 frames per second without any difficulties. How complex was it? Well, it was a simple platformer, but when making the game, I made the mistake of redrawing every onscreen tile every frame. Figure that as about 200 more things happening at once than strictly needed to be. You generally don't need more than 200 things happening at once in the first place, so I think Java's a safe bet for 2D games in general.
Disch

Red Cheep-cheep


 





Since: 12-10-05

Last post: 6580 days
Last view: 6580 days
Posted on 04-12-06 08:59 PM Link | Quote
Originally posted by Squash Monster
The reason for suggesting Java in the first place is that it's fully capable for what's expected, and much easier of a transition.


I guess this where we fundamentally disagree. I'd find Java or C++ to be a more difficult transition than to just straight C. I mean when you think about it.... Java and C++ are pretty much just glorified C. More features to learn... More abstract concepts to grasp. If anything I'd recommend people start with C then work their way up to C++ or Java, not the other way around. C is far more simplistic.

What it comes down to is if you know Java or C++... you already know C. Learning Java first is like learning how to do exponents before learning how to multiply. Which you already basically said yourself:

Switching from Java to C consists of learning how to allocate memory and moving the square brackets when you declare an array.


If he's already familiar with basic programming concepts from having worked with another language (even a game maker sciptish language), then the only thing he has left to learn in C is structs and pointers (as well as language syntax).


The -s argument in Java enables heavier use of dynamic recompilation. In exchange for a bit longer of a load time, the JVM will start to compile whatever code is taking the most processor time and replace the stuff it has been interpreting on the fly with it when it's done. It works better than a lot of real compilers in a large number of situations, primarilly because it knows exactly when to unroll loops.


I'm still skeptical. I find it hard to believe that Java can monitor and profile code speed of the program it's interpretting and dynamically recompile it all while still executing code and running a program.... and somehow be faster than code pre-compiled and optimized for the platform it's being run on? That just doesn't make any sense to me.


The last Java game I wrote that was tested on a lot of computers was a technical demo for explaining random terain generation. At worst, it lagged for the first 6 or so seconds at startup, then proceeded to run at 60 frames per second without any difficulties.


I don't doubt it.

I'm not saying Java isn't capable. I'm saying it isn't preferable. It's like using the back of a wrench to pound in nails. Sure it'll work, but why not use a hammer?


But let's turn this around. I've already stated why I think C or C++ would be a better option. And I've mostly just been hearing you defend Java as a viable candidate. What I'd like to hear is what reasons do you have for saying Java is the better candidate? The only one I've heard so far is that it's an easier transition, which I've already addressed.


(edited by Disch on 04-12-06 08:01 PM)
Squash Monster

Bouncy


 





Since: 11-18-05
From: Right next to myself.

Last post: 6308 days
Last view: 6302 days
Posted on 04-13-06 12:26 AM Link | Quote
You can pull up some interesting data on the speed debate with a little googling. This one is particularilly surprising (data is hidden behind the link in that image in the upper right), though I doubt that Java actually has an edge like it suggests.

But regarding your last question, which bears answering:

First, I'd like to stress that I am not suggesting Java as the be-all end-all game development platform. The ideal professional game development language is always going to be C/C++, unless you are trying to have your game played in a browser, in which case it is Flash for light work and Java for heavy work. However, the ideal casual game development language is whatever you can get your hands on at any given moment -- I, for example, am programming a platformer in TI-92 BASIC during Calculus, and a clone of Joust in javascript during lulls at work, the best game ever in iC when I run out of useful stuff to program in a club I attend.

Now, I think you'll understand that I'm not making suggestions under the assumptions of professional development here. Jumping from what is possible in Game Maker to professional level development is a bad idea.

What comes as a question, then, is what you do when "whatever you can get your hands on" is "everything". Personally, I think Java is the best language you're going to find for casual game development, as built-in libraries for nigh everything and a free garbage collector are godsends. There is a certain complexity of project where you're going to want to find more niche versions of all of these, and at that point, feel free to start using a C.


Anyway, my original suggestion was not because I suggest Java in general (which I do), it just worked out that way. I considered all the languages I know and thought about how much farther they'll get you from Game Maker as a starting point.

TI BASIC -- Somewhat less useful than Game Maker, hardly a step forward, not universally available.
javascript -- Great if you know functional programming, HTML, and CSS like the back of your hand. A bit like trying to learn anatomy by disecting yourself otherwise.
VB6 -- Almost exactly like Game Maker, but it has functions. (I've mentioned that Game Maker does not do the whole function thing, right?)
C -- From GML, adds functions, pointers, memory management. From GameMaker in general, adds having to deal with loading and drawing images and open windows, which, even at minimum effort, means getting a library set up, which Game Maker gives you no experience with.
C++ -- All the extra stuff of C, plus objects.
Java -- From GML/GameMaker, adds functions, objects, and loading your own images.

So, to recap the good choices:
VB6 adds functions.
C adds functions, pointers, memory management, library setup, and image loading.
Java adds functions, objects, and image loading.

So, VB6 is the ideal if you want incremental progression from GML. But VB6 is not freely available, is no longer supported, and is VB6.

Then Java and C both have the pain of having to load your images in by hand, so that's moot. Both have functions, thank God, so that's moot. It's just a matter of what is worse to subject someone who is just learning functions to -- objects, or pointers, memory management, and library setup.

Objects can be mostly avoided if you really want, so Java is the suggestion I give to the GML guy.
Disch

Red Cheep-cheep


 





Since: 12-10-05

Last post: 6580 days
Last view: 6580 days
Posted on 04-13-06 12:02 PM Link | Quote
Originally posted by Squash Monster
You can pull up some interesting data on the speed debate with a little googling. This one is particularilly surprising (data is hidden behind the link in that image in the upper right), though I doubt that Java actually has an edge like it suggests.


One of the links at the bottom of that page was pretty entertaining: This one.

One of the major complaints about the article you linked (without having looked at the source of the test programs) was the following:


I've been accused of biasing the results by using the -O2 option for GCC, supposedly because -O2 optimizes for space, thus slowing down the benchmark. This is not what -O2 does. According to the GCC -O documentation:

-O2: Optimize even more. GCC performs nearly all supported optimizations that do not involve a space-speed tradeoff. The compiler does not perform loop unrolling or function inlining when you specify -O2. As compared to -O, this option increases both compilation time and the performance of the generated code.

On the other hand, -O3 performs space-speed tradeoffs, and -O performs fewer optimizations. Thus, for these tests, I think -O2 was the best choice.


Considering he's running SPEED tests it would make more sense for him to go with the 'optimize for SPEED' option (-O3). I'm sure the optimizations Java was doing were making space-speed tradeoffs... and if executable size was a factor in these comparisons he should have listed them. But since they weren't, he had absolutely no reason not to go with -O3 here (except to make Java look better, of course). But what would have been preferable was if he did tests with each -O option.

This could explain the huge gap in his results where method calls were concerned (the methcall test on the page you linked indicated g++ took almost 6x as long when the article I linked said it look less than 2x as long).

I mean if Java is being optimized to unroll loops and inline functions and C++ isn't... then, yeah... of COURSE Java is going to be faster. I'll have to check out some of these other benchmarks sometime. I know Java is faster than most people give it credit for... however I still don't buy that it will outperform C/C++ in practical application.



Regarding the rest of your post, you make well thought out and valid points. I still can't say that I really agree with you... however your rationale is definatley much more clear and logical to me now. And your Java suggestion is sitting better with me. And at the end of the day, either language will get the job done.
1337_Ac3

Shyguy


 





Since: 04-22-06
From: sweden

Last post: 6309 days
Last view: 6301 days
Posted on 04-22-06 09:50 PM Link | Quote
Well i can do nothing else than saying that Disch is right, C/C++ is better than java in that way.. (My tip:Learn C++, not C. C++ is just better). For making 2D games, you could use any friggin language you want. But who wants to make 2D games in the year 2006? maby it was popular in the 90s.. Cmon, open your eyes, there is no reason to make 2D games, learn a language that you can make 3D with instead(I know you can make 3D in GM, but that 3D is just... forget it!). Learn to use a real programing language instead of game maker, you will have hell more use of C++ than game maker skills, if you wanna start at a game company, lets say capcom. Do you think they would want you if you were better at C++ or game maker? Dont waste your life on game maker while you still are young.. Okay, all this might have sounde' stupid, BUT (yes there is a "but") i'm talking about the money making bussines. If you got other plans in your life than computers or programing, sure, make games in game maker as a hobby or to waste some free time. But as i told you, if that's not the case, then learn real programing.

PEACE! (dont tell me that i'm stupid or spell like a drunk monkey.. cuz im both right now ^)


(edited by setz on 05-15-06 04:43 AM)
Disch

Red Cheep-cheep


 





Since: 12-10-05

Last post: 6580 days
Last view: 6580 days
Posted on 04-22-06 11:15 PM Link | Quote
How the hell do you expect anyone to read your post, numbnuts.

Freaking acmlm's
Pages: 1 2Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - Programming - Game Maker anyone? |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.014 seconds; used 472.53 kB (max 605.77 kB)