Think about it this way, does a farmer plant his seed and then go on vacation for 3 months or....does he weed and fertilize and spray for bugs and fix the fence to keep the sheep out day after day after day?
Sorry, that's a terrible example. The way the game currently works:
* Ignore wheat while mining nearby - wheat grows.
* Ignore wheat while mining farther away - wheat doesn't grow.
Realism is not happening here. And of course, there's all the other plants.
Re: Replacing tick-based mechanics with time-based mechanics. I considered this, and gameplay wise it's a good thing, but it does increase the amount of storage necessary, potentially by a considerable amount.
How so? The game is already keeping track of the overall progress made by the random ticks. It seems to me that the data is already there.
The spread of things like grass or ice may be neccessary to keep in tick form. The growth rate could be accelerated to one spread per tick for an appropriate period of time.
Rollback Post to RevisionRollBack
Mostly moved on. May check back a few times a year.
Are you aware of how mind-numbingly processor-intensive that would make this game?
Yeah, because its made with JAVA... Wouldn't be a bad idea for the xbox team to just completely rebuild minecraft in c++. At least then it would be ok to pretend performance issues are the reasons for certain issues... Java is horribly cpu intensive, and to be completely honest the WORSt language for a video game as expansive as this one. There's absolutely no reason that this game should clock a good deal of the same ram as Elder Scrolls.
I love this game, but I would seriously pay full 60 dollar game price on top of the 15 I paid already if they would rewrite it with a better, smoother language...
Yeah, because its made with JAVA... Wouldn't be a bad idea for the xbox team to just completely rebuild minecraft in c++. At least then it would be ok to pretend performance issues are the reasons for certain issues... Java is horribly cpu intensive, and to be completely honest the WORSt language for a video game as expansive as this one. There's absolutely no reason that this game should clock a good deal of the same ram as Elder Scrolls.
I've heard Java is not anywhere near as bad as people are making it out to be (or as it once was.) A high RAM cost is to be expected since there are hundreds of thousands of blocks loaded at once, which are the very things that make the terrain so malleable and enjoyable.
I think the majority of the CPU consumption is just the result of Notch's sloppy coding. Remember how some updates ran really poorly, and then they got sort of fixed later?
Rollback Post to RevisionRollBack
Mostly moved on. May check back a few times a year.
items which grow should get some type of meta data containing time so we don't have to stand next to our farms in order for them to grow.
I agree with this wholeheartedly, but I doubt Minecraft can ever incorporate such functionality because of the way chunks are loaded/unloaded.
Edit: Re Java vs. C/C++
Think about it this way; Java is a highly flexible language. Its syntax allows you to do in one line of code what could take 3 or 4 lines of code with C/C++. This is both its strength and its weakness IMO, because now you don't know how the assembler will treat that line of Java code. And if you think of a way to do something better in C well, tough, it'll still take one line of Java and the assembler will still treat it the same way. At the same time it makes it easier for a programmer to use, but it also opens the door to abuse...
Now, C/C++ (C is by far and large my favorite) are much more structured than Java and one line of code corresponds to a memory operation and/or calculation or a comparison operation and/or a calculation. And that's it, that's the extent of what you can do with one line of code. It makes it harder to write brand new programs quickly, but it also forces you to think more about what you're typing down and how it'll behave when you compile it and run it on a computer.
I am biased because I lost a programming competition miserably when my teammates spent 4 hours flailing about with a Java program that never worked. 4 hours was all we had to get 10 programs working, and we finished 0 out of 10 when it was all said and done. I know nothing about Java, but the program was relatively straight forward and my teammates were a junior and senior in college while I was a freshman in college. You'd think they would have known what they were doing having picked Java as "their language." Speaks volumes about either the language or my teammates.
Well guess what, I'm a game player, and I say just kill pigmen until your wart grows. Head out and kill some ghasts, there are many things you can do while waiting on that wart to grow. Make sure that you make a big enough farm, then, I promise you will have more than you know what to do with. We started not long ago, and we have 15 stacks already, and potions are worth it if you ask me, I don't think they are hard at all. Makes it so easy to kill at xp farms, and swim in lava, run faster, just my opinion, thanks for listening.
Thanks, I'll try that. But it doesn't mather that much anymore I've killed the enderdragon. Now i use that world to test new stuff.
Think about it this way; Java is a highly flexible language. Its syntax allows you to do in one line of code what could take 3 or 4 lines of code with C/C++. This is both its strength and its weakness IMO, because now you don't know how the assembler will treat that line of Java code. And if you think of a way to do something better in C well, tough, it'll still take one line of Java and the assembler will still treat it the same way. At the same time it makes it easier for a programmer to use, but it also opens the door to abuse...
I've rarely had to use 3 or 4 lines of C++ to do what I could do with 1 line of Java. The reverse is actually more often true; the control that C++ gives can allow you to do something in a less round-about way than Java would allow. Passing values by reference or as a pointer instead of by value, while not usually my bag of tea, is a much easier way to solve the "This function needs to return three values" problem than anything Java offers.
The real downside to C++ is that it gives you enough control to hang yourself with. You're more likely to have trouble getting it to compile because of some header/class declaration issue, and you're more likely to have some subtle logic issue that crashes the program.
Now, C/C++ (C is by far and large my favorite) are much more structured than Java and one line of code corresponds to a memory operation and/or calculation or a comparison operation and/or a calculation.
Have you ever written in assembly? Something as simple as a function call in C looks like this (working from memory here):
-Push any values in registers that you want preserved onto the stack
-Push argument 1 onto the stack
-Push argument 2 onto the stack
-Push space for return value onto the stack
-Push return address onto the stack
-Jump to memory address of function
Even something as simple as VarX = VarY is 2-4 lines of assembly depending on the instruction set.
VarX = VarY*10 + 1 works out to even more.
Operator overload is not possible in Java and, if not abused, makes C++ code clear and concise.
Ah, yes, haven't worked with Java in a while, so I forgot about that one. One of my other "favorites" with Java is having to explicitly catch a thrown exception for every function all the way up the stack instead of just letting the function that actually needs to know that something failed catch it and deal with it.
When I was watching my teammates programming they were trying to parse a string using some type of function that would have taken considerably more code to implement in C++, and they were doing it within one line of API.
I haven't done much coding with C++ and none with Java; I am most comfortable with C, though I like cin/cout from C++. Even looking at Java code for me is a disturbing experience. No, I have not seen what C code looks like to the assembler and I can't program in Assembly. Unless you want me to brick something of course. :wink.gif:
When I was watching my teammates programming they were trying to parse a string using some type of function that would have taken considerably more code to implement in C++, and they were doing it within one line of API.
Chances are, there was a similar function available in C++ that they just didn't know about.
String manipulation is such a common, general-purpose programming task that pretty much all languages nowadays have a variety of built-in functions for it.
Indeed, as I was trying to convince my teammates to use strtok from C to get the job done. (Unfortunately I don't remember the syntax associated with this particular API so I really wasn't much help. We should have been expecting to do tons of string manipulation though. Oh well, better luck next year.)
How so? The game is already keeping track of the overall progress made by the random ticks. It seems to me that the data is already there.
The spread of things like grass or ice may be neccessary to keep in tick form. The growth rate could be accelerated to one spread per tick for an appropriate period of time.
For furnaces, the actual time spent is tracked, but for things like wheat, I don't believe that it is. Each block of wheat simply has a 1/X chance to grow a stage every tick - the total number of ticks spent is not currently tracked, and would require another stored value per block. That said, I think think we're talking about the same end result - the delta time is applied to the wheat, growing it one or more stages instantly.
Re: Java vs C++ ... it doesn't even matter for this purpose. The amount of added processing is not significant. We're talking about adding or not adding a single suitcase to a moving truck full of furniture.
The thing is, is that potions are not worth it if you are playing SSP. Potions are pretty much useless in singleplayer.
In SSP, there is no need for potions. There is something called patience, and it will help you solve your problem. If you patient enough to wait in the nether, then so be it. Lock yourself in some kind of nether-base-thingy, and you can do you homework, read a book, watch TV/youtube, or just go AFK for a while. Just waiting is something that you need to do in the overworld anyway, so why not do it in the nether?
If you are in SMP, then it is somewhat worth it to get potions. If you have potions, that it will offer and extreme advantage over your opponent, because a simple strength potion can turn you into a very powerful adversary. A Splash Potion Of Instant Damage II can help so much in a fight, and a potion of poison can definitely turn the tide. But in SSP, there is no reason.
In SSP, the thing is, is that there is no one that stands in your way. It's just you, forever alone. Sure, a potion can be useful against your occasional creeper or zombie, but if you are that far in the game then you probably don't have to worry about them anyway. A potion of Fire Resistance is fun if you want to waste your time to go swimming in lava, but what's the point of that? In the nether, there is nothing under there anyway, and in the overworld anything you mine will be burned before you collect it.
* Ignore wheat while mining nearby - wheat grows.
* Ignore wheat while mining farther away - wheat doesn't grow.
Realism is not happening here. And of course, there's all the other plants.
The spread of things like grass or ice may be neccessary to keep in tick form. The growth rate could be accelerated to one spread per tick for an appropriate period of time.
Mostly moved on. May check back a few times a year.
Yeah, because its made with JAVA... Wouldn't be a bad idea for the xbox team to just completely rebuild minecraft in c++. At least then it would be ok to pretend performance issues are the reasons for certain issues... Java is horribly cpu intensive, and to be completely honest the WORSt language for a video game as expansive as this one. There's absolutely no reason that this game should clock a good deal of the same ram as Elder Scrolls.
I love this game, but I would seriously pay full 60 dollar game price on top of the 15 I paid already if they would rewrite it with a better, smoother language...
I think the majority of the CPU consumption is just the result of Notch's sloppy coding. Remember how some updates ran really poorly, and then they got sort of fixed later?
Mostly moved on. May check back a few times a year.
I agree with this wholeheartedly, but I doubt Minecraft can ever incorporate such functionality because of the way chunks are loaded/unloaded.
Edit: Re Java vs. C/C++
Think about it this way; Java is a highly flexible language. Its syntax allows you to do in one line of code what could take 3 or 4 lines of code with C/C++. This is both its strength and its weakness IMO, because now you don't know how the assembler will treat that line of Java code. And if you think of a way to do something better in C well, tough, it'll still take one line of Java and the assembler will still treat it the same way. At the same time it makes it easier for a programmer to use, but it also opens the door to abuse...
Now, C/C++ (C is by far and large my favorite) are much more structured than Java and one line of code corresponds to a memory operation and/or calculation or a comparison operation and/or a calculation. And that's it, that's the extent of what you can do with one line of code. It makes it harder to write brand new programs quickly, but it also forces you to think more about what you're typing down and how it'll behave when you compile it and run it on a computer.
I am biased because I lost a programming competition miserably when my teammates spent 4 hours flailing about with a Java program that never worked. 4 hours was all we had to get 10 programs working, and we finished 0 out of 10 when it was all said and done. I know nothing about Java, but the program was relatively straight forward and my teammates were a junior and senior in college while I was a freshman in college. You'd think they would have known what they were doing having picked Java as "their language." Speaks volumes about either the language or my teammates.
Thanks, I'll try that. But it doesn't mather that much anymore I've killed the enderdragon. Now i use that world to test new stuff.
I've rarely had to use 3 or 4 lines of C++ to do what I could do with 1 line of Java. The reverse is actually more often true; the control that C++ gives can allow you to do something in a less round-about way than Java would allow. Passing values by reference or as a pointer instead of by value, while not usually my bag of tea, is a much easier way to solve the "This function needs to return three values" problem than anything Java offers.
The real downside to C++ is that it gives you enough control to hang yourself with. You're more likely to have trouble getting it to compile because of some header/class declaration issue, and you're more likely to have some subtle logic issue that crashes the program.
Have you ever written in assembly? Something as simple as a function call in C looks like this (working from memory here):
-Push any values in registers that you want preserved onto the stack
-Push argument 1 onto the stack
-Push argument 2 onto the stack
-Push space for return value onto the stack
-Push return address onto the stack
-Jump to memory address of function
Even something as simple as VarX = VarY is 2-4 lines of assembly depending on the instruction set.
VarX = VarY*10 + 1 works out to even more.
Ah, yes, haven't worked with Java in a while, so I forgot about that one. One of my other "favorites" with Java is having to explicitly catch a thrown exception for every function all the way up the stack instead of just letting the function that actually needs to know that something failed catch it and deal with it.
I haven't done much coding with C++ and none with Java; I am most comfortable with C, though I like cin/cout from C++. Even looking at Java code for me is a disturbing experience. No, I have not seen what C code looks like to the assembler and I can't program in Assembly. Unless you want me to brick something of course. :wink.gif:
Chances are, there was a similar function available in C++ that they just didn't know about.
String manipulation is such a common, general-purpose programming task that pretty much all languages nowadays have a variety of built-in functions for it.
Re: Java vs C++ ... it doesn't even matter for this purpose. The amount of added processing is not significant. We're talking about adding or not adding a single suitcase to a moving truck full of furniture.
In SSP, there is no need for potions. There is something called patience, and it will help you solve your problem. If you patient enough to wait in the nether, then so be it. Lock yourself in some kind of nether-base-thingy, and you can do you homework, read a book, watch TV/youtube, or just go AFK for a while. Just waiting is something that you need to do in the overworld anyway, so why not do it in the nether?
If you are in SMP, then it is somewhat worth it to get potions. If you have potions, that it will offer and extreme advantage over your opponent, because a simple strength potion can turn you into a very powerful adversary. A Splash Potion Of Instant Damage II can help so much in a fight, and a potion of poison can definitely turn the tide. But in SSP, there is no reason.
In SSP, the thing is, is that there is no one that stands in your way. It's just you, forever alone. Sure, a potion can be useful against your occasional creeper or zombie, but if you are that far in the game then you probably don't have to worry about them anyway. A potion of Fire Resistance is fun if you want to waste your time to go swimming in lava, but what's the point of that? In the nether, there is nothing under there anyway, and in the overworld anything you mine will be burned before you collect it.