Top Mud Sites Forum

Top Mud Sites Forum (http://www.topmudsites.com/forums/index.php)
-   MUD Coding (http://www.topmudsites.com/forums/forumdisplay.php?f=9)
-   -   Revolutionary New OLC and Scripting (http://www.topmudsites.com/forums/showthread.php?t=5356)

locke 01-30-2009 09:09 AM

Revolutionary New OLC and Scripting
 
Check out NiMUD at

Lots of new features, scripts, the most powerful MUD codebase in existence!

Zivilyn 01-30-2009 12:30 PM

Re: Revolutionary New OLC and Scripting
 
It come with Asbestos armor? Lol, kidding, welcome back again Locke. Did you want to list features and explain why it's the most powerful MUD codebase in existence?

locke 02-05-2009 03:43 AM

Re: Revolutionary New OLC and Scripting
 
I have to admit it's still being worked on. There are some definite kinks. The bug I found today: if you hurt() in a script, destroying the target, the variable points to a bad part of memory when you next dereference it. Yay. Crashed the MUD hard. This will be fixed soon I hope.

I plan to implement only bug fixes in the hard code. I've noticed I've written a lot but not all of it functions as expected, so that's the only changes I will be making from here on out: making it do what it says it does and making it work as expected. Yes, I'm done adding features.

The latest updates not even available yet on SourceForge include fixes to the magic and spell system that I have put off for years. Today I added 6 (yes 6!!) spells, one creates an object, 3 are offensive and 2 create mobs. Once the kinks are ironed out I will be pumping out 100+ spells for an upcoming release demonstrating all of the features of NiMUD.

-------

The most advanced features of NiMUD currently are still amazing to use. I'm particularly fond of the "TRACE" feature which permits an immortal to "act out" the actions of a scripted actor in the game. Once in TRACE mode (by typing "trace" from within the script editor), everything you do is recorded and stored in the script.

The way I usually create one of these is by creating a new script and then adding the first line:

autowait (25);

This is a good pace for a script. I then exit the editor and type the 'trace' command to enter 'trace' (or 'tracing') mode.

When I'm done acting out the set of activities, I type 'trace' in the script editor one more time to exit this mode and it stops recording my actions.

I used this method to create the adventurer guide. I was able to walk for a great distance within the MUD and the adventurer makes it to his destination.

At the end of this script I wrap it up by adding these lines by hand:

do({:waves and heads back to the Inn.});
jump(5005);

At this point, I made sure all the settings were correct, created a couple accompanying scripts that help the player participate, and polished it off with a self-test.

I've made several interesting areas with this method and with other scripting features. There are even some room creating features I haven't used in a while that are pretty cool, like the programmable map-room feature.

------

Adding a spell is easy! First, create the spell, then create a script that will be the actions of the caster. I was able to add a creature summoning spell, an offensive spell and a spell that creates an ice sword all with this method. I've created several functions that incorperate the features of the components and gem magick systems.

if ( reagents( mana, reglist ), { goto({cast}); }, { goto({failed} } );
<- tests to see if the caster has everything they need
mix(mana, reglist);
<- casts the actual spell, consuming the reagents

and

if ( gem({f|w|e|a},20), { goto({cast}); }, { goto({failed}); } );

where gem consumes any available mana stored in magic gems

Example: Water-elemental Spell Summons Water Spirit

Zivilyn 02-05-2009 11:46 AM

Re: Revolutionary New OLC and Scripting
 
The trace() sounds great actually Locke. Reminds me of Applescript with 'record new script' then you just do whatever and hit stop when it's done.

locke 02-06-2009 03:11 AM

Re: Revolutionary New OLC and Scripting
 
I released a new version today with new production notes and many fixes enabling the spell system to work with gem magicks. A future version will include the 'natural magic' which takes advantage of hundreds of spell components to create a realistic alchemy.

Download at my website, below:

locke 02-08-2009 12:59 AM

Re: Revolutionary New OLC and Scripting
 
Does this function read memory it shouldn't?


scandum 02-08-2009 01:47 AM

Re: Revolutionary New OLC and Scripting
 
Yes. It's the o+2

You could try this:


locke 02-08-2009 02:01 AM

Re: Revolutionary New OLC and Scripting
 
The o+2 would not be called if o+1 is checked against '\0', thus:


scandum 02-08-2009 02:22 AM

Re: Revolutionary New OLC and Scripting
 
Hrm.

It may not read invalid memory that way, but it still reads like a hack job.

locke 02-08-2009 04:36 AM

Re: Revolutionary New OLC and Scripting
 
It's always a hack-job, Scandum. My method is elegant.

Fizban 02-27-2009 03:12 PM

Re: Revolutionary New OLC and Scripting
 
I find Scandum's method to be more elegant, as well as more "proper". As for the scripts, the trace feature is indeed neat, but the syntax screams "coder" whereas I think in-game scripting should be more builder orientated. If you need a coder to make all the scripts then the benefit of the system is largely negated in my eyes. If you need a coder to do the scripts it's just as easy for them to write them in C.

locke 03-09-2009 09:29 PM

Re: Revolutionary New OLC and Scripting
 
The reason you write a scripting language is not to make it easier, but to make it more powerful. A logical scripted language is capable of a higher degree of variation than without it, plus the headache of dealing with "C" code, timed events, etc, must be formalized somehow.

I think my language could use 1 or 2 changes, but overall it has greatly enhanced the experience and provided far more possibilities for spells, for instance, or area traversal, as well as the "random encounters" aspect of the game --:eek:

Fizban 03-11-2009 01:10 PM

Re: Revolutionary New OLC and Scripting
 
That's not really true. The benefit of the scripting language in a MUD is largely to reduce the workload of the coder by allowing the builders to create the scripts in their zone themselves. Builders are not known to be coders as such the language should ideally be easy enough to use to allow non-programmers to be able to use it to at least a minor extent.

locke 03-11-2009 04:19 PM

Re: Revolutionary New OLC and Scripting
 
Actually, Fizban, it's very difficult to argue that considering I have personally written every single NIMScript to date and thus have plenty of evidence to the contrary. I would not say it's less work.



The things the scripts allow are multiple ways of 'getting to' the things that were once basic MUD features, but they can involve event-based activities. Also, they provide rudimentary logic and random variation.

In fact, it merely moves the "spec_fun", C hardcode world to soft code, decreasing overall reliability and increasing performance requirements (albeit slight).

Yes, in part, to open it up, but not really: many scripters don't have the extensive background necessary to undertake doing it on their own, and thus need training and guidance which I also provide. So, while it has yielded better gaming rewards, it has not really been less work at all.

The one place where it really pays off is when you want to create many variations on one theme. For instance, let's say you had a generic fireball script and you wanted to make many different strengths of fireballs as separate spells, that would be fairly easy to do. Maybe you just think of it as an offensive spell like fireball, then you can make a bunch of fireball like spells with different timed emotes and different potencies very quickly.

Another example is the Pirates part of The Isles. It is fairly easy to create 5 similar adventuring ships based on the first ship. You can just make one ship perfectly, and then use it as a template to make the other 4 ship adventures, swapping in and out different parts to make them different (such as the captain's name, the ship's name, or the types of random encounters and their chance of happening).

:cool:

Fizban 03-13-2009 05:12 PM

Re: Revolutionary New OLC and Scripting
 

I wasn't saying they can't save the builder time as well, I was just stating that ideally, at least in my eyes (ie. I'm not saying your opinion is wrong, just simply that it's coming from a different perspective) , a scripting language embedded into a MUD should have simple enough syntax for the majority of the MUD's staff to be able to use it to save the absolute largest amount of time. That way more people can share the workload and builder's can write the scriptsfor their own zones when making the zones instead of having to think up scripts and then request that a coder write them for them. DG Scripts can most likely do 95%+ ofthe things your NIMSCript (I said most likely) but it has syntax which is friendlier to non-coders who would quite likely be intimidated by the syntax used in the NIMScript. I certainly do agree that how powerful and flexible a language is matters, I just disagree on it being the only thing that matters.

locke 03-14-2009 01:58 AM

Re: Revolutionary New OLC and Scripting
 
From what I can see, DG scripts can't do the things NIMScripts do, because DG scripts aren't written this way at all. NiMScripts aren't exactly in their best form, but they offer far more logic power than DG scripts. DG scripts seem to be a bit more specific in how they handle events, where NIMScripts are more general and have wider applicability. Plus, a newly added sub-language called "Building Scripts" is unlike anything available on a MUD before this release on 03/09/2009.


Game Statistics
---------------
Highest ranking player: Ponnet
Played the longest: Ponnet with 11 hours, 108 logins
Most diverse skillset: Ponnet with 62 skills
Most powerful mage: Ponnet with 13 spells
Most experienced: Ponnet with 126495 points

Strongest: Fizban with 27 strength
Smartest: Ponnet with 30 intelligence
Wisest: Ponnet with 30 wisdom
Nimblest: Ona with 25 dexterity
Toughest: Ponnet with 30 constitution

Nicest: Ponnet with 112390 karma
Meanest: Kileem with -2178 karma

Fizban 03-14-2009 03:22 AM

Re: Revolutionary New OLC and Scripting
 


I could easily, very easily in fact make that Game Statistics Page (exception for that most diverse skillset line, it could be done, but not necessarily easily, that would actually be a pain) with just DG Scripts. I'm not exactly sure what all NIMScripts can do but if you can list a few things they can do (5-10) I can list which DG can and can't feasibly do.

locke 03-14-2009 11:41 AM

Re: Revolutionary New OLC and Scripting
 
The Game Statistics had nothing to do with NiMScripts. In fact, it isn't possible to do that in NiMScripts without specific functions -- I was just sharing that you made a high score.



NiMScripts can:

-Appear on a prop, actor or scene, a player or be called as a spell or inside another script
-Be called in response to the following game events: SAY, "GIVEN"/"GETS", COMBAT ROUND START, ACTOR DEATH/OBJECT DESTROY, ACTOR BIRTH/OBJECT LOAD/ROOM RESET, SOMEONE ENTERS A SCENE, SOMEONE EXITS A SCENE, A COMMAND IS TYPED IN PROXIMITY TO ACTOR/SCENE/PROP, EACH TICK, EACH PULSE.
-Be installed by another script on an entity instance or player
-Be triggered by another script that has the owner as target
-Generate an updated display using an ASCII graphics renderer which includes line, circle, button etc
-Generate MXP and MSP
-Dispense objects, breed hirelings
-Be fed a special script type called a "Builder Script" which it uses to generate customized dynamically allocated areas
-Utilize special functions to be called as a SPELL

Fizban 03-14-2009 02:39 PM

Re: Revolutionary New OLC and Scripting
 
The Game Statistics had nothing to do with NiMScripts. In fact, it isn't possible to do that in NiMScripts without specific functions -- I was just sharing that you made a high score.

DG I thought it only listed online players but realized this isn't the case, so DGcan not actually do this either, it could generate those stats among people currently online, but can not read from pfiles.

NiMScripts can:

-Appear on a prop, actor or scene, a player or be called as a spell or inside another script

DG Can be attached to rooms, objects, mobs, or players as of tbaMUD 3.58, the player part is a relatively new addition though

-Be called in response to the following game events: SAY, "GIVEN"/"GETS", COMBAT ROUND START, ACTOR DEATH/OBJECT DESTROY, ACTOR BIRTH/OBJECT LOAD/ROOM RESET, SOMEONE ENTERS A SCENE, SOMEONE EXITS A SCENE, A COMMAND IS TYPED IN PROXIMITY TO ACTOR/SCENE/PROP, EACH TICK, EACH PULSE.

Object scripts can be triggered when the object is picked up, dropped, given to another player, randomly every 13 seconds, a set amount of time after the object is loaded, when a specific command is typed by someone holding the item, with it in their inventory, or in the room with it (you can also decide in which of those stats a specific trigger will fire), when it is worn, or removed, or loaded, when a spell is cast upon it, when a player/mob leaves the room it is in, when it is opened/closed/locked/unlocked or when it is eaten.

Mobile/Player scripts can be triggered randomly every 13 seconds, when a specific command is typed by a player/mob in the same room, when a specific phrase is spoken, when a specific message is sent by act() to the room the mob is in (emotes/socials), when the mob dies, when a player enters or leaves the room with the mob, when the mob itself enters a room, when the mob is given an item, when it is fighting, when it's hp reaches a certain amount of its max, when it is given gold, when it is loaded, when a spell is cast upon it, when it sees a player who it has previously fought, when a door or container in the room with the mob is opened/closed/picked/locked, at a set time of day.

Room scripts can be triggered randomly every 13 seconds, by a specific command, by a specific phrase spoken, by a zone reset, by a player/mob entering the room, by an object being dropped in the room, by a spell being cast in the room, by someone leaving the room, by someone open/close/lock/unlocking something in the room, and at a specific time of day.


-Be installed by another script on an entity instance or player

DG Can do this.

-Be triggered by another script that has the owner as target

DG can't quite do this, but it can pass variables from one script on an entity to another script on the same entity

-Generate an updated display using an ASCII graphics renderer which includes line, circle, button etc

DG can not do this.
-Generate MXP and MSP

DG can not do this either.
-Dispense objects, breed hirelings

DG can do this
-Be fed a special script type called a "Builder Script" which it uses to generate customized dynamically allocated areas

DG can not do this, though exits can be created and removed via DG, but rooms can not be made, so DG can change the shape of an existing zone.

-Utilize special functions to be called as a SPELL

DG can do this by attaching a command script to the player

locke 03-15-2009 02:37 PM

Re: Revolutionary New OLC and Scripting
 
NiMScripts can:

-Be called in response to the following game events: SAY, "GIVEN"/"GETS", COMBAT ROUND START, ACTOR DEATH/OBJECT DESTROY, ACTOR BIRTH/OBJECT LOAD/ROOM RESET, SOMEONE ENTERS A SCENE, SOMEONE EXITS A SCENE, A COMMAND IS TYPED IN PROXIMITY TO ACTOR/SCENE/PROP, EACH TICK, EACH PULSE.

DG Object scripts can be triggered when the object is picked up, dropped, given to another player, randomly every 13 seconds, a set amount of time after the object is loaded, when a specific command is typed by someone holding the item, with it in their inventory, or in the room with it (you can also decide in which of those stats a specific trigger will fire), when it is worn, or removed, or loaded, when a spell is cast upon it, when a player/mob leaves the room it is in, when it is opened/closed/locked/unlocked or when it is eaten.

---> NIMScripts command functions do not replace existing mud commands by default, a special call to "return(1)" alerts the MUD that it should not continue looking for other commands (command syntax properly entered, so stop here) -- if this is not used, the command executes and then the mud continues to the next command. So, in effect, you can override or augment standard commands like 'wear', 'lock', 'drop', 'get' etc by adding a command like this to a "prop" (similar to Diku "object") .. this can be done for rooms, objects or mobiles (actors,props,scenes) and therefore NiMUD can do all of the things listed as possible in DG scripts. Adding script_update() calls to the source in places listed above is also possible, but I have as yet to find a need for many of those.

-Generate an updated display using an ASCII graphics renderer which includes line, circle, button etc

DG can not do this.

---> NIMScripts interfaces with "NAGE", the NiMUD ASCII Graphics Engine. The "NAGE" functions are then tied into NiMScript functions. Since NAGE is modular, you could easily extract its functionality from NiMUD and wire it into DG Scripts, with the required attribution of course.

-Generate MXP and MSP

DG can not do this either.

---> It's probably the addition of only a few functions.

-Be fed a special script type called a "Builder Script" which it uses to generate customized dynamically allocated areas

DG can not do this, though exits can be created and removed via DG, but rooms can not be made, so DG can change the shape of an existing zone.

---> NiMScript have functions dig() and undig() to do this. In the build() processor, though, scripts can be written which generate player-owned facilities, complete with actors, props, scenes, cues and scripts. One early use of these scripts is a player castle which, when deployed, comes complete with random encounters.

-Utilize special functions to be called as a SPELL

DG can do this by attaching a command script to the player

---> NiMScripts must be written in a special way (utilizing magic-specific functions for mana drain and checks for special alchemical supplies or spell components), and are attached to spell objects edited in the "SPEDIT" (spell editor) which sets basic information about the spell (level, name, attached scripts).

You can also write skills using SKEDIT, and then check against them in a script function (as well as tie them to practitioners).

Advanced debugging features: a full screen live debugger, plus other script-related notifications using "NOTIFY" provide information about the script during execution.


Fizban 03-15-2009 03:27 PM

Re: Revolutionary New OLC and Scripting
 
NIMScripts command functions do not replace existing mud commands by default, a special call to "return(1)" alerts the MUD that it should not continue looking for other commands (command syntax properly entered, so stop here) -- if this is not used, the command executes and then the mud continues to the next command. So, in effect, you can override or augment standard commands like 'wear', 'lock', 'drop', 'get' etc by adding a command like this to a "prop" (similar to Diku "object")

DG can do this as well. DG overrides the actual mudcommand by default, but can be set not to.

A few examples below:

That script fires if they type look with no argument, ie. to look at the room. They would get that message in place of seeing the room as would usually occur.

This script is the same as the one before except it triggers when anything is typed by players in the room. (arg list of * does this). It then checks what they typed against the command interpreter and if it would be interpreted as 'look' the "if %cmd.mudcommand% == look" part of the first if check is true. As such this one fires when they type l, lo, loo, or look if all of those would make them look if the script wasn't there. The return 0 in the else tells the script to pass the players input to the MUD as if the script wasn't there so that it doesn't interfere with commands other than 'look'.

This one sends the message in addition to showing them the room as usual due to the return 0 at the top passing the input to the command interpreter in addition to anything the script is doing.

Note: I'm not trying to one up NIMSCript, I'm really mostly comparing because it piques my interest as well, to the best of my knowledge DG was what I'd always considered to be, by far, the most advanced scripting used in any DIKU derived codebase that wasn't just an existing language embedded into the MUD. (ie, I'm not comparing it non mud-specific languages like lua which can be embedded.)

locke 03-16-2009 11:40 AM

Re: Revolutionary New OLC and Scripting
 
This one sends the message in addition to showing them the room as usual due to the return 0 at the top passing the input to the command interpreter in addition to anything the script is doing.

Note: I'm not trying to one up NIMSCript, I'm really mostly comparing because it piques my interest as well, to the best of my knowledge DG was what I'd always considered to be, by far, the most advanced scripting used in any DIKU derived codebase that wasn't just an existing language embedded into the MUD. (ie, I'm not comparing it non mud-specific languages like lua which can be embedded.)[/quote]


Is it mere coincidence that both languages use %variable% syntax? Probably not. NiMScripts have been made available as early as December 1993, so it's likely that parts of NiM's interpreter ended up as DG Scripts.

Here's an example of the mining script:
MUSHes are still easier to write code for, somewhat, because all objects in a MUSH are essentiall the same type. The split between actor/prop/scene is difficult to manage from the hardcode side because of the multiple types distinction on entities. It would probably take a week to fix this, with a lot of unknown consequences.

Here is an example of the script used to manage a pirate ship adventure:


The adventure begins when the player boards the ship. The player is then subject to the changes in the ship's state as set by the above script on a shipmate actor. The script digs an exit to a merchant vessel area with aggressive mobs during one of its random events. In another case, the player is transported to a lifeboat during a storm because the ship has wrecked. Several ancillary scripts are used: one to transport the player to the vessel Aelmon in the first place, another to manage the adventure from inside the Aelmon, and a script for effect during combat on the neighboring vessel, and a fourth script to handle the storm event once the player has been placed on the life boat.

KaVir 03-16-2009 12:28 PM

Re: Revolutionary New OLC and Scripting
 
DG Scripts come from Death's Gate MUD, which was written from 1993 to 1994, and therefore predates NiMScripts. However NiMUD is based on Merc 2.2 (released in October 1993), which comes with a modified version of the scripting system developed by Worlds of Carnage in 1992, so it could be that they were both inspired by the same system. This would make sense, as Worlds of Carnage was the first Diku with embedded scripting. Did you remove the scripting system from Merc 2.2 before adding your own, or did you modify it into the NiMScripts?

I'm not sure if it's really a "revolutionary new OLC and scripting" if it's been around for 14 years though....

Fizban 03-16-2009 01:48 PM

Re: Revolutionary New OLC and Scripting
 
The World's of Carnage inspiration is a possibility I suppose, but Death's Gate was a CircleMUD and not a Merc derivative.



And Locke, do not let me catch you editing Wikipedia again to add this:


It has been removed, and if said false information is added back I will be very annoyed. I suppose I can't prove it's you, but here's the revision information from wikipedia of it being added less than two weeks ago:

This is an old revision of this page, as edited by 98.111.199.226 (talk) at 17:36, 4 March 2009. It may differ significantly from the current revision.

I'd bet money that 98.111.199.226 is your current IP or was as of two weeks ago. EDIT: (I traced the IP, it's in Pennsylvania, anyone know if that is where Locke lives?)
In fact do me a larger favor. Stop editing any and all MUD related wikipedia pages to make references to NiMUD. NiMUD's page was deleted some time ago due to being voted to be of little consequence, relatively unknown, and to have few MUDs running it. Since then you seem to have tried editing almost every other DIKU codebase's page in existence to add mention of NiMUD to it. Why do you bother? I'm guessing vanity, and that hopefully if it is mentioned on enough other pages you will have an easier time making the claim that it is of enough consequence to deserve its own page once again. Frankly I don't care for the reason, I do not want to see NiMUD referenced as being an inspiration for CircleMUD or DG Scripts when it was pre-dated by both.

locke 03-16-2009 10:24 PM

Re: Revolutionary New OLC and Scripting
 
Well, early versions of The Isles had the original interpreter. Those versions were released in late 1993. I didn't have an account at any ISPs or Universities at the time, so I used Don Jone's account, and several others. Later, I fixed a major memory leak which made the language usable in 1996. I took a hiatus from coding in late 1997 which lasted until 2000. I then took another break until 2003. In 2003 I fixed a long time issue which opened the language up to a stable base of functions. It took three days to find it.

At the time the only other system available for Merc and that I was aware of aside from MUSHcode was MobProgs.

I based the %-% variable method from MS-DOS Batch File language. Since I was at the time developing The Isles using the DJGPP Compiler, and it seemed like something easy to implement. I've since then learned a lot more about programming and my experience has become quite vast. I can see where I could write a better language in retrospect, but don't really see a reason to because writing the software is not profitable for me. I'm also displeased with its illegal sale by Owen Emlen, so my days in MUD development are pretty numbered.

Considering many of the advanced features were only recently programmed, and since this thread proves its superior feature set, I would say "revolutionary" and "new" are fine adjectives. Additional evidence to back this up is in the 80 or so downloads since January, proving the software is still a cult classic.

Fizban,
As for your unfounded claims versus me on Wikipedia, you might want to consider that I have an avid fanbase, many of which do actively use other websites and it is very possible that discussions on my MUD may have lead to others erroneously making claims on other websites.

Regards,
Locke

locke 03-16-2009 10:29 PM

Re: Revolutionary New OLC and Scripting
 
Actually, it's because you're obscuring the truth and lying about my software, along with many others, who share a group delusion. You think you're "defending the truth", but you're really "ganging up on the truthsayer".

These letters prove the circulation of NiMUD as early as October. I had already uploaded this information to several MUD archival sites, including wuarchive, and other defunct FTP directories services.

Bull**** your way out of believing it all you want, but I speak the truth when I talk about the 3Q-4Q of 1993.



<- October, at least 1 month after it was released to several FTP sites and announced privately on MUD bboards such as at Hidden Worlds MU*

Fizban 03-16-2009 10:37 PM

Re: Revolutionary New OLC and Scripting
 
I'm making no claims about your software. I stated DG was not in anyway derived from it, but I didn't state that yours was derived from DG either. I did though in fact state that I would appreciate you keeping the DG Scripts Wikipedia Page free of all references to NIMScript. As to whether or not you actually made the change yourself I can't prove as I do not know your IP nor where you live. What I do know is that whoever made the changes does live in Pennsylvania. I also know that Thomas Arp aka. Welcor wrote most of the DG Scripts language and that it was not derived from NIMScripts. I also know that KaVir has deleted references to NiMud in the past from the GodWars Wikipedia Page so that whoever is adding references to NiMUD to one of the pages is likely the same person who has added them to all of them in the past. I also know the change was added to the DG Scripts page just shy of two weeks ago which was around the same time that you recently began posting on TMC again.

Summary for those with tl;dr syndrome: I make no claims about the history of NiMScript, but I will vehemently deny any claim that DG is a derivative of said language as I have never heard of NiMScript till recently and have worked with Thomas Arp on TBA for five years and know that 99%+ of what is today known as DG Scripts was written by him or was in the initial release by the DG Staff when they released it. (ie. he coded the majority of the differenced between what it was then and is today, not that he coded the initial language that was used on Death's Gate)

locke 03-16-2009 11:05 PM

Re: Revolutionary New OLC and Scripting
 

locke 03-16-2009 11:07 PM

Re: Revolutionary New OLC and Scripting
 
I would say the languages are not similar aside from the use of %<somevar>%, and possibly function calls which look like LPC anyway. I only recently named them NIMScripts (2003) -- before that they were referred to as "NiMUD's scripting language" or "NIM script interpreter". It's been a part of The Isles since 1994, but I wanted to wait to release it and now that some time has passed it is time to! I believe I even wrote a "how to" guide a few years back on installing them in other DIKUs. It's no easy chore though.

KaVir 03-17-2009 04:53 AM

Re: Revolutionary New OLC and Scripting
 
That post is dated 31 July 1994. As I mentioned previously, Merc 2.2 (which TheIsles is based on) wasn't released until October 1993.

Fizban 03-17-2009 09:37 AM

Re: Revolutionary New OLC and Scripting
 
That just made me chuckle, I hadn't even bothered clicking his link to look at it till you quoted it but yeah....when you provide a link to back up your side of a story and the link actually backs up the other person's more than your own I think it's time to realize that well, just maybe, the other person was actually *gasp* right.

locke 03-17-2009 01:30 PM

Re: Revolutionary New OLC and Scripting
 
Oh, you're right it is. Well, there you have it. It's actually the post mentioned in a later reply above that shows OLC to be written for CthulhuMUD, my first mud, which became NiMUD.

Although I did mention the release date inside an original release as December 31st, 1993. Merc had just came out when I was starting MUDs. The MUD I started on was a Merc 1.0, called Nameless MUD. By naming my software Nameless Incarnate, I was attempting to keep things documented. Chris Woodward was in the hospital by late 1994, so we certainly couldn't have been developing the software in 1994 together because he was incapacitated. By late 1994 he to leave Penn State during his first semester, and had gained a considerate amount of weight and was actually slightly shorter than me - whereas when I met him he was taller than me and rail thin. By December 13, 1995 he was dead. So, claims made that he somehow continued to work after the initial release is impossible and he did not work on the MUD after early 1994, if at all in 1994. That post must be from a NeXT machine which I had access to after Chris went to college. Before that I had only worked locally using DJ Delorie's GNU C Compiler for MS-DOS, which is where The Isles OLC was original written. Both Chris and I had installed this compiler as per the instructions on the Merc 2.0 port. Since we were already fans of the software, we downloaded the newest version of Merc as soon as it was made available. So, the development occurred almost immediately after Merc 2.2's release and it was later included as an add-on to Envy, but only after ILAB was written a year or so later. I believe Chris was still alive when ILAB was started, because I remember him giving me permission to permit the port, and of course being friends he thought it was a cool thing. Both of us were excited when Jason Dinkel approached us sometime later.

This is OT though, we're here to discuss NiMScripts and new OLC features, not Wikipedia or The Isles start date.

locke 03-17-2009 01:41 PM

Re: Revolutionary New OLC and Scripting
 
Merc 2.0 released in 1993 :
Already on MSDOS:
Already distributed by April 21:
This is the post that shows Hidden Worlds added their OLC, mid-1993. This was the first one I ever saw on a Merc and it was the inspiration for ours though I never immorted -- Chris Woodward did -- our OLC was released only a few months later:
Me announcing CthulhuMUD using my friend Chris Tchou's Andrew account: Sept 1, 1993 -- this is precisely the time when we wrote OLC for our MUDs. It was only a few weeks/a month later that it was hacked and stolen, so we then released it publically. I re-released it several times in 1993 and 1994.
Looking for a site
Hidden Worlds goes down
Hidden Worlds back up!

locke 03-17-2009 02:02 PM

Re: Revolutionary New OLC and Scripting
 
Sept 19, 1993, Circle 2.11 released
User looking for CthulhuMUD October 7th, 1993
CthuhuMUD back on new server
CircleMUD 2.20 released Nov 17, 1993
NiMUD had been created at this point, and my personal "NiMUD" development site, post-Chris Woodward: Dec 3, 1993
Evidence that OLC was already written: Dec 27-31, 1993 .. I gave it to the one person, then I released it because I felt everybody deserved it.

locke 03-17-2009 02:27 PM

Re: Revolutionary New OLC and Scripting
 
What the confusion is about is that I also released one Dec 31, 1994. This was a one year anniversary.

Fizban 03-17-2009 04:29 PM

Re: Revolutionary New OLC and Scripting
 
Simply something that piqued my curiosity, why were you posting under the name Donald H. Jones and signing the posts Herb Gilliand in the signature?

KaVir 03-17-2009 05:18 PM

Re: Revolutionary New OLC and Scripting
 
Yup, but I was talking about Merc 2.2, which The Isles was based on. I just downloaded Merc 2.2 and The Isles to verify the dates, and noticed that the date I gave previously was incorrect - sorry about that. Merc 2.2 was actually released 24th November 1993. I may have been thinking of 13th October 1993 because it was the date Merc Industries dissolved.

I also noticed this header in the scr.c file in The Isles distribution:

So there we have it, mystery solved. Work on the Nimud scripts started 7th May 1994, derived from the MOBprograms code originally written by Natasha (who in turn was inspired by Worlds of Carnage), and modified by Kahn for Merc 2.2 (which was released 24th November 1993).

locke 03-17-2009 07:45 PM

Re: Revolutionary New OLC and Scripting
 
It was my friend's email - he owned the account and I asked for access to it. I didn't have internet access, I was only 13 and my parents didn't have the internet. I was mainly into BBSes right before that.

locke 03-17-2009 07:45 PM

Re: Revolutionary New OLC and Scripting
 
Looks like Hot for Words decided to investigate:
Thanks for proving something I asserted earlier, KaVir. Except, I must admonish the above statement because: the only thing remotely inspired by MOBProgs is a single function, do();

There are over 150 functions in the language. The list is too big to post here, but it accounts for a very small percentage of the work. I doubt a single line looks like MOBProgs.

You've also proven that The Isles was based on Merc 2.0, not Merc 2.2, initially. What kind of Merc do you think I was running in September, 1993? Obviously a Merc 2.0 or 2.1, perhaps even 2.1c

KaVir 03-18-2009 06:18 AM

Re: Revolutionary New OLC and Scripting
 
The comment you wrote within the code claims that two of your functions are derived from the MOBprograms code, and indeed one of those functions includes exactly the same 3-line comment (word for word) as the Merc 2.2 version, describing what it does.

However the degree of inspiration and derivation isn't the issue here. All I'm pointing out is that your Nimud scripts were based on the MOBprograms code shipped with Merc 2.2, which means you couldn't have started work on them until Merc 2.2 had been released on 24th November 1993. However that is a moot point anyway, as you state within the code that you started work on the Nimud scripts 7th May 1994.

We're talking about The Isles here, not Cthulhu MUD. From the distribution file that came with the first version of The Isles:

"The Isles is a modified Merc 2.2 source code, with many features not present in the original Merc source."

"We wanted a different system altogether, and we were pretty sure that this feature (present in CthulhuMUD, a long gone god) would be the ticket."

"Changed armor to resemble (vaguely) the CthulhuMUD/Aldara3 setup (damagable)."


However once again this isn't important to the point in question, which is whether or not DG Scripts copied parts of the Nimud Scripts as you have suggested.

We know that Worlds of Carnage was the first Diku to implement a scripting system. That system inspired others, including Cythera, LegendMUD, and the version implemented in Merc 2.2. It is possible (although this is only speculation) that Death's Gate MUD also drew some inspiration from Worlds of Carnage, but it couldn't have copied the Nimud scripting system because it predates it.

locke 03-18-2009 03:50 PM

Re: Revolutionary New OLC and Scripting
 
The only issues here seem to be the ones you keep bringing up, even though the horse is dead, do you have to continue to beat it?

We've already established -- including my admittance that they are probably not related in the source code aside from the MS-DOS Batch file language variable syntax (which may have earlier roots), that is DG and NiMScripts -- any continued nitpicking is to appease your ego and has no real point in this discussion.

CthulhuMUD IS the direct predecessor to NiMUD. It's the same source code. NiMUD grew out of the demise of the original CthulhuMUD in 1993. CthulhuMUD-related source code (NiMUD) was released to people in December 1993 and written in September / October 1993. The Isles, NiMUD and what was left from CthulhuMUD's short 2 month lifespan are all the same project and all authored or co-authored by me. It's the same thing repackaged or private labeled, derived or evolved, however you want to put that. You're trying to convince me that these are somehow different. Aside from their name, they are not different -- merely evolutions of the same base of code over time. CthulhuMUD became NiMUD (the public package) and The Isles (the name of my mud that runs NiMUD software). It is NOT cthulhumud.org -- the CthulhuMUD that runs today.

Along with OLC, the HIT_FUN() feature was added for CthulhuMUD. At the same time we added "hit_suck_disarm" (for the Lovecraftian Flying Polyp attack) and "hit_vorpal" (for the vorpal sword), which has become a popular, signature feature of NiMUD.

This is exactly what I'm talking about. We are not trying to prove that. I have not said that. Someone posted that on Wikipedia and it failed the litmus test and thus was removed, apparently by Fizban. In fact, I established that three messages ago and you're continuing to argue it as if we are arguing the counterpoint, which no one is. You have some serious control issues. You should re-evaluate your posture toward these discussions because they are probably unhealthy for you.

I don't know if that WoC assertion is true or not, but it's irrelevant since this is not the discussion here at all. It's completely OT. We're talking about what was just released, not the lineage of NiMScripts. MOBProgs was just a list of mud commands, not a true scripting language, but it did offer some rudimentary functionality, except unlike on a MUSH it was only for "mobiles" (actors). Anyway, Diku is not conducive to an easily accomplished scripting language because of its fundamental mob/obj/room dilineation, which freed up MUSH developers to incorperate online scripting early on as a fundamental part of MUSH. So, this arduous task is complete here.

Keep in mind there is still the Diku][ scripting language (is that DG? I don't think it is..) which is pretty good too, but many of the features present in NiMUD aren't present anywhere else and NIMScripts is far beyond the competition. I'm sure a better (or maybe a rehashed or even stolen version, preferably not -- preferably one with attribution as the license suggests, and of course non-commercial) of NIMScripts or DG or any language will be in the future of MUD software. I personally wouldn't write such a thing today if I undertook a new project.

NIMScripts is the first to offer a suite of online developer tools for MUD scripts that are truly enriched with a real-time debugger, building relationships and a core function list that is extensive. The whole package is mature, so I feel confident it will be well received by someone.

locke 03-18-2009 04:14 PM

Re: Revolutionary New OLC and Scripting
 
This is "online vigilantism" and I become the target of your overzealous stalker tendencies. I have contacted WHOA in the past about these issues and we are monitoring what happens because of the actions of users on the Wikipedia who relentlessly pursue me and cause irreparable damage. I no longer feel "safe" in the MUD community because of its unscrupulous history. Owen Emlen is a crook and mean, and so were Jason Lambert and the others who have been manipulating the articles on Online Creation etc at the Wikipedia to include personal information, logging my IPs, etc.

If you are doing this to somehow prove something, it's only really proving me that you are for some reason obsessed with this topic and thus acting out some inner urge to do harm to others. I suggest taking a break from the computer for a while and relax yourself.

Fizban 03-18-2009 07:58 PM

Re: Revolutionary New OLC and Scripting
 
I don't think it's a dead horse at all in your post right before this one you were still claiming NiMUD was derived from Merc 2.0 and KaVir just proved it wasn't. Discussions don't just conveniently end when you get proven wrong.

As far as NiMUD being far beyond any competition I'd have to disagree. It looks like it can do some things DG cann;t do but the reverse appears to be true as well. Moreso though I'd rank LexiScript as being above both. LexiScript is used in LexiMUD (a CircleMUD Derivative which no current version has been released to the public, it is the code that Aliens Vs. Predators runs on) and is derived directly from DG. LexiScript is not publicly available but goes well beyond DG and from what I can tell from your posts, well beyond NimScript as well. I have access to a copy of LexiMUD (a smaller MUD than AvP that is ran by a staff member of AvP with the owner of AvP's permission) and have played around with LexiScript on it and can vouch that unlike DG LexiScript is fully OO and whereas DG can do most anything in-game. Raze the Dead's (another LexiMUD) entire combat system is written in LexiScripts which is something that from what you've posted does not appear to be within NimScript's capabilities.

Fizban 03-18-2009 08:12 PM

Re: Revolutionary New OLC and Scripting
 
I don't see how me posting the IP of the person who changed the Wikipedia page and asking if it was you was " vigilante-ism" I believe it's 100% logical that I'd have suspected it was you considering DG Scripts has had a Wikipedia page for over four years and not until earlier this month around the same time you came back to the MUD Community had anyone ever edited it to hint that it was derived from NiMScript. As for your WHOA comments, I sincerely feel you suffer from paranoia and need to seek mental help.

a.) I don't stalk you.
b.) Your reputation in the MUD community has been in shambles for almost a decade, I haven't harmed it irreparably, and in fact nothing online can cause irreparable damage to your reputation. It's the internet, none of us know you in real life, everything is more or less anonymous.
c.) If you feel unsafe because of what some meanie on the forum said I'd suggest going and giving mommy a big hug so she can make it all better.
d.) I'm not Owen. Yes he is scum for breaking the Merc license, the DIKU license, and your license, but I'm not him, he's not in this discussion and he has nothing to do with this discussion.
e.) Tyche (I assume you meant Tyche anyway, his name is Jon Lambert, not Jason Lambert.) is not a crook. You've claimed once before on TMC that he was "irreputable" and I laughed at you then. He is thought by many to be 'THE' best coder in the MUD community and one of the most knowledgeable when it comes to random facts like when specific pieces of code were written. If Tyche edited Wikipedia pages regarding your OLC it was to make them be more accurate, period.

locke 03-18-2009 11:28 PM

Re: Revolutionary New OLC and Scripting
 
No, you've misread that. I was saying that these messages prove The Isles OLC was originally written for a version of Merc (probably 2.0b or c) that was not 2.2 since it was already developed in September 1993 and therefore could not have been written for Merc 2.2 until Merc 2.2 came out.

Regardless of that, I'm telling you, as one of the authors, that yes indeed we started with a version of Merc prior to 2.2 - this is apparent from the r.g.m.d and from my own recollection, since I remember updating OLC to work with 2.2 shortly before the code was released.

No, I do not think DG scripts is based on NIMScripts for crying out loud!

Nah I'm not yet convinced that it has some radical feature that is somehow "worlds beyond" NiMScripts. I don't know what you mean by "Truly OO" but the level of functionality I've acheived with NIMScripts is already adequate for the job. It seems like you've turned back on your statement that you weren't trying to do a d!ck comparison between NIMScripts and DG, and instead have brought in this "unavailable" LexiScripts to start attacking me.

The one change I would make if I cared would be to use this.that, but I've done it another way. It's truly arbitrary and not something I'm interested in wasting my time with. I can do anything I want in NIMScripts already, though occaisionally I do see a need to add a function here or there. Also, I've never bothered to use my extended data types in the language, even though I spent time programming them. Those functions are very MUSH-like / LISP-like, and could be used to traverse various lists and/or trees and/or multi dimensional arrays stored in variables.

Instead of %actor.name% it's name(%actor%), big deal. It wouldn't take long for me to add functionality there to do that . . . but I think it would only further confuse matters.

You could write a combat system with NiMScripts, but its not something I've done because I already have a combat system in the mud. You must only be basing these assertions off my statements, instead of actually thinking about what NiMScripts does. Of course using the NIMScripts to make combat is not difficult, in fact, NIMScripts already augments the combat system, so one could assume that you would be able to write the whole combat system, even though this would be duplicating work since Diku already comes with a combat system. It would be far easier and more efficient NOT to use an interpreted language for the combat system, since that is a performance sensitive part of the MUD. That doesn't, however, mean it couldn't be done.

Some of the combat-related functions are heal(), hurt(), bomb(), healall(), elude(), setposition(), setkarma(), foe(), has(), check() and skill(), for example. I suppose you could also include things like maxhits(), str(), int(), etc.. also the bonus() function.

Part of my argument for it being the best is because of the live debugger and other features. But if you're here just to one-up me, stick it in your rear instead.

locke 03-18-2009 11:51 PM

Re: Revolutionary New OLC and Scripting
 
I don't see how me posting the IP of the person who changed the Wikipedia page and asking if it was you was " vigilante-ism" I believe it's 100% logical that I'd have suspected it was you considering DG Scripts has had a Wikipedia page for over four years and not until earlier this month around the same time you came back to the MUD Community had anyone ever edited it to hint that it was derived from NiMScript. As for your WHOA comments, I sincerely feel you suffer from paranoia and need to seek mental help.

a.) I don't stalk you.

"Where does Locke live??" -- Fizban

b.) Your reputation in the MUD community has been in shambles for almost a decade, I haven't harmed it irreparably, and in fact nothing online can cause irreparable damage to your reputation. It's the internet, none of us know you in real life, everything is more or less anonymous.

Actually, I don't think my "reputation is in shambles", only you, a hater, seems to think that way. I cannot speak for those who dislike me: they will always be there, misunderstanding me and spending their time pointlessly arguing with me. I have helped you, period. Chris did not want to release the code at all, it was I who released OLC after convincing him to permit it. As for the opinions of the folks at MudBytes, or Kyndig, those people have proven to be sub-par, violent and probably unhappy people. I cannot help them further.

I certainly don't gauge my entire life's work on the work I do in this community. If I did I'd be a destitute hippie living out of garbage cans and mudding at the public library. (Not to mention apparently Owen Emlen's personal slave.)

I'm sure KaVir and Tyche will chime in at some point to join in the Locke bashing contest. Maybe you could get Kyndig over here to threaten me again? Or maybe Samson can come and complain about people using his open source software. Why don't you pick on somebody you're own size, instead of bothering someone who helps you and your community for $0? Hey, maybe Owen will buy a house with all of my hard work.

c.) If you feel unsafe because of what some meanie on the forum said I'd suggest going and giving mommy a big hug so she can make it all better.

Mom's dead, kid. She's been dead since I was 8 years old. It goes to show how little you really know about me.

d.) I'm not Owen. Yes he is scum for breaking the Merc license, the DIKU license, and your license, but I'm not him, he's not in this discussion and he has nothing to do with this discussion.

No one is accusing you of being Owen. I've called Owen but he has yet to return my calls; but he has a public life, I'm sure I'll get a chance to talk to him if I feel it's necessary.

e.) Tyche (I assume you meant Tyche anyway, his name is Jon Lambert, not Jason Lambert.) is not a crook. You've claimed once before on TMC that he was "irreputable" and I laughed at you then. He is thought by many to be 'THE' best coder in the MUD community and one of the most knowledgeable when it comes to random facts like when specific pieces of code were written. If Tyche edited Wikipedia pages regarding your OLC it was to make them be more accurate, period.

I didn't really mention Tyche. I don't consider him to be a nemesis, but I do expect him to chime in when others do.

REALLY? Thanks for clearing that up! I was blaming someone named Jason Lambert from my university, who seemed to know a bit about the situation when he confronted me. He's a bully (JLambert), though, too -- at least to me. He has made them inaccurate and, along with Nandesuka, has redacted evidence and frankly, I ****ing hate those people. I hate them for their slander, their malicious behavior and complete irrationality. I hate Nandesuka for bothering me in my personal e-mail, for maliciously permitting users to post personal data about me, for lying about my dead friend and obscuring our impact. OLC is a part of a number of MUDs, not "just a couple" or "a few" but dozens of MUDs.

I do have to say though that JLambert, whomever that is, has not won every battle. But, let me quote you this "greatly improved article" on its perception of what my MUD contributed to the open source community:

"The in 1994 released Merc derived codebase The Isles featured online creation, written by Christopher Woodward, and dubbed OLC by co-developer Herb Gilliland."

With a reference that reads "Herb Gilliland, Christopher Woodward (1994) The Isles 1.1" even though it was released in December, written in September and was copyrighted in October!

1) "The in 1994 released" ??? I think you guys need a B-12 shot for being such ignoramouses.

2) I wrote OLC for years after Chris wrote it. He only worked on the project for a month or two, and the version I released had plenty of code in it from me. Specifically, the ability to type the names of bits instead of writing just numbers which is what Chris wrote. I did dub it OLC though, at least that phrase is correct. We did not copy it from Kalgen, we did not model it after Hidden Worlds per se, we wrote it ourselves.

3) All you do is censor the author. Screw them and screw Wikipedia. It bothers me how much you losers lie about things just to make yourselves look better -- to whom one can only imagine.

locke 03-19-2009 12:48 AM

Re: Revolutionary New OLC and Scripting
 
Listen to the sound of one hand clapping:

locke 03-19-2009 12:49 AM

Re: Revolutionary New OLC and Scripting
 
Listen to the sound of one hand slapping:

KaVir 03-19-2009 06:38 AM

Re: Revolutionary New OLC and Scripting
 
I'm not interested in bashing (or I'd start talking about stripped-out copyright notices). I'm interested in mud history being recorded as accurately as possible, because I think it's important for the mud community to preserve as much of our history as we can. I know how easy it is to mix up dates, because I've accidently done it myself - I even had to go back and correct my written history of GodWars once the old usenet archives were made available, when I realised I'd placed the start date several months too early.

I do think it's valuable to trace back the origins of specific codebases, and even of notable features such as OLC and scripting - but this has to be done with great care, to ensure that we record history, not revise it. It's insulting to other mud developers (such as Thoric and myself) when you incorrectly claim that our work is based on yours - but far more importantly it can also cause serious confusion should other people read those claims before they can be corrected, and potentially devalue accurate sources by providing conflicting information. That's why I felt it was important to verify the implication about the origin of DG scripts immediately.

In fairness, the 1993 reference was a post made at 7:02pm on 31st December 1993 in which you stated "I have decided that I will only be giving out the code to the single person who originally asked; and only someone else who can offer me a site...The original requester of some code, however, will be recieving the code soon, on the condition that he does NOT distribute it to anyone."

So less than 5 hours before the end of 1993 you'd decided to give the code "soon", to one person, and made clear that it wasn't a public release. Now perhaps in those 5 hours you did suddenly change your mind and decide to make an immediate public release - but there's no evidence that even suggests that might have been the case. On the other hand, there is a post you made on 29th July 1994 in which you state that you've just released The Isles 1.0 with OLC.

So while you might not like the revised article, it does fit with the verifable facts.

locke 03-19-2009 10:43 AM

Re: Revolutionary New OLC and Scripting
 
Ok, first of all you cannot assume a fact is true just because there is only some evidence that points to the existence of a particular version. Although it's hard to find real evidence of anything digital, let's talk about the fact that Isles15 was already working its way across the internet.

I called this version 15 and the next 16, even though they predated the Isles 1.1, which is the cited one. The reason these versions predate The Isles 1.1 is because they were the original versions that were released as "The Isles" with little or no mention of NiMUD. The Isles 1.1 was an oversight of my childhood, it could have been called something else. People virally downloaded TheIsles15.tar.gz and its sequel source TheIsles16.code.tar.gz, but complained about it not being 100% compatible with Merc 2.2. (They had to install it themselves.) It took a year before someone, Jason Dinkel, ported it.

In the beginning I wanted "TheIsles" to be as popular as "Merc", but I didn't have the desire to actually follow through and ended up making NiMUD instead when it became apparent the only thing they wanted was OLC. Since then, NiMUD has garnered its own following, but at the time these things were rather new.

It's certainly not very fraudulent that I claim the October 1993 copyright date. Even if you claim there is no proof or something, the fact remains that it WAS written in 1993 and not in 1994, if you want to take this as fact.

Plus, as the co-author and primary project lead, I'm TELLING YOU, it was available in 1993 and at the end of 1993 it was released to some group of MUDders. It was basically anybody who wrote me an email got a copy. That's a pretty liberal distribution scheme, and this is how someone ELSE may have uploaded it to Thoric in 1994.

If you took personal feelings into the equation because someone asserted something on Wikipedia, and it was later disproved, you should be happy that this happened at least in one way: you got to clear up any misperceptions and you were able to provide corrolated evidence, helping to shape the picture in some pseudo-accurate way. Harboring a grudge about it won't get you very far, nor will it make you happy; instead, you should just let it go.

I *STILL* remember you saying something positive about Worldgen.c, but anyway since then you've adamantly denied it. That's pretty sad. I mean that literally, not tongue-in-cheek. Like: "That's sad, Kavir, thought you were a fan."


All times are GMT -4. The time now is 06:32 PM.

Powered by vBulletin® Version 3.6.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright Top Mud Sites.com 2022