Minecraft Snapshot 12w17a

Started by Lazybones, April 26, 2012, 10:20:48 AM

Previous topic - Next topic

Tom

Bah, thats not the original source. Thats the compiled obfuscated source from the jar.
<Zapata Prime> I smell Stanley... And he smells good!!!

LennyLen

QuoteAlso I've been hanging around a bunch of people that make games.

What? Where?

Tom

Quote from: LennyLen on April 26, 2012, 07:31:28 PM
QuoteAlso I've been hanging around a bunch of people that make games.

What? Where?
Ok... Some people who make games, and a bunch that want to ;D
<Zapata Prime> I smell Stanley... And he smells good!!!

Thorin

#33
You need to read a little closer, I think.  That Minecraft Coder Pack has tools to take the compiled obfuscated and decompile and de-obfuscate it, then lets you edit it, then can recompile and re-obfuscate it.

Originally the modders were decompiling and then figuring out on their own what the obfuscated methods A(), B(), C() etc did.  MCP, from what I've read, unobfuscates it so you get SpawnCreeper(), BlowupUser(), and DestroyEquipment() methods instead of A(), B(), and C().

And no, those aren't the actual method names I don't think.  Although I haven't looked at the code directly, I've only looked at the tutorials on how to get the code unobfuscated so it's easy to work on.

An' yeah, aren't _most_ developers that write code for a living against freely distributing their source code?

edit: here's the readme for MCP: http://mcp.ocean-labs.de/index.php/MCP_Readme
Prayin' for a 20!

gcc thorin.c -pedantic -o Thorin
compile successful

Tom

Quote from: Thorin on April 27, 2012, 03:23:48 AM
You need to read a little closer, I think.  That Minecraft Coder Pack has tools to take the compiled obfuscated and decompile and de-obfuscate it, then lets you edit it, then can recompile and re-obfuscate it.

Originally the modders were decompiling and then figuring out on their own what the obfuscated methods A(), B(), C() etc did.  MCP, from what I've read, unobfuscates it so you get SpawnCreeper(), BlowupUser(), and DestroyEquipment() methods instead of A(), B(), and C().

And no, those aren't the actual method names I don't think.  Although I haven't looked at the code directly, I've only looked at the tutorials on how to get the code unobfuscated so it's easy to work on.
While it might be a bit deobfuscated, you can't repair the "damage" the compiler has done. You don't have the original code. A good compiler will transform the code such that once decompiled, its very /strange/ at first glance.

I'll try and take a look at it later and see what's up, but I expect it to be very odd, for two reasons.

Quote from: Thorin on April 27, 2012, 03:23:48 AM
An' yeah, aren't _most_ developers that write code for a living against freely distributing their source code?
I dunno, talk to the tens of thousands that work on open source software. Especially those that do it for a living.
<Zapata Prime> I smell Stanley... And he smells good!!!

Thorin

#35
Given that there are millions of developers in the world (hell, just in India alone), tens of thousands isn't that big a percentage.  However, I do know that one can make money writing / supporting open source software, just as one can write closed source software and give it away for free.

How many gaming companies write their games in an open-source way, though?  Some (many now?) will release an API and / or tools and / or the basic engines for modding, but I can't think of any that willingly help people who reverse engineer their work (there may be some, I don't know every gaming company in the world).

My experience with open source software creators (anecdotal, not scientific) has been that either they work for a big corporation (IBM) that is trying to commoditize the software to help sell other software or hardware, or they get paid for support and customization of the open source software the company wants to use.

So why would IBM pay its employees to help write software that can be downloaded for free (Linux), while a game developer would refuse to release source code for a free game?  Simple, commoditization.  If IBM makes the OS free and work well, then the OS no longer holds sway over hardware or other software purchase decisions.  This works similar to how retail stores use loss leaders to bring in customers, hoping the customers will buy other, profitable goods while they're in the store.  But the rule of commoditization is never commoditize your main product.  A game company's main product is their game(s).  They can't turn their game(s) into loss leaders, because they don't have other things for the customer to buy (okay, yes, they could make one game a loss leader to get you to buy other games).

Anyway, if you think the code is bad and you can do better, I'm pretty sure (based on actual tutorials I've watched) MCP lets you do exactly that.  So I guess...  Fire up Eclipse and let your code do the talking?

Me, I might gripe about glitching but I've been around source code and different types of coders long enough now to know that when someone says, "That'll be easy", it probably means they haven't spent enough time really considering the problem they're trying to solve.  So far in my professional life, there has ALWAYS been a black hole that wasn't even thought about that sucks up an extra 50% of the original estimate.  And if I didn't have kids usurping my time, I'd probably be trying MCP out now to see if I could make Minecraft better :)


Ah, here's a video tutorial that shows editing a core class, and the source in it doesn't look strange at all: http://youtu.be/NGLUpUiGcb0
Prayin' for a 20!

gcc thorin.c -pedantic -o Thorin
compile successful

Mr. Analog

WARNING!

This thread has wandered into flamewar territory, if you want to fight over the merits of Open Source vs Closed Source I suggest you move it out of the Minecraft forum.

Or better yet, discuss who's the better Captain: Picard or Kirk

Or better yet which Trek had the hotter babes...
By Grabthar's Hammer

Tom

Quote from: Thorin on April 27, 2012, 12:10:24 PM
Given that there are millions of developers in the world (hell, just in India alone), tens of thousands isn't that big a percentage.  However, I do know that one can make money writing / supporting open source software, just as one can write closed source software and give it away for free.

How many gaming companies write their games in an open-source way, though?  Some (many now?) will release an API and / or tools and / or the basic engines for modding, but I can't think of any that willingly help people who reverse engineer their work (there may be some, I don't know every gaming company in the world).

My experience with open source software creators (anecdotal, not scientific) has been that either they work for a big corporation (IBM) that is trying to commoditize the software to help sell other software or hardware, or they get paid for support and customization of the open source software the company wants to use.

So why would IBM pay its employees to help write software that can be downloaded for free (Linux), while a game developer would refuse to release source code for a free game?  Simple, commoditization.  If IBM makes the OS free and work well, then the OS no longer holds sway over hardware or other software purchase decisions.  This works similar to how retail stores use loss leaders to bring in customers, hoping the customers will buy other, profitable goods while they're in the store.  But the rule of commoditization is never commoditize your main product.  A game company's main product is their game(s).  They can't turn their game(s) into loss leaders, because they don't have other things for the customer to buy (okay, yes, they could make one game a loss leader to get you to buy other games).

Anyway, if you think the code is bad and you can do better, I'm pretty sure (based on actual tutorials I've watched) MCP lets you do exactly that.  So I guess...  Fire up Eclipse and let your code do the talking?

Me, I might gripe about glitching but I've been around source code and different types of coders long enough now to know that when someone says, "That'll be easy", it probably means they haven't spent enough time really considering the problem they're trying to solve.  So far in my professional life, there has ALWAYS been a black hole that wasn't even thought about that sucks up an extra 50% of the original estimate.  And if I didn't have kids usurping my time, I'd probably be trying MCP out now to see if I could make Minecraft better :)


Ah, here's a video tutorial that shows editing a core class, and the source in it doesn't look strange at all: http://youtu.be/NGLUpUiGcb0
I wouldn't say doing what minecraft is trying to do is necessarily /easy/. But prior to jeb taking over, almost no bugs ever got fixed. And when a release did include fixes, it added more annoying bugs than it fixed. And some of them have been incredibly stupid bugs.

That said, I've been spending some time thinking about what a minecraft game would need engine wise. I have some ideas. The hard part for me will be things like implementing the "marching cubes" algorithm, and building the geometry from that. Secondary to that, would be figuring out how to optimally load/save chunks, and how to optimally transfer changes across a network. Again I have some ideas, but I'll only really know how well it works once I've tried it all out. That said, I'm planning on making it possible to extend via lua.

Quote from: Mr. Analog on April 27, 2012, 01:33:12 PM
WARNING!

This thread has wandered into flamewar territory, if you want to fight over the merits of Open Source vs Closed Source I suggest you move it out of the Minecraft forum.

Or better yet, discuss who's the better Captain: Picard or Kirk

Or better yet which Trek had the hotter babes...
Meh, I didn't think he was trying to flame or troll.
<Zapata Prime> I smell Stanley... And he smells good!!!

Mr. Analog

It's waaaaaaaaaaaaaaaaaaaaay OFF topic

LOCKED THREAD MOVE ON

By Grabthar's Hammer

Tom

I think you're just a party pooper.  :P
<Zapata Prime> I smell Stanley... And he smells good!!!

Mr. Analog

Quote from: Tom on April 27, 2012, 01:40:30 PM
I think you're just a party pooper.  :P

Yes. But also I couldn't figure out a way to split the conversations without leading to patchy responses.

Just start a new thread and talk about it forever.
By Grabthar's Hammer