MEDTHIEVIA!
A 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.

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

"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 IV is a Merc 1.0 mud which doesn't follow the either the Merc or Diku licenses. According to copyright law, you may not create a derivative work without the permission of the author - and without following the appropriate Diku and Merc licenses, Vryce (the owner of Medievia) has given up all rights he would normally possess under copyright law.

What this means is that legally nobody may use the code. However there is an exception; under the fair use act, I am permitted to use (and quote sections of) the code for the purposes of review and criticism. As such, I have picked seven files from both Merc 1.0 and Medievia IV (February 1996 version) and given some statistics, along with a diff of the two files in each case.

I've also put together an FAQ using a mixture of my own answers and those of usenet posters. If any of the posters wish to have their quotes removed or changed - or add some new ones - please let me know and I'll sort it out asap. I've tried to keep the quotes as in-context as possible.

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.

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