IIRC Mojang is using SCRUM as a development philosophy. It works by adding a user experience to the idea backlog, and developers grab a user experience from the backlog and implement it. The other big tenant is to add the concept early and then iterate on it in subsequent releases to flesh it out more/bug fix/etc. We see evidence of this with the NPCs, they are being added in the most simple form in 1.9 and will be iterated upon for 1.10. While this looks like (and could very well be) whimsical planning, it is also part of how this method works. It also means the "low hanging fruit" in the backlog also added in as well.
Pseudo side tangent: I think the snowman is a bigger deal than you think. Before snowmen minecraft didn't really support crafting by block placement (that I know of). This adds substantial, new functionality to the game. My hope is that this feature will be expanded upon and the snowman was something "simple" to show it off.
Python abstracts sockets and leaves a higher level interface. Makes things easy for a lot of uses but difficult for this. I have never used this library but it has finer control over python networking: http://www.secdev.org/projects/scapy/
atiaxi, one problem with your game (as amusing as it is!) it doesn't follow the point/counterpoint/refutedpoints of the conversation. While there is enough content in this thread to create any argument, some of it (imho) has been successfully refuted. A cousin of confirmation bias I guess.
I do have something that hasn't been said. It is amazing the number of people who read "planned" or "working on" features and reads it as "promised" and accuse the game of being overhyped when it falls short. I call it Molyneux Syndrome. There are any number of valid reasons why planned features are delayed or dropped:
Seemed like a good idea at the time: The idea seemed like a good idea at the time, but in prototyping the concept it didn't work with the other game features or was unfun.
Took longer than expected: Sometimes a feature was expected to require a lot of code was much more easy to implement, and sometimes a seemingly easy feature ends up rewriting half the engine. It leads to....
Priorities: Some features are just more important than others. I would personally consider the new terrain engine a higher priority than npcs in regards to impact on the existing game play (this is up for debate, just an example). Now some features are low hanging fruit and are easy to implement quickly so they might be thrown in before the next version. With finite development hours and things taking longer to code than expected some things just might not make the cut.
Impossible!: Some times a feature is just so prohibitive to make it isn't worth the development time. In Fable 1 Molyneux talked about having every tree grow dynamically in real time. They did actually work on it, but the time needed to optimize it so it didn't take 50% of the cpu time was not worth it, so they dropped the feature.
Also, I think there is a cultural difference. To make a gross generalization stereotype, Americans are much more workaholic centric compared to Scandinavians, where in the US if you arn't working 50 hour weeks you are doing it wrong and expected to cash out your PTO instead of taking it, while across the ponds if you work more than 40 you are told to get a life and required by law to take a 2 week vacation a year (I think that is France).
Also, while many of the grievances are the same, it seems like many people are regarding themselves as Notch,jeb_, et al as their employer instead of as their customer. It is this sense of entitlement that always bothers me.
Due to chunk loading lag I've seen two in my test world, although they are very rare and far apart. I personally didn't find a library in the one I explored.
I'm wondering if the fact that it's written in a virtual machine language might also be contributing to bandwidth issues.
Multiplayer games have existed for more than a decade now and honestly, there are games that track just as many entities which were better optimized than minecraft is.
Granted it's still in development, but the point is with the exception of the dynamic terrain generation part (which should only cause lag spike when new areas are "created"), there shouldn't be these sorts bandwidth issues.
I find a lot of these "explanations" are simply people reaching for excuses.
Again, there have been games in the past which required tracking just as many world entities and didn't have the same problems.
No. The specific programming language has no relationship to bandwidth used. This tells me you do not have much experience with coding or network.
I do not know of another game which tracks this many world object. Every block is a world object. As others have posted in this thread ad-nausium, every other game the world is preloaded or generated procedurally. In the TF2 game I just lost the server only has to send clients the position, rotation, and firings of 31 other people, plus the random sentry turret. When I join a minecraft game every block in every chunk has to be sent to me in addition to players and mobs.
These are not excuses, this is the reality of the nature of the game and of network programming.
Although I am wondering if a peer 2 peer system could work, something along the lines of bittorrent. The server provides a hash to preserve integrity to prevent other people being punks. However when a client requests a new zone the data comes from multiple sources.
If Notch is smart he is spending so much time on it so he can unify the code. From what I've been reading on these forums SP and SMP code is separate. If a feature or bug fix is coded for one it has to be coded again for the other. This is obviously not an efficient way of doing things. Most sp/mp games are pure multiplayer, even if you are playing single player. This means mp and sp uses the same code. I would hope that when Notch catches SMP up to SP he would ax the old SP code and cut development time in half.
Have you tried running your world using the vanilla minecraft server (obviously using a copy of your world save)? That way you can make sure if the problem is hey0 or with the server itself.
0
http://pastebin.com/99Xt5J5S
http://pastebin.com/PHXBNNWy
0
0
0
Pseudo side tangent: I think the snowman is a bigger deal than you think. Before snowmen minecraft didn't really support crafting by block placement (that I know of). This adds substantial, new functionality to the game. My hope is that this feature will be expanded upon and the snowman was something "simple" to show it off.
0
0
I do have something that hasn't been said. It is amazing the number of people who read "planned" or "working on" features and reads it as "promised" and accuse the game of being overhyped when it falls short. I call it Molyneux Syndrome. There are any number of valid reasons why planned features are delayed or dropped:
Also, while many of the grievances are the same, it seems like many people are regarding themselves as Notch,jeb_, et al as their employer instead of as their customer. It is this sense of entitlement that always bothers me.
0
0
0
0
0
But there is a hey0 mod which creates zip files: http://forum.hey0.net/showthread.php?tid=179
Just set up the config file to output it into your www directory.
0
No. The specific programming language has no relationship to bandwidth used. This tells me you do not have much experience with coding or network.
I do not know of another game which tracks this many world object. Every block is a world object. As others have posted in this thread ad-nausium, every other game the world is preloaded or generated procedurally. In the TF2 game I just lost the server only has to send clients the position, rotation, and firings of 31 other people, plus the random sentry turret. When I join a minecraft game every block in every chunk has to be sent to me in addition to players and mobs.
These are not excuses, this is the reality of the nature of the game and of network programming.
Although I am wondering if a peer 2 peer system could work, something along the lines of bittorrent. The server provides a hash to preserve integrity to prevent other people being punks. However when a client requests a new zone the data comes from multiple sources.
0
0
0