Righteous Wrath Online Community

General => Game Chat => Minecraft => Topic started by: Lazybones on April 26, 2012, 10:20:48 AM

Title: Minecraft Snapshot 12w17a
Post by: Lazybones on April 26, 2012, 10:20:48 AM
http://www.mojang.com/2012/04/minecraft-snapshot-12w17a/

    Added editable books
    Wooden half slabs in four colors (and they act as wood instead of stone)
    Bug fixing and tweaks, notably about entity collisions, ?picking blocks? (creative mode), and chat
    Some other, censored stuff
Title: Re: Minecraft Snapshot 12w17a
Post by: Mr. Analog on April 26, 2012, 10:24:02 AM
Editable books! does this mean the end of literal "Wall of Text" in Adventure maps?
Title: Re: Minecraft Snapshot 12w17a
Post by: Lazybones on April 26, 2012, 10:25:34 AM
Quote from: Mr. Analog on April 26, 2012, 10:24:02 AM
Editable books! does this mean the end of literal "Wall of Text" in Adventure maps?

Probably could leave a box with the SERVER RULES, near spawn city with a sigh that says READ ME!

Also of note Throin should be happy that the slab colours have been updated.
Title: Re: Minecraft Snapshot 12w17a
Post by: Mr. Analog on April 26, 2012, 10:27:45 AM
One thing that needs fixing: Exploding boats!

Seriously, you look at a boat and it falls apart and you don't even get the right material to rebuild it!
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 11:38:10 AM
Oh man if they finally fixed mobs being able to escape from fences doors, and enclosed rooms... AWESOME
Title: Re: Minecraft Snapshot 12w17a
Post by: Thorin on April 26, 2012, 11:42:39 AM
Quote from: Lazybones on April 26, 2012, 10:20:48 AM
    Wooden half slabs in four colors

DAMMIT!  I'll be rebuilding the roof over the D line when that gets released, then :(

Does this require a server update?
Title: Re: Minecraft Snapshot 12w17a
Post by: Lazybones on April 26, 2012, 11:43:51 AM
Quote from: Tom on April 26, 2012, 11:38:10 AM
Oh man if they finally fixed mobs being able to escape from fences doors, and enclosed rooms... AWESOME

Ya, every time I log in my imprisoned villagers spill out then magically snap back to their original location
Title: Re: Minecraft Snapshot 12w17a
Post by: Thorin on April 26, 2012, 11:53:53 AM
Quote from: Tom on April 26, 2012, 11:38:10 AM
Oh man if they finally fixed mobs being able to escape from fences doors, and enclosed rooms... AWESOME

HAHA yeah right they'll fix that, it's a "feature".  Allowing four colours on wood is probably easier to code than stopping mobs from going through transparent objects, so I can guess what coding is getting done.
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 12:24:01 PM
Quote from: Thorin on April 26, 2012, 11:53:53 AM
Quote from: Tom on April 26, 2012, 11:38:10 AM
Oh man if they finally fixed mobs being able to escape from fences doors, and enclosed rooms... AWESOME

HAHA yeah right they'll fix that, it's a "feature".  Allowing four colours on wood is probably easier to code than stopping mobs from going through transparent objects, so I can guess what coding is getting done.
All they need to do is store an extra flag on objects, one if its transparent, and one if it collides with other objects.
Title: Re: Minecraft Snapshot 12w17a
Post by: Mr. Analog on April 26, 2012, 12:31:21 PM
Quote from: Tom on April 26, 2012, 12:24:01 PM
Quote from: Thorin on April 26, 2012, 11:53:53 AM
Quote from: Tom on April 26, 2012, 11:38:10 AM
Oh man if they finally fixed mobs being able to escape from fences doors, and enclosed rooms... AWESOME

HAHA yeah right they'll fix that, it's a "feature".  Allowing four colours on wood is probably easier to code than stopping mobs from going through transparent objects, so I can guess what coding is getting done.
All they need to do is store an extra flag on objects, one if its transparent, and one if it collides with other objects.

I'm actually pretty sure the "flexible" detection is a feature so that you can escape from things like water/lava/landslides
Title: Re: Minecraft Snapshot 12w17a
Post by: Lazybones on April 26, 2012, 12:43:41 PM
Quote from: Mr. Analog on April 26, 2012, 12:31:21 PM
I'm actually pretty sure the "flexible" detection is a feature so that you can escape from things like water/lava/landslides

All the blocks are blocks... Any that are transparent or an object that doesn't look like a block but well is a block don't cause suffication damage, thus it is easier for both the player and mobs to escape them

This is why you don't suffocate when climbing a ladder or if your minecart goes in a one block space with a glass block above it. You are always occupying a two blocks minimum.

I found by swapping out glass for another block type imprisoned NPCs jumped around less but I also had random deaths on log in.
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 01:26:27 PM
Quote from: Mr. Analog on April 26, 2012, 12:31:21 PM
Quote from: Tom on April 26, 2012, 12:24:01 PM
Quote from: Thorin on April 26, 2012, 11:53:53 AM
Quote from: Tom on April 26, 2012, 11:38:10 AM
Oh man if they finally fixed mobs being able to escape from fences doors, and enclosed rooms... AWESOME

HAHA yeah right they'll fix that, it's a "feature".  Allowing four colours on wood is probably easier to code than stopping mobs from going through transparent objects, so I can guess what coding is getting done.
All they need to do is store an extra flag on objects, one if its transparent, and one if it collides with other objects.

I'm actually pretty sure the "flexible" detection is a feature so that you can escape from things like water/lava/landslides
Each block type could easily be handled. Code is rather flexible that way. Heck to use the two flag approach and still keep the "not suffocating" feature, just check for both at once, and you're golden.
Title: Re: Minecraft Snapshot 12w17a
Post by: Thorin on April 26, 2012, 02:13:20 PM
Take the example of a fence block, though - the solid, impassable object is in the middle, and you're able to stand in part of the block on your side of the fence.  The only way to stop anyone from passing through is to keep track of which side of the fence they came from to know which side of the block they can enter and leave at will and which side they should never be able to get to.

See, not quite so simple as just checking for one flag or two flags.

That said, I sure wouldn't mind if they applied some brainpower to this problem.  It'd probably alleviate the monsters glitching through solid walls, as well.
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 02:15:05 PM
Quote from: Thorin on April 26, 2012, 02:13:20 PM
Take the example of a fence block, though - the solid, impassable object is in the middle, and you're able to stand in part of the block on your side of the fence.  The only way to stop anyone from passing through is to keep track of which side of the fence they came from to know which side of the block they can enter and leave at will and which side they should never be able to get to.

See, not quite so simple as just checking for one flag or two flags.

That said, I sure wouldn't mind if they applied some brainpower to this problem.  It'd probably alleviate the monsters glitching through solid walls, as well.
Blocks also have an associated collision shape. so if its solid, collisions will be checked against the collision shape.
Title: Re: Minecraft Snapshot 12w17a
Post by: Thorin on April 26, 2012, 02:25:51 PM
You sound like you've looked at the source code.  Maybe I should do that as well before further conjecturing on what they could / should change / fix :)
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 02:34:11 PM
Quote from: Thorin on April 26, 2012, 02:25:51 PM
You sound like you've looked at the source code.  Maybe I should do that as well before further conjecturing on what they could / should change / fix :)
Not looked at it, but many of the blocks and objects have collision shapes. At one point the collision shape was removed from ladders (or signs)? Then it was added back. Also I've been hanging around a bunch of people that make games. This is how its typically done :)
Title: Re: Minecraft Snapshot 12w17a
Post by: Thorin on April 26, 2012, 03:15:42 PM
You want to explore the Minecraft Coder Pack (http://www.minecraftwiki.net/wiki/Minecraft_Coder_Pack) :)

My couple of years at a GIS company taught me that object collision detection code starts off really simple as long as everything is a four-sided block, but gets very complicated as soon as you allow non-regular shapes.  For instance, dimples on the surface of even one of the objects makes it very hard to determine if there actually was contact, or just closeness.

Nevertheless, as I said before, I wouldn't mind if they worked on collision detection code to (hopefully) stop the glitching.
Title: Re: Minecraft Snapshot 12w17a
Post by: Darren Dirt on April 26, 2012, 03:21:06 PM
Quote from: Mr. Analog on April 26, 2012, 10:24:02 AM
Editable books! does this mean the end of literal "Wall of Text" in Adventure maps?

make sure you don't misspeel dialooooj... I mean dialogue!


Title: Re: Minecraft Snapshot 12w17a
Post by: Mr. Analog on April 26, 2012, 03:21:52 PM
Quote from: Darren Dirt on April 26, 2012, 03:21:06 PM
Quote from: Mr. Analog on April 26, 2012, 10:24:02 AM
Editable books! does this mean the end of literal "Wall of Text" in Adventure maps?

make sure you don't misspeel dialooooj... I mean dialogue!

Hahah Ah! More Dialooj.
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 03:23:24 PM
Quote from: Thorin on April 26, 2012, 03:15:42 PM
You want to explore the Minecraft Coder Pack (http://www.minecraftwiki.net/wiki/Minecraft_Coder_Pack) :)

My couple of years at a GIS company taught me that object collision detection code starts off really simple as long as everything is a four-sided block, but gets very complicated as soon as you allow non-regular shapes.  For instance, dimples on the surface of even one of the objects makes it very hard to determine if there actually was contact, or just closeness.
Most things skimp on accuracy. In most cases you can get away with varying sizes of rectangles. Other times you might want to do circles, or polygons. Circles aren't too bad. Polygon collisions is a bit more complex, but its not /that/ bad. That tends to involve line segment tests.

Quote from: Thorin on April 26, 2012, 03:15:42 PM
Nevertheless, as I said before, I wouldn't mind if they worked on collision detection code to (hopefully) stop the glitching.
Indeed.


Quote from: Mr. Analog on April 26, 2012, 03:21:52 PM
Quote from: Darren Dirt on April 26, 2012, 03:21:06 PM
Quote from: Mr. Analog on April 26, 2012, 10:24:02 AM
Editable books! does this mean the end of literal "Wall of Text" in Adventure maps?

make sure you don't misspeel dialooooj... I mean dialogue!

Hahah Ah! More Dialooj.
Ahaha. Dialouge!
Title: Re: Minecraft Snapshot 12w17a
Post by: Mr. Analog on April 26, 2012, 03:25:07 PM
I think that's been one of my favourite adventures, alongside Deep Space Turtle Chase :)
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 03:30:09 PM
Quote from: Mr. Analog on April 26, 2012, 03:25:07 PM
I think that's been one of my favourite adventures, alongside Deep Space Turtle Chase :)
You're going to sigh... But I can't remember which one that was. I've watched so many of them...
Title: Re: Minecraft Snapshot 12w17a
Post by: Darren Dirt on April 26, 2012, 03:37:11 PM

Quote from: Tom on April 26, 2012, 03:30:09 PM
Quote from: Mr. Analog on April 26, 2012, 03:25:07 PM
I think that's been one of my favourite adventures, alongside Deep Space Turtle Chase :)
You're going to sigh... But I can't remember which one that was. I've watched so many of them...

part 1: http://www.youtube.com/watch?v=ZsRqhBTe8Mk

and ... now I have something to watch during my lunchtimes next week  8)  ( parts x 12-18 minutes each = yup pretty much all of next week :wheee: )
Title: Re: Minecraft Snapshot 12w17a
Post by: Thorin on April 26, 2012, 03:56:41 PM
Quote from: Tom on April 26, 2012, 03:23:24 PM
Quote from: Thorin on April 26, 2012, 03:15:42 PM
You want to explore the Minecraft Coder Pack (http://www.minecraftwiki.net/wiki/Minecraft_Coder_Pack) :)

My couple of years at a GIS company taught me that object collision detection code starts off really simple as long as everything is a four-sided block, but gets very complicated as soon as you allow non-regular shapes.  For instance, dimples on the surface of even one of the objects makes it very hard to determine if there actually was contact, or just closeness.

Most things skimp on accuracy. In most cases you can get away with varying sizes of rectangles. Other times you might want to do circles, or polygons. Circles aren't too bad. Polygon collisions is a bit more complex, but its not /that/ bad. That tends to involve line segment tests.

That's one of those things that's easy to say, but experience will teach you that skimping on accuracy just gets you complaints, and not skimping on accuracy is hard.

Here's an example: In an area bounded by what I would consider my volume of hair, I want to know if a certain cubic micrometer is hair or air.  I could brute-force it and check every hair, but I want this entire check to take no more than 500 microseconds and I can probably accomplish 2 checks per microsecond.  So first I remove all hairs that do not intersect any of the X, Y, and Z axes of the cubic micrometer, since if they don't intersect any at all they don't count.  To make it easier I instead select all the hairs that _do_ intersect all of the X, Y, and Z axes of the cubic micrometer, since that's the only way they'll be able to occupy that particular micrometer.  But hairs can bend, and they could bend in such a way that they occupy one of the axes at a time but not the rest.  So now for all those hairs left, I have to check for each of the three axes where the hair intersects them in respect to the other axes.  As the hairs are stored as bendable tubal shapes not straight lines, I can't simply say "where X is this and Y is that and Z is this other number".  This is normally done with very short straight segments, but the longer the segments the less accurate the final result.

And accuracy is probably what is missing from Minecraft's collision detection code, probably causing the glitching.  Then again, if it's made super accurate then it would take longer than the 50ms of a Minecraft tick just to do the collision detection for Steve and a couple creepers.
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 04:05:44 PM
Quote from: Thorin on April 26, 2012, 03:56:41 PM
Quote from: Tom on April 26, 2012, 03:23:24 PM
Quote from: Thorin on April 26, 2012, 03:15:42 PM
You want to explore the Minecraft Coder Pack (http://www.minecraftwiki.net/wiki/Minecraft_Coder_Pack) :)

My couple of years at a GIS company taught me that object collision detection code starts off really simple as long as everything is a four-sided block, but gets very complicated as soon as you allow non-regular shapes.  For instance, dimples on the surface of even one of the objects makes it very hard to determine if there actually was contact, or just closeness.

Most things skimp on accuracy. In most cases you can get away with varying sizes of rectangles. Other times you might want to do circles, or polygons. Circles aren't too bad. Polygon collisions is a bit more complex, but its not /that/ bad. That tends to involve line segment tests.

That's one of those things that's easy to say, but experience will teach you that skimping on accuracy just gets you complaints, and not skimping on accuracy is hard.

Here's an example: In an area bounded by what I would consider my volume of hair, I want to know if a certain cubic micrometer is hair or air.  I could brute-force it and check every hair, but I want this entire check to take no more than 500 microseconds and I can probably accomplish 2 checks per microsecond.  So first I remove all hairs that do not intersect any of the X, Y, and Z axes of the cubic micrometer, since if they don't intersect any at all they don't count.  To make it easier I instead select all the hairs that _do_ intersect all of the X, Y, and Z axes of the cubic micrometer, since that's the only way they'll be able to occupy that particular micrometer.  But hairs can bend, and they could bend in such a way that they occupy one of the axes at a time but not the rest.  So now for all those hairs left, I have to check for each of the three axes where the hair intersects them in respect to the other axes.  As the hairs are stored as bendable tubal shapes not straight lines, I can't simply say "where X is this and Y is that and Z is this other number".  This is normally done with very short straight segments, but the longer the segments the less accurate the final result.

And accuracy is probably what is missing from Minecraft's collision detection code, probably causing the glitching.  Then again, if it's made super accurate then it would take longer than the 50ms of a Minecraft tick just to do the collision detection for Steve and a couple creepers.
Most games do not need nor want perfectly accurate collision detection. It is incredibly expensive to do. So what you do, is build up a set of bounding "boxes" or "spheres" or "shapes" and test against those. A single object may have more than one collision component. It gets sorta close to perfect, but not so close that you have to start checking every pixel.

Some accuracy might be missing from MCs code, but I think its more like the AI is incredibly broken, and doesn't fully respect the collision bounds. My impression of the original code base (before jeb started on it, he seems to have been doing a good job improving things and fixing bugs), is that it is a pile of hacks piled on top of more hacks.
Title: Re: Minecraft Snapshot 12w17a
Post by: Thorin on April 26, 2012, 04:27:51 PM
Yes, I fully understand hit boxes and collision bounding boxes.  And using boxes makes things quick and easy (and explains why I can hit you in MvC3 without my character touching yours).  Your previous comment made it sound like you thought collision detection was easy - it is if you are okay with lacking accuracy, but polygonal shapes, especially with holes, are actually quite hard.  Which is why, as you say, most games switch to rectangles for everything (that's why in Black Ops (or MW3?) you shoot at the ground in front of the guy and still kill him).

While you may ultimately be correct about the state of the Minecraft code back when Notch was working on it, I strongly suggest you look at the code first before passing judgement.  Flipping on the idiot switch without even looking at the code is a terrible habit to have if you plan to program for a living, as you will come across a _lot_ of code that for the first twenty read-throughs will seem like a real WTF - then you change it and everything breaks, and then you learn about some subtle bug in the OS that this WTF code works around.

And at that GIS shop I worked at, we _did_ have to be super-accurate about intersecting objects, as part of the software figured out which strand of fiber should be looped in which direction without contacting certain other materials.
Title: Re: Minecraft Snapshot 12w17a
Post by: Mr. Analog on April 26, 2012, 04:35:21 PM
Reminds me of this vid for hitbox in TF2 (I think it's slightly different now)
http://youtu.be/9TJmiDcsxdA

Cool nonetheless, also helpful if you're a newbie Sniper
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 04:36:51 PM
Quote from: Thorin on April 26, 2012, 04:27:51 PM
Yes, I fully understand hit boxes and collision bounding boxes.  And using boxes makes things quick and easy (and explains why I can hit you in MvC3 without my character touching yours).  Your previous comment made it sound like you thought collision detection was easy - it is if you are okay with lacking accuracy, but polygonal shapes, especially with holes, are actually quite hard.  Which is why, as you say, most games switch to rectangles for everything (that's why in Black Ops (or MW3?) you shoot at the ground in front of the guy and still kill him).

While you may ultimately be correct about the state of the Minecraft code back when Notch was working on it, I strongly suggest you look at the code first before passing judgement.  Flipping on the idiot switch without even looking at the code is a terrible habit to have if you plan to program for a living, as you will come across a _lot_ of code that for the first twenty read-throughs will seem like a real WTF - then you change it and everything breaks, and then you learn about some subtle bug in the OS that this WTF code works around.

And at that GIS shop I worked at, we _did_ have to be super-accurate about intersecting objects, as part of the software figured out which strand of fiber should be looped in which direction without contacting certain other materials.
It's hard to take a look at closed source code ;) Generally though you can tell the quality of code by using the program, noting the types of bugs, and how long and how many tries it takes to fix.

And I do realize there is a lot of WTF code out there. It doesn't really excuse many of the bugs that have plagued Minecraft though. There is a difference between complex and hairy code, and pure buggy code.
Title: Re: Minecraft Snapshot 12w17a
Post by: Thorin on April 26, 2012, 05:44:39 PM
Quote from: Thorin on April 26, 2012, 03:15:42 PM
You want to explore the Minecraft Coder Pack (http://www.minecraftwiki.net/wiki/Minecraft_Coder_Pack) :)

Minecraft's _complete source code_ is available to anyone who wants it.  Notch did this so that modders could more easily mod Minecraft, instead of having to try and de-obfuscate on their own and get it wrong.

And because of that particular attitude, I actually feel more compelled to pay for a copy rather than pirate it - he clearly is trying to follow the "do no evil / help your users enjoy your software" ideals.  Which doesn't necessarily make him a good coder, but certainly a better company to interact with than many profits-focused large companies.

Anyway, if you think you can make it better, get MCP, crack open the source, and fix it.  Re-compile and re-obfuscate, then release as a mod.  Or alternately don't release as a mod but send to Mojang as a fan-created patch.  I'm sure they wouldn't mind if it actually fixes the problems.
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 05:51:12 PM
Quote from: Thorin on April 26, 2012, 05:44:39 PM
Quote from: Thorin on April 26, 2012, 03:15:42 PM
You want to explore the Minecraft Coder Pack (http://www.minecraftwiki.net/wiki/Minecraft_Coder_Pack) :)

Minecraft's _complete source code_ is available to anyone who wants it.  Notch did this so that modders could more easily mod Minecraft, instead of having to try and de-obfuscate on their own and get it wrong.

And because of that particular attitude, I actually feel more compelled to pay for a copy rather than pirate it - he clearly is trying to follow the "do no evil / help your users enjoy your software" ideals.  Which doesn't necessarily make him a good coder, but certainly a better company to interact with than many profits-focused large companies.

Anyway, if you think you can make it better, get MCP, crack open the source, and fix it.  Re-compile and re-obfuscate, then release as a mod.  Or alternately don't release as a mod but send to Mojang as a fan-created patch.  I'm sure they wouldn't mind if it actually fixes the problems.
Wow. That is not something I expected. Notch was /very/ against that to begin with. I might just have to mess around with it for a bit. For one, I want a god damn mine shaft elevator. And a mine cart sensor that senses if someone is in the cart or not.
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 05:55:17 PM
Bah, thats not the original source. Thats the compiled obfuscated source from the jar.
Title: Re: Minecraft Snapshot 12w17a
Post by: LennyLen on April 26, 2012, 07:31:28 PM
QuoteAlso I've been hanging around a bunch of people that make games.

What? Where?
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 26, 2012, 09:01:16 PM
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
Title: Re: Minecraft Snapshot 12w17a
Post by: 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.

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
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 27, 2012, 08:56:38 AM
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.
Title: Re: Minecraft Snapshot 12w17a
Post by: 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 (http://www.investopedia.com/terms/c/commoditize.asp).  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 (http://youtu.be/NGLUpUiGcb0)
Title: Re: Minecraft Snapshot 12w17a
Post by: 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...
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 27, 2012, 01:36:32 PM
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 (http://www.investopedia.com/terms/c/commoditize.asp).  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 (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.
Title: Re: Minecraft Snapshot 12w17a
Post by: Mr. Analog on April 27, 2012, 01:39:49 PM
It's waaaaaaaaaaaaaaaaaaaaay OFF topic

LOCKED THREAD MOVE ON

(http://i.imgur.com/3yCnf.png)
Title: Re: Minecraft Snapshot 12w17a
Post by: Tom on April 27, 2012, 01:40:30 PM
I think you're just a party pooper.  :P
Title: Re: Minecraft Snapshot 12w17a
Post by: Mr. Analog on April 27, 2012, 02:33:10 PM
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.