The Truth About Medievia: A Saga of Code Theft

This is a mirror of the site originally produced and operated by KaVir. His old domain has gone defunct and is in the hands of spammers now so I've removed the link to it.

I've also removed all links to email addresses which were here. Probably should have done that a long time ago.
Realms of Despair also has a mirror up here: http://www.realmsofdespair.com/portal/med/


"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.

"Medievia is a Mud running on Merc 1.0 (HEAVILY Modified, and still being modified) code."
-- 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, Senior Management, Director of Programming 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 afterward 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.
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 in 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 in 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 in 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 in 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 in 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 in 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 in 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