Comparison of Merc 1.0 and Medievia IV
"I have been shown the [Medievia] code...there is no doubt that it is Diku based".
-- Michael Seifert, one of the Diku creators.
"Vryce was indeed one of the major reasons i stopped contributing to the community, and found other places to spend my energy".
-- Hans-Henrik Staerfeldt, one of the Diku creators.
"Did someone "make up" a 2.5 MB file of fake Medievia code? I've seen it, if it's not real, it's one HELL of a fake".
-- Russ Taylor, creator of the ROM codebase (a Merc derivative).
"...when Medievia started, it was pretty much stock Merc, and no matter what state it is in now, it's just stripping and replacing of stock code..."
-- Mitchell M. Tse (aka Hatchet), one of original Merc creators.
"Vryce has posted to this group acknowledging that he started with Merc code...I've played Medievia and I've seen Diku-specific bugs in it".
-- Michael Chastain (aka Furey), one of original Merc creators.
"Medevia is based on Merc 1.0 source code. If it was based on Merc 2+, then there would be stronger legal grounds as Merc 2+ (and thus it's derivatives, Envy, etc) are all registered with US Copyrights at the Library of Congress".
-- Michael Quan (aka Kahn), one of original Merc creators.
"I've also seen the code myself, and am 100% certain that it is derived from Merc code, which is derived from DikuMUD".
-- J. Herlihy (aka AxL), maintainer of the Historical DikuMUD List.
"I left because I didn't want any more of my work (at the code level and the building level) associated with Medievia.com. I don't need code comparisons or audits or God to come down to Earth to know who is telling the truth. The code is DIKU, I know because I *worked* on the code".
-- Keith (aka Thranz), former Medievia coder.
"I was the person who concieved the world of Medievia, who decided to put Medievia online...I designed the original world for Medievia...While Vryce may be a half decent programmer, he didn't WRITE Medievia, he modified it, it's still basically a Merc (Diku) mud, it operates like one, it looks like one, face it, it is one".
-- Michael A. Smith (aka Highlander), the original creator of Medievia.
"We started in 1992 as a DIKU mud. Since we have recoded the whole mud and have diverged from a classic DIKU mud, we no longer advertise the DIKU credits on our title page. Some people feel this is an injustice to the DIKU team, but we at Medievia no longer believe our mud to be a DIKU".
-- Michael Krause (aka Vryce), owner of Medievia.
"True, there are no credits to the diku team on our opening screen, but neither are there any credits to anyone else. We happen to like our screen without them".
-- Sultress (former Medievia head of PR).
"struct char_data is now CChar and CCharPtr
struct obj_data is now CObj and CObjPtr
struct room_data is now CRoom and CRoomPtr"
[snip rest]
-- Ozymandias, current head coder for Medievia.
"For years I have believed Medievia to be righteous in its claims to be original and free of
copyrighted materials (including both the code, and the recent massive work down to remove
copyrighted references in zones, monsters, items, etc.). It now appears Medievia is outwardly
original and copyright-free, but inwardly I highly, HIGHLY, question the origins of many of lines
of code".
-- Omawarisan, former level 140 Medievia god, self-removed in protest over this issue.
Medievia was started in February
1993 by Michael Smith (aka "Highlander"), and it was he who was
responsible for the original concept. He recruited two other primary staff
members to assist him - Anthony Rowley (aka "Balor") and Michael Krause
(aka "Vryce"). The mud was initially stock Merc 1.0, a new Diku-derived
codebase which had only been released a couple of months earlier (on 18th
December 1992).
After a "war of the gods" in September 1993, Krause was removed from the staff,
but shortly afterwards managed to return and seize full control of the mud.
Things settled down again fairly quickly however, as Smith's rants on usenet
had not made him very popular.
Then around 1995 the flame wars started for real. Krause was selling in-game
equipment to the players, an action which violated the Diku license under
which he had been allowed to use the Diku/Merc codebase. Instead of stopping
his illegal activity however, Krause stripped all the credits from Medievia,
renamed it from Medievia III to Medievia IV, and claimed that it had been
"rewritten from scratch" and was therefore no longer bound to the
Diku or Merc
licenses.
The Diku team have spent countless futile hours conversing with Krause, but to
no avail. The Medievia source code itself has been examined by dozens of people
(including myself, the Diku team, the Merc team, and numerous other respected
members of the mudding community) and is quite obviously still based upon Merc
1.0 - in some files the only change is that the original copyright notices have
been removed. At least four Medievia staff members have spoken out against
Krause and Medievia, including one of the Medievia coders who stated "I left
because I didn't want any more of my work (at the code level and the building
level) associated with Medievia.com. I don't need code comparisons or audits or
God to come down to Earth to know who is telling the truth. The code is DIKU, I
know because I *worked* on the code".
At this point I know many of you are thinking "who cares?". The answer is
"many of us". Muds have been around since 1978 and the community which has
built up around them is based upon trust, sharing and mutual respect. Members
of the community work for free, as a hobby, releasing code for other newer
members to develop from. If it hadn't been for Alan Cox's AberMUD, there would
have been no inspiration for DikuMUD. If not for DikuMUD, there would have
been no Merc, and Medievia wouldn't exist today (nor would my GodWars codebase,
which is based upon Merc 2.1 - and which has spawned well over a hundred
different muds over the last 5 years).
Hans-Henrik Staerfeldt (one of the original Diku team) said to me in an email
that "Vryce was indeed one of the major reasons i stopped contributing to the
community, and found other places to spend my energy". Imagine if there had
never been a DikuMUD. Think how different the mudding community would be
today (and for you Medievia-fans out there, that means that Medievia wouldn't
exist). Now think of what the mudding community might have been like if the
Diku team had publically released Diku II, or perhaps had carried on developing
new codebases. Imagine what our community might have been like if it wasn't
for Krause.
Of course Krause isn't the only person who violates the Diku license, but he
is perhaps the first and certainly the most well-known. He is also the example
cited by other muds who wish to justify why the license shouldn't apply to
them, and as such he cannot simply be ignored. He's also the example cited by
many mud developers when they explain why they have decided not to release
their code to the public - and to be honest, I don't blame them. When I write
software professionally my incentive is money. When I develop and release code
for the mudding community there is no financial gain. The only thing I expect
is recognition for my hours of work - to be given credit where it is due. If I
don't even get that, why bother?
I am not "anti-Krause" or "anti-Medievia". My remarks are not made out of
"hate" or "jealousy" as some Medievia players claim. My desire is for Krause
to restore the Diku and Merc credits and start following the licenses, to
respect the countless hours of work that people have done in their spare
time. I recognise that Krause and his team have put a lot of time into
Medievia, I just wish that that they would recognise the same of the Diku and
Merc teams - and I am not alone in my opinions. Medievia has already been
banned from The MudCenter and Top Mud Sites. The mudding community is divided
in many ways, but we protect our own.
Medievia is perhaps one of the twenty oldest Diku muds in existance (out of
thousands!) and has (to my knowledge) the second largest playerbase of any
Diku derivative, second only to Realms of Despair. It's many features, while
neither unique nor revolutionary, combine to form what is obviously a very
popular mud. It wouldn't take much to turn Medievia into a shining example
of what can be done with a Diku mud, rather than the blemish on the mudding
community that it currently represents. The decision, however, is one that can
only be made by Krause himself. The rest of us can show him the way, but we
cannot force him to honour the license he agreed to all those years ago.
I've no doubt there are some people reading this who still don't care, who
still think that Krause is justified in his actions. Just like me, you are
entitled to your own opinions, but at least now you can make those opinions
knowing the full facts of the situation.
Please make sure you take a look at my FAQ,
which I've put together from common questions (from Medievia players and
supporters) and answers (from various posters).
Following this are some statistics
which I've put together after reviewing the Medievia code, as permitted by
the fair use act. The seven files I
reviewed were selected at random from the February 1996 version of Medievia
IV.
I'd like to thank Melanie Premo for
originally suggesting that I "post some snippets of the code, along with the
Diku code for comparison, side by side". It was her numerous posts on
rec.games.mud.diku that inspired me to actually put this site together.
Please make sure you also take a look at
Kurt Schwind's
website.
KaVir.
IMPORTANT
Please note that due to threats from Vryce I have removed almost all of the
Medievia code from this site (apart from about a dozen lines on the
statistics page, which I've quoted under
the fair use act). If you wish to see the
actual diff outputs of my comparison, you'll have to connect
here instead. My ISP have
a habit of jumping at shadows, and I don't want to risk losing this site now
that it's been so well advertised. It's really important that everyone in the
mudding community learn the truth about this. Because of a small number of
people who claim credit for - and profit from - other peoples work, more and
more mud coders are holding back their work rather than releasing it into the
community. This means that we ALL suffer as a result.
UPDATE
Click here to visit game.org's version of my site.
Alternatively, click here to visit a mirror of my original site.
File for comparison: fight.c
Size of file in Merc 1.0: 1130 lines
Size of file in Medievia IV: 1945 lines
Amount of identical code: 776 lines
Overall Medievia IV originality: 60.1%
View the slightly squashed diff analysis (easier to read)
View the diff analysis if full (no characters chopped off)
My Favourite part:
combat_next_dude = ch->next_fighting;
Strange how both Vryce and the Merc team have a "combat_next_dude" pointer - I
wonder what made them both pick such an unusual variable name?
File for comparison: magic.c
Size of file in Merc 1.0: 4494 lines
Size of file in Medievia IV: 5842 lines
Amount of identical code: 3546 lines
Overall Medievia IV originality: 39.3%
View the slightly squashed diff analysis (easier to read)
View the diff analysis if full (no characters chopped off)
My Favourite part:
/*********************************************************************
* New spells -Kahn *
*********************************************************************/
Kahn was one of the Merc team - if Vryce really wrote Medievia from scratch, what is Kahn's
name doing in the Medievia code?!
File for comparison: act_soc.c
Size of file in Merc 1.0: 345 lines
Size of file in Medievia IV: 363 lines
Amount of identical code: 312 lines
Overall Medievia IV originality: 14.0%
View the slightly squashed diff analysis (easier to read)
View the diff analysis if full (no characters chopped off)
My Favourite part:
{
global_color=32;
send_to_char(action->char_no_arg, ch);
send_to_char("\n\r", ch);
act(action->others_no_arg, action->hide, ch, 0, 0, TO_ROOM);
global_color=0;
return TRUE;
}
Interesting way to code colour :P Okay, it's not that funny - but the only other thing that's
changed in this file is a "do_socials" command, so I thought it was better than nothing.
File for comparison: spec_pro.c
Size of file in Merc 1.0: 1605 lines
Size of file in Medievia IV: 2916 lines
Amount of identical code: 927 lines
Overall Medievia IV originality: 68.2%
View the slightly squashed diff analysis (easier to read)
View the diff analysis if full (no characters chopped off)
My Favourite part:
/*
* Should be some code here to defend against weird monsters
* getting loaded into the pet shop back room. -- Furey
*/
Furey was one of the Merc team too! Why does Medievia have the names of two of the Merc
team in it if it's really written from scratch?
File for comparison: limits.h
Size of file in Merc 1.0: 26 lines
Size of file in Medievia IV: 17 lines
Amount of identical code: 13 lines
Overall Medievia IV originality: 23.5%
View the slightly squashed diff analysis (easier to read)
View the diff analysis if full (no characters chopped off)
My Favourite part:
(glances around for ANY Medievia code to criticise...)
Hmmm so basically the only thing Vryce did to this file was to strip out the Diku
copyright notice and replace it with his own...
File for comparison: db.h
Size of file in Merc 1.0: 129 lines
Size of file in Medievia IV: 144 lines
Amount of identical code: 104 lines
Overall Medievia IV originality: 27.8%
View the slightly squashed diff analysis (easier to read)
View the diff analysis if full (no characters chopped off)
My Favourite part:
#define WORLD_FILE "tinyworld.wld" /* room definitions */
#define MOB_FILE "tinyworld.mob" /* monster prototypes */
#define OBJ_FILE "tinyworld.obj" /* object prototypes */
#define ZONE_FILE "tinyworld.zon" /* zone defs & command tables */
#define SHOP_FILE "tinyworld.shp" /* shop messages and markups */
#define GREETINGS_FILE "greetings.txt" /* initial greetings screen */
#define CREDITS_FILE "credits.txt" /* for the 'credits' command */
#define NEWS_FILE "news.txt" /* for the 'news' command */
#define MOTD_FILE "motd.txt" /* messages of today */
Has been changed to:
#define WORLD_FILE "medievia.wld" /* room definitions */
#define MOB_FILE "medievia.mob" /* monster prototypes */
#define OBJ_FILE "medievia.obj" /* object prototypes */
#define ZONE_FILE "medievia.zon" /* zone defs & command tables */
#define SHOP_FILE "medievia.shp" /* shop messages and markups */
#define GREETINGS_FILE "greetings.txt" /* initial greetings screen */
#define CREDITS_FILE "credits.txt" /* for the 'credits' command */
#define NEWS_FILE "news.txt" /* for the 'news' command */
#define MOTD_FILE "motd.txt" /* messages of today */
Hmmm "medievia" is one character less than "tinyworld" - looks like someone
forgot to re-indent their code after a little renaming! Anyway, the reason
I pointed this out is because of the next file...
File for comparison: spells.h
Size of file in Merc 1.0: 228 lines
Size of file in Medievia IV: 250 lines
Amount of identical code: 214 lines
Overall Medievia IV originality: 14.4%
View the slightly squashed diff analysis (easier to read)
View the diff analysis if full (no characters chopped off)
My Favourite part:
/*
* Spell numbers are well known.
* They appear in tinyworld files attached to magical items.
Tinyworld files eh? I thought they were all renamed to "medievia" files (see db.h
above)? I guess Vryce forgot to change the comment in this file :P