Minetest, a C/C++ GNU Minecraft
- Racooknight
- Posts: 45
- Joined: Thu Aug 23, 2012 2:35 am
Minetest, a C/C++ GNU Minecraft
http://minetest.com/
http://forum.minetest.net/
The website proper is down at the moment, but the forums are online. I just checked some of the mods, and was struck by that one, which allows for the player to create close to any non-cubic block for any purpose of his liking.
As my skill in C is pretty limited, I won't try and argue over how a minecraft ported to C would be better than a Java-based one; I only know that my computer is a pretty old one, and that java is a huge, memory-devouring rampaging beast when it comes to performance in comparison to lower level languages...
However, I know that we have several professional coders here on the BTW forums, so I thought some of you could be interested by this.
EDIT : typos.
EDIT 2 : Added the link to the website, since it's back online, thx S.W. for the info.
http://forum.minetest.net/
The website proper is down at the moment, but the forums are online. I just checked some of the mods, and was struck by that one, which allows for the player to create close to any non-cubic block for any purpose of his liking.
As my skill in C is pretty limited, I won't try and argue over how a minecraft ported to C would be better than a Java-based one; I only know that my computer is a pretty old one, and that java is a huge, memory-devouring rampaging beast when it comes to performance in comparison to lower level languages...
However, I know that we have several professional coders here on the BTW forums, so I thought some of you could be interested by this.
EDIT : typos.
EDIT 2 : Added the link to the website, since it's back online, thx S.W. for the info.
Last edited by Racooknight on Tue Jan 15, 2013 2:54 pm, edited 1 time in total.
-
- Posts: 175
- Joined: Sun Jun 03, 2012 5:30 am
Re: Minetest, a C/C++ GNU Minecraft
I'll give it a try as I'm familiar with C/C++ and I never learned Java. What about in-game functionality, does it looks like MC or it's still under heavy development?
S.W.
S.W.
- Racooknight
- Posts: 45
- Joined: Thu Aug 23, 2012 2:35 am
Re: Minetest, a C/C++ GNU Minecraft
I haven't given it a proper try yet, but it seems pretty functionnal already. Graphics are pretty similar to vanilla MC; they just implemented sound too, and it's also quite similar to vanilla MC (similar in that, that I think both vanilla MC and minetest have horrible sound effects :p)
One of the main differences I see is that nothing ever drops on the ground; ores you mine go straight toyour inventory, same thing with anything you break in the world. That doesn't allow for much automated item travelling and whatnot.
Other than that, I couldn't find hard differences. The developpement seems already to be past the point of alpha MC.
One of the main differences I see is that nothing ever drops on the ground; ores you mine go straight toyour inventory, same thing with anything you break in the world. That doesn't allow for much automated item travelling and whatnot.
Other than that, I couldn't find hard differences. The developpement seems already to be past the point of alpha MC.
Re: Minetest, a C/C++ GNU Minecraft
Can I just strongly discourage this thread going in the direction of a C vs J debate - there are probably less than 5 members of this forum with enough proven experience to have this debate and less than 1 of them willing to have it. For the rest of us, suffice to say, no matter what we believe, the issues are more complex and less clear cut and we would wind ourselves in circles of bullshit.
Lets focus on the interesting aspects of this project instead!
Lets focus on the interesting aspects of this project instead!
7 months, 37 different border checks and counting.
Re: Minetest, a C/C++ GNU Minecraft
Minetest mods are actually scripted in Lua by the way, not C.
I dance to the sound of a Creeper's legs breaking
- Racooknight
- Posts: 45
- Joined: Thu Aug 23, 2012 2:35 am
Re: Minetest, a C/C++ GNU Minecraft
That was certainly not my intent, as as mentionned above, I have only a terrible experience of C and zero knowledge of java. I thought the memory usage efficicency was, as you say, one of the interesting aspects of this project, at least to me who's frequently frustrated by that particular aspect in many games, not only MC.
But then it seems to have other great aspects, such as the modding liberty !
But then it seems to have other great aspects, such as the modding liberty !
Re: Minetest, a C/C++ GNU Minecraft
Don't worry, that wasn't aimed at you - just at the internet in general! I see far too many threads devolve into lowest common denominator tribal camps driven by ignorant beliefs, I'm hoping this one stays away from the easy troll bait!Racooknight wrote:That was certainly not my intent, as as mentionned above, I have only a terrible experience of C and zero knowledge of java. I thought the memory usage efficicency was, as you say, one of the interesting aspects of this project, at least to me who's frequently frustrated by that particular aspect in many games, not only MC.
But then it seems to have other great aspects, such as the modding liberty !
7 months, 37 different border checks and counting.
Re: Minetest, a C/C++ GNU Minecraft
Minetest is sort of like Minecraft in that they're both voxel-block sandbox worlds, but that's about it. I suppose minetest could be considered a clone, but then again, clones are *really* common in the Free Software world.
Minetest got its API already in the 0.4 release iirc. It's LGPL licensed iirc. Last time I saw it the FSF guys were demoing it on Trisquel. It looked a little primitive, but the thing had promise.
Minetest got its API already in the 0.4 release iirc. It's LGPL licensed iirc. Last time I saw it the FSF guys were demoing it on Trisquel. It looked a little primitive, but the thing had promise.
There's only one V in my name, thanks.
<TaterBoy> I figured out why there's so much lag. We have too much iron.
<TaterBoy> I figured out why there's so much lag. We have too much iron.
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: Minetest, a C/C++ GNU Minecraft
Shengji wrote:Can I just strongly discourage this thread going in the direction of a C vs J debate - there are probably less than 5 members of this forum with enough proven experience to have this debate and less than 1 of them willing to have it. For the rest of us, suffice to say, no matter what we believe, the issues are more complex and less clear cut and we would wind ourselves in circles of bullshit.
Lets focus on the interesting aspects of this project instead!
+1. The more I hear from you, the more I think of you as a kindred spirit man :)
-
- Posts: 175
- Joined: Sun Jun 03, 2012 5:30 am
Re: Minetest, a C/C++ GNU Minecraft
I'll probably look at the code of it at some point when I finish my exams.
I've seen that there are lots of mods that try to add functionality from MC to MT, that will probably be added in future official releases of MT, but members that know how to program don't want to wait for them. For now the functionality is quite limited but it looks quite good.
P.S.: +1 to the: Avoid Java vs C debate!
S.W.
I've seen that there are lots of mods that try to add functionality from MC to MT, that will probably be added in future official releases of MT, but members that know how to program don't want to wait for them. For now the functionality is quite limited but it looks quite good.
P.S.: +1 to the: Avoid Java vs C debate!
S.W.
Re: Minetest, a C/C++ GNU Minecraft
While this project certainly has some potential, it's still very immature in the sense of looking like Minecraft ripoff. Last versions are starting to overcome this though, so I'm looking forward to what they will make next.
Modding community around Minetest is very strange, too. There are mods that add particles support or decend inventory alongside with mods that add things like water pumping. There's also mod that adds Mesecons, "thing like minecraft redstone", but looks more like some half-assed version of Integrated Redstone, featuring a variety of logic gates for example.
Still, I'm pretty amused of how far it got in the last half an year.
Modding community around Minetest is very strange, too. There are mods that add particles support or decend inventory alongside with mods that add things like water pumping. There's also mod that adds Mesecons, "thing like minecraft redstone", but looks more like some half-assed version of Integrated Redstone, featuring a variety of logic gates for example.
Still, I'm pretty amused of how far it got in the last half an year.
-
- Posts: 175
- Joined: Sun Jun 03, 2012 5:30 am
Re: Minetest, a C/C++ GNU Minecraft
That's the point, it's in a very unmature stage but is LGPL, what means that you can copy the code while your product also extends that LGPL license. That would allow a C programmer to have his own MineCraft clone starting from this basis and correct Mojangs errors (beacon checking all entities? watter being stopped by a sign? floating blocks? gravity affected blocks turning into items if landing on non-opaque blocks? gavity affected blocks falling on your head and not taking damage (except the suffocation damage)) There are tons of things that don't make sense in MC that I would like to be more real. Imagine being in a cave, you see an ore in the ceiling, you mine it, and you are taking out a key part of the caves ceiling. A whole bucnh of stone falls on you you take damage from the stone falling but you appear over it (you have managed to get out of there). Damage dependant of falling blocks weight and amount. That would be great and will force us to use fences and blocks to make mines to be sure that you are safe.0player wrote:While this project certainly has some potential, it's still very immature in the sense of looking like Minecraft ripoff. Last versions are starting to overcome this though, so I'm looking forward to what they will make next.
Modding community around Minetest is very strange, too. There are mods that add particles support or decend inventory alongside with mods that add things like water pumping. There's also mod that adds Mesecons, "thing like minecraft redstone", but looks more like some half-assed version of Integrated Redstone, featuring a variety of logic gates for example.
Still, I'm pretty amused of how far it got in the last half an year.
EDIT: minetest.net is up again
S.W.
Re: Minetest, a C/C++ GNU Minecraft
That's also what is wrong with almost every FS project. The code being open leads to fragmentation instead of collaboration. Imagine how could it have been if every mod on Minetest forums were another fork of Minetest adding one or two features. Given near-zero C++ runtime reflection capabilites, it is nigh impossible to write something like ModLoader, so I'm praising the Lord they made Lua script modding.Siege Wizard wrote: That's the point, it's in a very unmature stage but is LGPL, what means that you can copy the code while your product also extends that LGPL license. That would allow a C programmer to have his own MineCraft clone starting from this basis and correct Mojangs errors (beacon checking all entities? watter being stopped by a sign? floating blocks? gravity affected blocks turning into items if landing on non-opaque blocks? gavity affected blocks falling on your head and not taking damage (except the suffocation damage)) There are tons of things that don't make sense in MC that I would like to be more real. Imagine being in a cave, you see an ore in the ceiling, you mine it, and you are taking out a key part of the caves ceiling. A whole bucnh of stone falls on you you take damage from the stone falling but you appear over it (you have managed to get out of there). Damage dependant of falling blocks weight and amount. That would be great and will force us to use fences and blocks to make mines to be sure that you are safe.
EDIT: minetest.net is up again
S.W.
Also, almost every thing you claimed to be not having sense is pretty much OK. Game rules do not need to make sense in context of rules of another game (which reality is). Saying floating blocks in Minecraft do not make sense is like saying that buying weapons through screen overlay in Counter-Strike doesn't make sense because it is unrealistic.
Re: Minetest, a C/C++ GNU Minecraft
I respectfully disagree.0player wrote:That's also what is wrong with almost every FS project. The code being open leads to fragmentation instead of collaboration. Imagine how could it have been if every mod on Minetest forums were another fork of Minetest adding one or two features. Given near-zero C++ runtime reflection capabilites, it is nigh impossible to write something like ModLoader, so I'm praising the Lord they made Lua script modding.
Also, almost every thing you claimed to be not having sense is pretty much OK. Game rules do not need to make sense in context of rules of another game (which reality is). Saying floating blocks in Minecraft do not make sense is like saying that buying weapons through screen overlay in Counter-Strike doesn't make sense because it is unrealistic.
The ability to fork is what's GOOD about every Free Software project. Forking is a drastic act you tend to do at the END of a conflict over patches/changes not being accepted; that you can change the code if you don't like it is what gives users that last step of control; one can make modifications or total conversions that much more easily. Normally most folks would rather push a change upstream or file a bug, those are a lot less effort and you improve the entire product. Forking is for experimentation in a direction no one wants to go, or because you're having a problem with something (say, you run on Java 1.5 and now Minecraft won't support that version soon. It's good for the codebase if it's Java 6 minimum, but it's bad for you. If you could fork, you could maintain a crusty Java 1.5 branch, which would at least still allow you to play. You might have to remove a few features, but you could do it. It's not a great reason, but it does happen. Ever heard of TenFourFox?)
It makes online communities for games tend to be a bit more fragmented, but what you find out is most people don't change the code, and cheaters aren't really stopped or helped by availability of source as it is, so it's more "last resort" than the theoretical "holy shit people are forking all the time" people often infer.
The biggest forks I've seen are Samba (Samba-ng was done with the approval of the Samba guys, and I think some of that code went into Samba 4), GCC (fork became the accepted official branch), OpenOffice/LibreOffice (everyone in the GNU/Linux world went LibreOffice while Apache & Oracle dicked around), Mambo/Joomla (no one uses Mambo these days, it's all Joomla all the time), and MySQL and it'sits millions of forks (Oracle dicking around again)
The API is what is making minetest awesome, yes. Lua is powerful, fast, and quite embeddable - you see it a lot in mobile games and as a scripting language for game logic.
(Edit 0: damn I'm sick, I just screwed up it's and its. I never do that.)
Last edited by Benanov on Tue Jan 15, 2013 10:32 am, edited 1 time in total.
There's only one V in my name, thanks.
<TaterBoy> I figured out why there's so much lag. We have too much iron.
<TaterBoy> I figured out why there's so much lag. We have too much iron.
-
- Posts: 175
- Joined: Sun Jun 03, 2012 5:30 am
Re: Minetest, a C/C++ GNU Minecraft
Completely agree with Benanov.
S.W.
The difference is that CS is a shooting game, it doesn't try to copy reality while MC does but they just kept it very simple. What is not bad, but could be improved.0player wrote:Also, almost every thing you claimed to be not having sense is pretty much OK. Game rules do not need to make sense in context of rules of another game (which reality is). Saying floating blocks in Minecraft do not make sense is like saying that buying weapons through screen overlay in Counter-Strike doesn't make sense because it is unrealistic.
S.W.
- Uristqwerty
- Posts: 30
- Joined: Sat Nov 03, 2012 2:51 pm
Re: Minetest, a C/C++ GNU Minecraft
Minecraft doesn't try to copy reality either, though. Minecraft represents a fictional reality where only gravel and sand fall, fluids flow endlessly from source blocks, and vanish just as quickly into a tiny pit, dropped stuff suddenly disappears five minutes later, you can turn basic materials into devices of arbitrary complexity if you just have the proper surface to work on, monsters appear anywhere where it is dark, there are multiple distinct dimensions, and ways to pass between them, you can store an entire mountain in a single chest, or carry it around with out in your own personal hammerspace inventory...
Minecraft represents a distinct world with its own physics, where things are only somewhat similar to reality. All that matters is that it is consistent with itself.
Minecraft represents a distinct world with its own physics, where things are only somewhat similar to reality. All that matters is that it is consistent with itself.
- Racooknight
- Posts: 45
- Joined: Thu Aug 23, 2012 2:35 am
Re: Minetest, a C/C++ GNU Minecraft
I'm with him on that one; Notch himself liked to say things like "hey, what if all animals hatched from eggs ? That would be cool and interesting !" Such feature is indeed interesting on a gameplay level, although not realistic at all. I guess Notch thought realism wasn't the point; consistency of features as an interesting, gameplay-fueling whole, was the point.Uristqwerty wrote:Minecraft doesn't try to copy reality either, though. Minecraft represents a fictional reality where only gravel and sand fall, fluids flow endlessly from source blocks, and vanish just as quickly into a tiny pit, dropped stuff suddenly disappears five minutes later, you can turn basic materials into devices of arbitrary complexity if you just have the proper surface to work on, monsters appear anywhere where it is dark, there are multiple distinct dimensions, and ways to pass between them, you can store an entire mountain in a single chest, or carry it around with out in your own personal hammerspace inventory...
Minecraft represents a distinct world with its own physics, where things are only somewhat similar to reality. All that matters is that it is consistent with itself.
That's the old debate of "realism against internal logic". Correct me if I'm wrong, but I daresay FC himself values internal consistency over realism, as an unrealistic world with many intricate features which allow for intricate contraptions and so on, is much more interesting gameplay-wise than a very realistic world which would be devoid of any complexity, be it because by going the realistic way, you didn't take the time to implement complicated features, or any other reason which let you have a realistic but boring world.
IMHO it's more efficient to implement your own physics than try and copy RL's physics; in trying to copy them to the letter, you often miss the point of making an interesting game. Also, it may be easier and more pleasant to create a game with its own internal logic, born from the maker's mind, instead of trying to bend the game to RL boundaries.
-
- Posts: 175
- Joined: Sun Jun 03, 2012 5:30 am
Re: Minetest, a C/C++ GNU Minecraft
Obviously it's a game, played on a computer, who is by far less complex that a single human, but that doesn't make the game to be realistic. It tries to copy our world in a simple but close to real way. That doesn't mean that we should or shouldn't try it to be more real. The gravity system, the fluid one and the storage, as you mention, are three of the most unrealistic parts in minecraft. The fluids mechanics are quite complex, I've studied them quite a bit as an engineer and implementing such a complex system in MC would be so resource intensive that will break the whole game near an ocean or a river. The storage one, is easy to make it more real, reduce the storage and the amount of stackable pieces or introduce a "weight" value that allows you to move faster or not even move. This is easy to program, but breaks again the whole game as it would be so boring. The gravity simplification they have done could be a bit more complex, not breaking the game performancewise nor taking all the fun from it, what it's more, I think it will add some extra fun when building and mining.Uristqwerty wrote:Minecraft doesn't try to copy reality either, though. Minecraft represents a fictional reality where only gravel and sand fall, fluids flow endlessly from source blocks, and vanish just as quickly into a tiny pit, dropped stuff suddenly disappears five minutes later, you can turn basic materials into devices of arbitrary complexity if you just have the proper surface to work on, monsters appear anywhere where it is dark, there are multiple distinct dimensions, and ways to pass between them, you can store an entire mountain in a single chest, or carry it around with out in your own personal hammerspace inventory...
Minecraft represents a distinct world with its own physics, where things are only somewhat similar to reality. All that matters is that it is consistent with itself.
And Racoo, I'm not saying copying the RL's physics, as that it's imposible. Even most of the "formulas" you, and any of us, take for certain are not exact. I just think that some of the aproximation they made are over-simplified.
S.W.
- Racooknight
- Posts: 45
- Joined: Thu Aug 23, 2012 2:35 am
Re: Minetest, a C/C++ GNU Minecraft
I feel you man, I'm studying fluid mechanics, and darn it's some hardcore calculations ! That's exactly what I meant when I said that focusing on realism could in many instances bring more problems than good in a game.
But yeah, some of the approximated RL features in MC are probably not there because they improve the gameplay consistency, but because someone thought "it'd be cool" and probably easy to implement them.
On the other hand, picking RL features that *actually* add to the gameplay consistency, as for example what you mentionned above with the caves collapsing (that's what they tried to do in TerraFirmaCraft, among other things, right ?), and implementing them, is a good way to add both realism and an interesting added complexity to a world. I think I'm just repeating your own words when I say realism should be pursued only if it's consistent with the existing gameplay. (and actually implementable, as RL fluid mechanics are awesome, but not exactly reproducible on a simple computer)
But yeah, some of the approximated RL features in MC are probably not there because they improve the gameplay consistency, but because someone thought "it'd be cool" and probably easy to implement them.
On the other hand, picking RL features that *actually* add to the gameplay consistency, as for example what you mentionned above with the caves collapsing (that's what they tried to do in TerraFirmaCraft, among other things, right ?), and implementing them, is a good way to add both realism and an interesting added complexity to a world. I think I'm just repeating your own words when I say realism should be pursued only if it's consistent with the existing gameplay. (and actually implementable, as RL fluid mechanics are awesome, but not exactly reproducible on a simple computer)
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: Minetest, a C/C++ GNU Minecraft
IMO, conversations about "realism" in any game, MC included, amount to a huge amount of wankery.
MC is *not* a simulation. It is *not* intended to be realistic. It's its own world with its own rules. I'm a huge advocate of consistency within games, which I think many mistake for realism, but these kind of discussions about realism itself just leave me making rude gestures in response.
MC is *not* a simulation. It is *not* intended to be realistic. It's its own world with its own rules. I'm a huge advocate of consistency within games, which I think many mistake for realism, but these kind of discussions about realism itself just leave me making rude gestures in response.
Re: Minetest, a C/C++ GNU Minecraft
Also I think there's something to be said about confusing immersion and realism.
They obviously are not the same thing.
They obviously are not the same thing.
War..
War never changes.
Remember what the dormouse said
War never changes.
Remember what the dormouse said
-
- Posts: 175
- Joined: Sun Jun 03, 2012 5:30 am
Re: Minetest, a C/C++ GNU Minecraft
FlowerChild wrote:IMO, conversations about "realism" in any game, MC included, amount to a huge amount of wankery.
MC is *not* a simulation. It is *not* intended to be realistic. It's its own world with its own rules. I'm a huge advocate of consistency within games, which I think many mistake for realism, but these kind of discussions about realism itself just leave me making rude gestures in response.
Don't get me wrong. First thing a game must have is consistency. Nobody said the opposite. I'm just saying that, if you can make a feature more realistic keeping it consistent with the game and add some fun, why not do it?MoRmEnGiL wrote:Also I think there's something to be said about confusing immersion and realism.
They obviously are not the same thing.
It's a game so fun is the prioritary goal and consistency is necesary, but I feel that realism should be a secondary goal. You want to add a new feature? Is it doable, fun and consistent? Then go for it. That's my point of view, and that's one of the things I like about BTW, it's quite realistic in most of the processes.
S.W.
- FlowerChild
- Site Admin
- Posts: 18753
- Joined: Mon Jul 04, 2011 7:24 pm
Re: Minetest, a C/C++ GNU Minecraft
Because:Siege Wizard wrote:Don't get me wrong. First thing a game must have is consistency. Nobody said the opposite. I'm just saying that, if you can make a feature more realistic keeping it consistent with the game and add some fun, why not do it?
a) Achieving realism is way more work, and thus in terms of bang for the buck, you rapidly reach a point of diminishing returns where making something more real results in way less fun than if you had spent the same time on something else.
b) Simulating things realistically is often a way bigger drain on performance. The more cycles you eat up doing those kind of calculations, the less you inevitably have to spend elsewhere, which again, results in less fun in the long term.
c) Because in many circumstances, added realism will actually be detrimental to fun in causing the player to become bogged down in the mundane tasks that make day to day living a chore.
So no, I don't believe realism should even vaguely be a goal. If realism happens to coincide with fun, then yes, you should pursue it, but that's because it's fun...not because it's realistic. There's nothing to be gained from realism for its own sake.
And incredibly unrealistic in others. That's the thing: I never make design decisions on the basis of realism. Rather, I look for interesting gameplay mechanics, and given that I live within the consensus reality, I am often inspired by how I perceive it to work in so doing.Siege Wizard wrote:That's my point of view, and that's one of the things I like about BTW, it's quite realistic in most of the processes.
Seriously, I consider "realism" to be a dirty word in terms of game design. I look at your complaints about things like the way gravity works in MC, and my immediate response is "pffft...whatever man". To me, they represent harping over irrelevant points, thinking that they actually affect the way the game plays or how much fun it is. They really don't.
Re: Minetest, a C/C++ GNU Minecraft
Games are generally themed, they are not often entirely abstract, so the theme will include things which can be seen in the real world, but this is all just fluff over the game mechanics.
Take Thomas was Alone. In that game, water is instant death to all but one character. But the water itself could be easily replaced with spikes or thorns or bottomless pits or turning cogs or angry dogs or anything you can dream up. What's important is that it is instant death to all but one character who can float, or glide or scrape or be inedible to angry dogs their way across.
There is no need to add complex water mechanics to it, no need to make it act realistically like water would because the fact that it is water is completely irrelevant. This is one of the biggest problems with many games, they focus on the fluff and then find it difficult to make the abstract game actually fun.
Take Thomas was Alone. In that game, water is instant death to all but one character. But the water itself could be easily replaced with spikes or thorns or bottomless pits or turning cogs or angry dogs or anything you can dream up. What's important is that it is instant death to all but one character who can float, or glide or scrape or be inedible to angry dogs their way across.
There is no need to add complex water mechanics to it, no need to make it act realistically like water would because the fact that it is water is completely irrelevant. This is one of the biggest problems with many games, they focus on the fluff and then find it difficult to make the abstract game actually fun.
7 months, 37 different border checks and counting.
Re: Minetest, a C/C++ GNU Minecraft
The problem with realism in games is that the closer you are to emulating a given element of real-life, the more the differences between your approximation and real-life become glaringly obvious. As FC said, massively diminishing returns.Siege Wizard wrote: Don't get me wrong. First thing a game must have is consistency. Nobody said the opposite. I'm just saying that, if you can make a feature more realistic keeping it consistent with the game and add some fun, why not do it?
Edit: Forgot to actually talk about the original topic. So I checked out the site. It's an interesting project and for someone who's interested in the algorithms involved with 3D voxel games, worth a look. However, some of the mods for this thing are WAY to close to a 1 to 1 copy of features from Minecraft. Not cool :(