Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411279 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 03:05:35 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Game Maker For Beginners: Part I
Pages: 1 2 [3] 4 5 ... 11
Print
Author Topic: Game Maker For Beginners: Part I  (Read 325623 times)
ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #40 on: October 16, 2008, 11:00:48 AM »

You can get around them with the obfuscator -- it makes source code illegible.
Logged

Matt Thorson
Level 7
**

c'est la vie


View Profile WWW
« Reply #41 on: October 16, 2008, 11:40:51 AM »

Block the decompilers and I would consider switching to GM  Well, hello there!

As long as the code is compiled, it can be decompiled.

GM is just easier to decompile because its interpreted.
Logged

ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #42 on: October 16, 2008, 11:45:04 AM »

That's true. There are also working decompilers for all Flash games. Doesn't stop people from using Flash.
Logged

ChevyRay
Guest
« Reply #43 on: October 16, 2008, 11:48:32 AM »

Just proves that assholes still do, and will always exist Cool
Logged
Matt Thorson
Level 7
**

c'est la vie


View Profile WWW
« Reply #44 on: October 16, 2008, 11:59:10 AM »

Java is (was?) notoriously decompilable as well.
Logged

muku
Level 10
*****


View Profile
« Reply #45 on: October 16, 2008, 12:05:08 PM »

Just proves that assholes still do, and will always exist Cool

I don't get the big fuss about decompilers. So what if someone who's trying to learn GM takes a game he enjoys, decompiles it and studies the code? As long as he doesn't rip anything off directly, I don't see how wanting to learn makes him an "asshole."

Of course, hacking up the game and publishing his own version of it would be a definite dick move, but then he's to blame, not the decompiler. Almost any tool can be used for illegit purposes.

Relatedly: a big part of the software community has already embraced the idea of open source. Why is the game development scene so damn conservative?
Logged
ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #46 on: October 16, 2008, 12:09:54 PM »

Because software isn't primarily creative expression, whereas games are. I know that's arguable, and there are creative aspects to designing a word processor, but that's still an essential difference between the two. And open-sourcing something as creative and individual as a game would be like open-sourcing a novel (anyone can add another chapter or another character if they wish!).

It's interesting as a novelty, but it doesn't really help most games become better to allow anyone to add whatever they want to it. Fiction usually can't work like Wikipedia.

There's also the issue of commercial games. Commercial games made in GM are much more to lose from decompiling than freeware ones do. I don't mind releasing the source code to my freeware games (in fact, all of my freeware games do have the source code available, although merely making the source code available for learning purposes doesn't constitute "open-source") but the shareware ones are another story, because someone can easily see how to get the full version if they have the source.
Logged

muku
Level 10
*****


View Profile
« Reply #47 on: October 16, 2008, 12:15:37 PM »

Because software isn't primarily creative expression, whereas games are. I know that's arguable, and there are creative aspects to designing a word processor, but that's still an essential difference between the two. And open-sourcing something as creative and individual as a game would be like open-sourcing a novel (anyone can add another chapter or another character if they wish!).

Wait, wait. You're mixing two things up. One thing is making a game open source, that is, providing the source code of the game in whatever form is convenient. The other is the bazaar-style of development where everyone who joins the project may contribute code and patches. I'm also very skeptical about the latter in the case of games; there are some good games being developed in this way, but mostly they are very derivative (remakes, clones of commercial games, etc.). I was arguing for the former here, for the sake of education, mostly.
Logged
ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #48 on: October 16, 2008, 12:19:47 PM »

Hmm, in that case I agree with you that freeware games should generally make their source available, and I don't see why more don't do that. I kind of equated open-source with anyone can add anything they want to it, which is the only kind of open-source I'm familiar with. I don't exactly know how it'd work without that aspect, but apparently some don't do that, like Firefox.

Although another objection to this is that people would then be free to make inferior derivative works, or derivative works that the original author wouldn't approve of. For instance, someone could release a version of Iji where the main character is nude if it were open-source, and the author of that game might not like to see such a version released (in fact, I'm sure he wouldn't, we had a discussion about that kind of thing in Eo).
Logged

Gnarf
Guest
« Reply #49 on: October 16, 2008, 12:22:55 PM »

I'd say open source games is kind of a big deal because it tends to ensure that games are being maintained so that they work on modern machines years after release and so on. That's rather on the side of what you guys are talking about though.

Code:
if (whatever == 5) awesome();
if (whatever == 5) whatever += 1;
if (whatever != 5) whatever -= 1;

Eh. That does a completely different thing. If whatever is inreased by one in the second line, it will be not 5 in the 3rd and be decreased again. I don't know the language, so I don't know if there's any reason to assume that awesome() does not alter the value of whatever.

That aside, as far as performance is concerned, doing things like that is a bigger issue than, say, more characters of text being read by the parser. That's 3 comparisons and jumps instead of one.


Fastest execution might be (though least readable)

Code:
whatever -= 1; if whatever != 5 exit; awesome(); whatever += 2;

Shouldn't it be != 4?

That's not a fast way to do it though. The biggest difference with it is that it will alter the value of whatever twice rather than just once if it is to increase it by one.
Logged
ChevyRay
Guest
« Reply #50 on: October 16, 2008, 12:23:38 PM »

Just proves that assholes still do, and will always exist Cool

I don't get the big fuss about decompilers. So what if someone who's trying to learn GM takes a game he enjoys, decompiles it and studies the code? As long as he doesn't rip anything off directly, I don't see how wanting to learn makes him an "asshole."

Of course, hacking up the game and publishing his own version of it would be a definite dick move, but then he's to blame, not the decompiler. Almost any tool can be used for illegit purposes.

Relatedly: a big part of the software community has already embraced the idea of open source. Why is the game development scene so damn conservative?
Not the decompilers, man, the people who use decompilers for mal reasons. I'm hardly conservative in that regard. If someone as much as asked me for my source, I'd send it on their way. I've got no secrets. My code is usually just not "quality" code, so I don't make it open source rather out of embarrassment.
Logged
ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #51 on: October 16, 2008, 12:26:51 PM »

Good catches gnarf, I didn't take those things into account -- I was just interested in showing the formatting I'd use, and didn't notice that the conditionals actually changed the conditions.

As for the speed of execution one, remember that it's an interpreted language, so changing a value twice in half the cases made up for by not executing two lines at all in half the cases. Every line executed slows down GM, no matter what it does (even merely calling your own functions has a lot of overhead, so it's significantly faster to keep functions large rather than breaking them up, although it's less readable so I don't usually do that).
Logged

Gnarf
Guest
« Reply #52 on: October 16, 2008, 02:56:10 PM »

Way I understood it, things got translated to bytecode when the game started. And then, statements that aren't executed, well, they aren't executed. There'd be no executing 'awesome();' and 'whatever += 1;' if whatever was not 5. It'd compare whatever to 5, and if those numbers were not equal it'd jump straight to the else part. Similarly, at the end of the then-part, it'd jump straight to after the else-part.

I've never used that language or anything, so of course there could be some strange reason why it works out in some totally different way. What you're saying sounds very strange to me though. Like, if it's compiled to bytecode, then it seems reasonable to assume that it's not some bizarro world kind bytecode. If it's not compiled to bytecode (or some syntax tree or any such thing), then sure, all the weird little things start mattering. Think I'd start with giving all my variables really short names :P
Logged
ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #53 on: October 16, 2008, 03:49:52 PM »

Since the original source code is included in the .exe, giving variables short names will at least have one benefit: the download size will be slightly smaller.
Logged

increpare
Guest
« Reply #54 on: October 16, 2008, 03:58:51 PM »

Has anyone any experience with GM obfuscators?   these surely should be of some help?
Logged
ஒழுக்கின்மை (Paul Eres)
Level 10
*****


Also known as रिंकू.


View Profile WWW
« Reply #55 on: October 16, 2008, 04:02:27 PM »

I mentioned that earlier. I think they help, but the obfuscater is a bit buggy with my game, so I don't use it myself. I would if it worked though.
Logged

increpare
Guest
« Reply #56 on: October 16, 2008, 04:05:21 PM »

I mentioned that earlier.
Oh!  SO you did.

I'm going to have to try out this tutorial this weekend, try and work some of the snob out of me (will try and finish a haskell game I've been working on though to balance things out...).
Logged
Gnarf
Guest
« Reply #57 on: October 16, 2008, 04:09:11 PM »

Since the original source code is included in the .exe, giving variables short names will at least have one benefit: the download size will be slightly smaller.
Yeah. Though what I was getting at was that if nothing is compiled to any kind of intermediate representation, then the interpreter will have to look up variable names whenever they are used. Which involves comparing variable names with each other. And comparing strings is faster if the strings are shorter.

But my impression from earlier in this thread is that that's not how it works at all (not that I'd seriously advise doing that either way, but).
Logged
The-Imp
Guest
« Reply #58 on: October 16, 2008, 05:43:09 PM »

This is pretty useful, thanks!

 Cave Story
Logged
moi
Level 10
*****


DILF SANTA


View Profile WWW
« Reply #59 on: October 16, 2008, 06:27:49 PM »


I don't get the big fuss about decompilers.
Ask that to the guys who did Katakujin or Gang garrison 2 and got their games hacked and released by somebody else.
Logged

subsystems   subsystems   subsystems
Pages: 1 2 [3] 4 5 ... 11
Print
Jump to:  

Theme orange-lt created by panic