Menu

MineClones

February 27, 2011 - Programming

With Success comes emulation, and this holds true in the software industry at least as strong as in any other. Recently I plugged a relatively recent game purchase I made- Minecraft. Excellent game. It has bee nwildly successful and inspired many people to write “clone” games with a similar idea. Here is a list of a few:

Manic Digger

I won’t lie; I haven’t actually played this so I’m basing this on videos; but to be honest, this looks really quite stupid; it’s a outright attempt to “copy” Minecraft and steal away some of it’s success. What makes it interesting though is that it was mildly successful on that count for a single reason- it’s not written in java. Now, I’ll admit that java is quite far from my favourite language, but that hardly came into play when evaluating minecraft. Basically, if you base your opinion of a software product on the language it was designed in then you are a moron. It doesn’t matter. It’s fair to point out stuff that it is missing or has as a result of the language choice; for example, Minecraft is written in java and therefore there was no need to port or even compile the game for a variety of platforms. Most people think “so what, that just means it’s easier for people to use different Operating Systems”. I have two responses to that: First, don’t trivialize the difficulties of trying to write a single code-base that works on multiple platforms, and second, the advantages are hardly limited merely to operating systems; after all, Windows runs on two platforms today that are common; x86(32-bit) and x64 (64-bit). What makes java interesting is that for a 64-bit machine you install the 64-bit Virtual Machine, and the Interpreter Compiles the java bytecode to 64-bit machine code; so the game will automatically take advantage of 64-bit where it can.
The following paragraph has been revised; I originally thought that Manic Digger was written in C++ (I noted already I didn’t actually look it up- I was basing that on the frothing love the clone had by many people who it seems are entirely unaware of what it was really written in)
Now, Manic Digger is written in C#. Who the fuck cares. If you are basing your opinion of a product on the language it is written with then you are clearly not trying to provide an objective opinion. C# has very few advantages over java, and certainly none that aren’t countered by equal advantages that java holds (better Linux support being one… ever try getting a C# program working in Mono? Not happening. And If my quick 5 minute research is to be believed, Manic Digger uses XNA, which in turn uses DirectX and therefore will be entirely unavailable to other platforms, limiting it to windows. As I noted, I had to change this passage; many people are still pushing Manic Digger as superior because it is written in C++ (which it isn’t; thanks to a commenter (exe) for correcting my misinformation); so the question is why people seem to think that something being written in C++ is better then something written in java anyway; seems a tad preemptive; The only advantage C++ would have would be pure speed, and that pure speed is completely irrelevant since it makes up for it by being about 10 times a bigger pain in the ass.

Basically, what I am trying to say, is that changing the language used for something is not going to make anything faster unless you coincidentally happen to be doing a lot of something that language is really good at. C# and Java are extremely similar; Personally I prefer C# if only because it is very mature for it’s age, Also because I haven’t used java since the awt days and can’t even get the IDE to make me any sort of basic GUI. That’s more my own incompetence with it then any particular problem with the language though; truly they both use Virtual Machines (the java VM for Java and the CLR for C#) each of those VMs have more then that one language running on them The java VM has Scala, as well as several other languages that can be compiled to it. the CLR has C# as well as F#, VB.NET, and a few others. Aside from the fact that C# is a bigger pain in the ass to get working on Linux or Mac machines (having to rely on Mono, and almost requiring that you plan ahead from the beginning to make it work in Mono), and some programmatic features, there is no visible advantage that C# would have over Java; saying C# is C++ only confuses people for a while until somebody helpfully corrects their incorrect information. But what I find weird is why people would find that simply a choice of language- say C++ over Java – is in and of itself a sign of marked superiority- you can write shitty applications in any language at all, and speed is more up to the choice of algorithm then any ridiculous perceived speed improvement from having a compiled language like C++; additionally, I’m pretty sure we left the era of needing to use finely tuned machine code compiled applications in the late 90’s, when it was realized that programming using those languages was a huge pain in the ass.

Thing is, C++ doesn’t really have any marked advantages over java aside from a little bit more raw speed (at the cost of requiring native compilation, and thus requiring platform-specific distributions) and a messier syntax, more difficult to use debugger, and far less extensive class library. It’s an excellent language that should be judged on it’s own merits, but the moment you start comparing programming language you may as well start comparing fruits. Many people have their own favourite fruits, but everybody also understands innately that if somebody says “the banana is the best fruit” they truly mean “I think the banana is the best fruit”. They might list their reasons, maybe even state why Bananas are better then Oranges or easier to eat then Apples, and so forth. But everybody knows it is merely opinion on that persons part, since an equal number of people no doubt feel the same way about pomegranates or Apples or Oranges or Grapes. Grapes can be turned into better wine then Bananas, but Bananas make a far better Banana split.

In any case, judging from what I’ve seen, Manic Digger is far too similar to Minecraft to be said to have been “inspired” by it. I personally toyed with the idea of trying to make a Minecraft clone. Then I realized that I would be wasting my god damned time, unless I can think of some really good changes and additions to make to the core mechanic of the game, I wouldn’t be adding much gameplay wise. And at the time the only advantage I could see was that it would be implemented in C# which hadn’t been done before, a misconception I have recently been cleared of.

A Common thing that people bring up is that the first FPS game- Wolfenstein, spawned many clones. What is interesting about this argument is that Wolfenstein didn’t have any clones at all. Many people made modifications to the actual Wolfenstein Game, but with a few exceptions (Ken’s labyrinth) there were very few actual clones; and of those that were made, none of them went so far as to be an exact duplicate; that would defeat the purpose. Ken’s labyrinth, for example,was far less “serious” in tone, had more colourful graphics, and, even added a few game mechanics. (No “Guns” for example). It wasn’t until Doom was released that there were some true “clones” of the game made. Of particular interest is that even then most of the “clones” weren’t clones at all but rather new games using the exact same engine; that is, they didn’t rewrite all the 3-d stuff for the game, instead they licensed the Doom Engine from id Software; this was used in Heretic and Hexen, as well as a few other games. Even ID software themselves jumped on that bandwagon and released Doom II commercially. Basically, Yes, clones of games are often made, but that doesn’t make them right- and it doesn’t make them popular either. I cannot name a single Doom clone. The closest thing I can think of off-hand is the Alien Vs Predator game for the Sega Saturn (or Jaguar, I forget), and that merely used the Doom graphics engine- under license. The actual gameplay was far different from Doom. There were clones of Doom that copied a lot of the game content and idea, but nobody remembers those because they lacked originality.

Aside from Manic Digger, the only “clone” I know of is “fortresscraft”. And, while it certainly is a clone in many of the most common definitions of the word, there is something that needs to be considered- platform.

Fortresscraft

is a 3-dollar game that to my understanding is going to be released on XBox-Live. It looks pretty stellar to be honest, but reading the inevitable “debates” that spring up, I’ve noticed several things on both sides.

From the “OMG notch is fecking god” side, they don’t seem to be considering the fact that the game is not really directly competing with Minecraft at all- it’s for an entirely different market segment and if I had a Xbox 360 I would certainly try it. Of course if I had an xbox 360 or any console of that generation I’d have other problems, but I digress.

On the other hand, the people holding down the fortresscraft provide some specious defenses for the clear “clone” that fortresscraft is; first, they raise the silly argument that it’s no different from clones of wolfenstein. Well, aside from the facts I already stated that there weren’t really any clones of wolfenstein, (in the sense that they were exactly the same as the id software game in almost every way, like the SNES version of wolfenstein versus the original PC installment, and weren’t clones as much as they were licensed redistributions of the same game) it’s a false dichotomy to suggest that they are a similar happenstance; the two games have almost identical goals, almost identical items and blocks and mechanics; the sole change seems to me to be only in the fact that the XBox version has greatly enhanced graphics (and they do look awesome). Of course, Mojang (and people REALLY need to stop saying “Notch” when referring to the minecraft development, since he is now quite far from alone in creating and adding features to the game, that would be like blaming every single thing you like or dislike about Family Guy on Seth Macfarlane or everything you like/dislike about the Simpsons on Matt Groening. They are hardly making those things single-handedly)… Mojang couldn’t really sue anyway since as far as I understand it they didn’t trademark anything in the game nor do they have copyright claims on any of the content; but a safe analogy might be to flip the bit and go back to the late 80’s; and even back to ID Software.

Nintendo, Console gaming supergiant (at the time, anyway) had just released their blockbuster, Super Mario Brothers 3. With smooth, two way scrolling, colourful tile animations and great gameplay, it was raved about by millions. Look at any other game on that console.

Are there any “clones”- even remote clones- of Super Mario Brothers 3 on the console? Good luck finding any. On the PC, there could have been a clone of Super Mario Brothers 3 made- almost block for block the same; the folks that would later go on to create Id Software had put together a small sample that duplicated the very first level of Super Mario Brothers 3 in all it’s fine detail, replacing the game character (Mario) with “Dangerous Dave” a character who was prominent in some of the games created by one of the other authors. What makes this notable is that the PC was not considered a gaming machine even in the broadest sense at the time; it was considered far behind in terms of capability to systems Like the Nintendo Entertainment System and ZX Spectrum. When they sent this disk to Nintendo to inquire about wether Nintendo would like a PC version made of the game; they declined.

It’s important to note what happened here. They didn’t take their engine and create a very near but not quite the same rip-off of Super Mario Brothers 3; They didn’t even create an engine-similar verison of the game that had different level designs- they practically redesigned the game from scratch. And that is a step I think may have been forgone in many of these newer games that clone the latest trend. The result of their efforts gave us Commander Keen, which is hailed as a gaming classic by many; but nobody whose played the game would say it was a “clone” of Super Mario Brothers 3.

Fortress Craft feels like a Commander Keen that never came to fruition. Aside from bringing a already existing game to a new platform, it doesn’t do much at all. (although the graphical improvements are quite stellar). That isn’t to say I have a problem with the game; as I noted if I had a system that I could play it on I would totally buy it, because it looks great; but it doesn’t really build it’s own “identity” since it looks really quite similar to Minecraft with a texture pack. It has really quite the same goals (which is to say none at all) and so forth. Many Console gamers looking forward to it defend it by saying that “Notch should have done it himself if he didn’t like it”. But really, I don’t think that is a good way to put it. Releasing a Java game on the PC and releasing a Console game are totally different things; what blurs things quite a bit in my opinion is that for, at the very least, the very last generation, Consoles have ceased to exist. As Far as I’m concerned, Consoles have reverted to being “specialized game Computers” which was originally merely a moniker used because Personal computers were new and fresh and the Console makers wanted to identify with them.

A Game Console usually uses a hugely different set of chips then a standard PC; for example, the Super Nintendo uses a totally different set of chips, by totally different manufacturers, then any computer on the market at the time; it used Cartridges for the games as well, something that simply has no PC equivalent. Nowadays, though, many consoles use Intel compatible processors and even the same core Operating System software (in the case of the Xbox, surprisingly relevant here considering it’s the one getting fortresscraft). They have hard drives.

As far as I’m concerned, a Game console should not have a fucking hard drive. That is utterly stupid. That’s a computer thing. Not console. Although to be fair that could be extended at least in part to CD-ROM media. In either case, Game consoles are just not something that even enters the minds of game programmers; BASeBlock, for example, is not something I can just decide one day will run on a PS3 or a Wii or a XBox 360; that is something that usually needs to be planned from the get go, or a rewrite is required. Besides, there are plenty of silly little block-breaking games on the Playstation anyway. I think of BASeBlock more as “programming practice”.

The explosion in the gaming industry has caused consumers to trivialize the very methods used to create the games they play to the point where everybody is a armchair game designer, programmer, and lawyer. All with a console game controller in their hand as their qualification.

Have something to say about this post? Comment!

4 thoughts on “MineClones

exe

Manic Digger isn’t made in C++. It’s in C# which is a clone of Java made by Microsoft.
Porting to Windows/Linux/Mac has mostly the same difficulty on Java, C# and C++. The main problem is just having enough test computers set up, and running game on all platforms regularly.
C++ is 3x faster than Java and C#. Which isn’t very much – simple optimizations can bring 10-50x speedup.

BC_Programming

Thanks for the correction 🙂

I have to contest though, that despite the flak Java get’s in that area, getting a Java program working on a separate platform is a lot easier them getting a program written in C# or C++ working on another platform; I know first hand that getting C# working on Mono is tenuous at best, and a gigantic pain in the butt. C++ would be even more difficult, depending on how the original was written; usually means using either a lot of conditional compilation or relying on a lot of the standard library; That’s not to even start with possible endianness issues.

With proper planning, though, an application can be written and designed from the ground up to run on multiple platforms; given (as you note) enough test computers with the various platforms. I still think C++ would take the cake as far as painfulness in that area, since it means a lot of conditional compilation. (admittedly I am making observations from a position of rather deep ignorance on that subject, having never actually had to port a C++ application from one system to another, instead relying purely on my own speculation)

On the other hand, I haven’t used java since the awt days (where it was easy to run on multiple platforms, and it looked equally out of place on all of them) whereas now Java is owned by Oracle, so I have no idea if any of the tenets that were true then are still as true now.

Vontux

You are missing the point entirely. The technologies used are not relevant in this case. What is relevant is the openness. Minecraft is not open source, Manic Digger is. If people don’t like the direction Minecraft heads into, they really can’t do anything about it. If Manic Digger goes in a direction its user base doesn’t care for, guess what? The Manic Digger user base can fork it. While not nearly as fully featured at the current time Manic Digger has added a couple of unique features that Minecraft doesn’t have, seasons for example which do affect the gameplay because frozen water provides both obstacles and opportunities. Manic Digger is currently still a pre-alpha release. It is no doubt going to be a game similar to Minecraft, but outright hostility to it is misguided for both the openness reasons stated earlier and the fact that really Manic Digger is still much earlier in its development than Minecraft is, there is still plenty of time and opportunity for it to become something much different than a Minecraft clone.

BC_Programming

You are missing the point entirely. The technologies used are not relevant in this case. What is relevant is the openness. Minecraft is not open source, Manic Digger is.

The license a product, and it’s source, fall under is entirely irrelevant to judging the product as a whole. in Manic Digger’s case, when I tried it, it was basically Minecraft classic, and aside from being OSS there wasn’t a whole lot different.

If people don’t like the direction Minecraft heads into, they really can’t do anything about it.

They can, and do write mods and other tools to change it as they wish. It’s no more difficult to do that then contrib to Manic Digger; it’s easier simply because of the far larger community that sprang up and the various tools people can use (Such as, for example, ModLoader)

If Manic Digger goes in a direction its user base doesn’t care for, guess what? The Manic Digger user base can fork it.

Really? can they? can your average user fork the game, and make anything but trivial changes? That’s pretty much my only “problem” with open source; not so much that it’s Open, but rather that people seem to think this is an innately useful quality. How many Open Source projects have you made changes to? How many of those changes actually required a deep comprehension of the object models used by the program? Learning the intricacies of an OSS project enough to make anything but the most rudimentary changes takes time, and time is something a lot of people simply do not have to spend on some skunkworks clone of a popular game. With MC, a lot of the “obvious” changes some people want are already available as readily installable mods.

>>Manic Digger has added a couple of unique features that Minecraft doesn’t have, seasons for example which do affect the gameplay because frozen water provides both obstacles and opportunities.

And minecraft has a mod for that (that adds seasons), proving my above point. Additionally, the fact that minecraft is written in java contributes to the fact that it is so easily moddable, so that was indeed relevant. (C#/CLR is probably equally so, but I imagine it’s a much bigger pain making changes to base classes)

outright hostility to it is misguided for both the openness reasons stated earlier

there is no “openness” reason. I judge a software product, game, or otherwise on it’s merits, particularly with respect to it’s competition. I don’t care whether the product is licensed under BSD/MIT, the GPL, or is a proprietary application. Absolutely none of that is considered. Whether I can change or view the code for an application is irrelevant, if it doesn’t do what I like or need, I move on. If it’s an OSS application, sure, I could change it, but what is the point when there are hundreds of other applications that do the same thing? OSS is a fine movement, and at least they are doing something, unlike the FSF, but it has no intrinsic merit except to those who think software is some sort of political battlefield of licenses. It’s not. It’s just software. Another problem is attitudes that seem to hold “openness” as some sort of virtue that excuses flaws in the program. It doesn’t. Whether I can change the source doesn’t excuse bugs or flaws in that source, particularly when my bug reports in proprietary applications are met with “thank you, we’ll get right on that” type responses, and OSS bug reports either go unanswered or I get some condescending douche telling me I should fix it myself if I’m so worried. At which point I go back to the “evil proprietary” program developer, because I can actually get things done with it.

Will Manic Digger become more than a Minecraft clone? How should I know. honestly I don’t care. my problem is it’s based on the exact same premise and the only virtue it has is being Open Source, which seems to be enough for the people who get warm fuzzy feelings about sharing code in a communal environment with their fellow man, but not for me, because I judge the software/game on it’s merits, not it’s license.

and the fact that really Manic Digger is still much earlier in its development than Minecraft is, there is still plenty of time and opportunity for it to become something much different than a Minecraft clone.

I agree. but until it does become something different than a Minecraft clone, it’s still a Minecraft clone. An open source Minecraft clone, that only runs on Windows, to be exact.

Now to be clear, I’m not saying Manic Digger is shitty and the people behind it are idiots or anything like that; making a clone of Minecraft is a collossal undertaking in many ways. I just don’t like that it tries to ride on the idea that it’s Open Source, without presenting any other unique virtues. That works for some people, but it doesn’t work for me. If I’m not happy with a software product, I don’t want to have to spend my time working on somebody else’s code just so that product is usable to me. I want to find something that does work. Same for games- I don’t want to have to work on somebody else’s code just to make the game enjoyable, I’ll just find something that is enjoyable as is.

I’ll download the latest MD though, to see how much it’s progressed in the last 10 months.

Comments are closed.