Author Topic: The Gurbalib resurrection project  (Read 12262 times)

Offline Aidil

  • Friend
  • **
  • Posts: 50
    • View Profile
    • Way of the Force
The Gurbalib resurrection project
« on: March 06, 2009, 09:17:26 am »
Gurbalib is a mudlib that was originally written for DGD 1.1 by Fudge (Erlend Simonsen).

It is a very lightweight lib that offers a rather complete set of game features, much more then found in any other publicly available lib for DGD.

Nullinfinite, Cerihan and me have spent a fair bit of time on making this lib run on DGD 1.2 (both the 'stable' and 'experimental' versions) with or
without network package (note that intermud 3 support only works when using DGD with network package)

There is one component from the original Gurbalib 0.40 distribution still missing, the FTP server, and we expect there to be a number of minor bugs
still relating to the conversion to DGD 1.2 (and much stricter typechecking).

We hope to wrap up an initial release this weekend, in the meantime, you can already try the current codebase by using the public subversion repository at
svn://wotf.org/gurbalib

Once done with the initial release, there is a number of functional improvements queued for testing and integration, including much improved filesystem security and an enhanced event daemon.

Please review the included installation instructions for setting up the lib, and the copyright files for information on usage and distribution.

With many thanks to Fudge for letting us use his original work to 'do whatever we want with it' and to those who helped testing this so far.

On behalf of the Gurbalib Resurrection Project,
Aidil.
Way of the Force

A Star Wars LPMud
wotf.org port 23

Offline daelaskai

  • BFF
  • ***
  • Posts: 174
    • View Profile
Re: The Gurbalib resurrection project
« Reply #1 on: March 07, 2009, 07:56:13 pm »
Pretty cool.  I always thought Gurbalib had potential.

Daelas

Offline Aidil

  • Friend
  • **
  • Posts: 50
    • View Profile
    • Way of the Force
Re: The Gurbalib resurrection project
« Reply #2 on: March 08, 2009, 01:43:49 pm »
Beta releases can be found at http://wotf.org/downloads/gurba

Aidil
Way of the Force

A Star Wars LPMud
wotf.org port 23

Offline Aidil

  • Friend
  • **
  • Posts: 50
    • View Profile
    • Way of the Force
Re: The Gurbalib resurrection project
« Reply #3 on: March 10, 2009, 04:56:51 am »
Nullinfinite, Cerihan and me are proud to announce the inmediate availability of Gurbalib 0.41

This is the first 'official' release from our Gurbalib resurrection project.

- All functionality from the 0.40 version has been ported to DGD 1.2 'experimental'
- Conversion to typechecking 2
- Modified so it can also work with unpatched versions of the driver

Otherwise, the release is identical to Erlend 'Fudge' Simonsen's Gurbalib 0.40

This release includes features such as:
- all basic object types for building a game (rooms, npcs, weapons, armor etc)
- guilds, races, 'languages'
- a small example area
- comms channels, emotes, intermud 3 (only with modified DGD driver)
- FTP server
and much more.

The download is a bundle containing Gurbalib 0.41, unpatched DGD 1.2.157 source and the network package.
Also included are installation instructions and an installer script to make installation and starting the mud a
matter of 2 commands.

Please report bugs here or mail them to gurba at wotf.org

Regards,
Bart.
Way of the Force

A Star Wars LPMud
wotf.org port 23

Offline Jimorie

  • Friend
  • **
  • Posts: 58
    • View Profile
Re: The Gurbalib resurrection project
« Reply #4 on: March 11, 2009, 02:21:25 am »
Great work!

 =)

Offline skout23

  • Acquaintance
  • *
  • Posts: 17
    • View Profile
Re: The Gurbalib resurrection project
« Reply #5 on: March 11, 2009, 05:55:36 pm »
Gurbalib team,
  I second Jimorie, Great work.  I feel almost guilty at how easy it was to setup.  I am sure things have progressed on the DGD side, but  I remember struggling with DGD and various libs years ago.  It was quite painless, and looks to be fun to play with.  Now if only I had an good idea to try and develop.

Thanks,
Scott

Offline quixadhal

  • BFF
  • ***
  • Posts: 642
    • View Profile
    • WileyMUD
Re: The Gurbalib resurrection project
« Reply #6 on: March 13, 2009, 12:27:24 am »
If there's enough traffic to warrent a seperate section, I'd suggest "Gurba Grub" to fit in with the other section titles. :)

Offline Aidil

  • Friend
  • **
  • Posts: 50
    • View Profile
    • Way of the Force
Re: The Gurbalib resurrection project
« Reply #7 on: March 13, 2009, 09:12:51 am »
Thanks for the nice responses, I'm quite happy with how this is working out so far.

A small number of bugs have been reported, quite a few of which have been fixed in the svn version already.  I intend to create a new distribution by the end of the weekend, or early next week depending on what other things we encounter.

Besides bugfixes, this new distribution will also contain an enhanced event daemon (far less sensitive to runtime erros during event handling) and some of the infrastructure needed for in-place recompilation.
Way of the Force

A Star Wars LPMud
wotf.org port 23

Offline quixadhal

  • BFF
  • ***
  • Posts: 642
    • View Profile
    • WileyMUD
Re: The Gurbalib resurrection project
« Reply #8 on: March 13, 2009, 04:31:11 pm »
Here's a modified version of /cmds/wiz/more.c which is a bit more robust when fed "naughty" data, such as very large files, or files with many many lines.

This is the first lpc I've written in almost 10 years, so do tell me where I've done stupid things and make it better, ok? :)

Code: [Select]
/* A highly advanced more command
 * Fudge
 */

#include <status.h>
#include <limits.h>

int file_size(string path) {
    /* by Mikael Lind */
    int      i;
    mixed  **dir;
    string  *comps, base;

    if (path == "/") {
        return -2;
    }
    comps = explode(path, "/");
    base = comps[sizeof(comps) - 1];
    dir = get_dir(path);
    i = sizeof(dir[0]);
    while (i--) {
        if (dir[0][i] == base) {
            return dir[1][i];
        }
    }
    return -1;
}

void main( string arg ) {
  string file;
  string *tmp;
  string *lines;
  int i;
  int where;
  int size;
  int length;
  int offset;
  string file_data;
  int chopped;
  int maxlines;

  if( arg == "" ) {
    arg = this_environment()->file_name();
  }

  file = normalize_path( arg, this_player()->query_env( "cwd" ) );
  size = file_size( file );

  if( file_exists( file ) < 1 ) {
    write( arg + ": File not found." );
    return;
  }

  chopped = 0;
  offset = 0;
  lines = ({ });
  length = size >= MAX_STRING_SIZE / 2 ? MAX_STRING_SIZE / 2 : size;
  maxlines = status()[ST_ARRAYSIZE] - 1;

  while ( offset < size ) {
    file_data = read_file( file, offset, length );
    offset += length;
    while ( catch( tmp = explode( file_data, "\n" ) ) ) {
      chopped = 1;
      file_data = file_data[0 .. strlen( file_data ) / 2];
    }

    for( i = 0; i < sizeof( tmp ); i++ ) {
      if( sizeof( lines ) < maxlines ) {
        if( strlen( tmp[i] ) > 79 ) {
          /* Big line. Break it up. */
          where = 0;
          while( where < strlen( tmp[i] ) ) {
            if( sizeof( lines ) < maxlines ) {
              if( where + 79 < strlen( tmp[i] ) ) {
                lines += ({ tmp[i][where..where+78] });
                where += 79;
              } else {
                lines += ({ tmp[i][where..] });
                where = strlen(tmp[i]);
              }
            } else {
              chopped = 1;
              break;
            }
          }
        } else {
          lines += ({ tmp[i] });
        }
      } else {
        chopped = 1;
        break;
      }
    }
  }
  if( chopped == 1 ) {
    lines += ({ "*** TRUNCATED ***" });
  }

  this_player()->more( lines );
}

Offline Cerihan

  • Acquaintance
  • *
  • Posts: 3
    • View Profile
Re: The Gurbalib resurrection project
« Reply #9 on: March 13, 2009, 07:34:11 pm »
Awesome sauce.  That's going in the next release for sure. :)

Offline Aidil

  • Friend
  • **
  • Posts: 50
    • View Profile
    • Way of the Force
Re: The Gurbalib resurrection project
« Reply #10 on: March 17, 2009, 04:44:19 pm »
Gurbalib 0.42 beta 1 has just been released, it is available from http://wotf.org/downloads/gurba/

See http://wotf.org/downloads/gurba/Changelog.txt for more information.

A few hilights:

- wandering npcs
- better error reporting
- better documentation
- improved reliability

With many thanks to all the great people on the DGD channel who made this substantial improvement possible in such a short time.

Way of the Force

A Star Wars LPMud
wotf.org port 23

Offline daelaskai

  • BFF
  • ***
  • Posts: 174
    • View Profile
Re: The Gurbalib resurrection project
« Reply #11 on: March 17, 2009, 08:07:46 pm »
Any compiled Windows binary available for these?

Daelas

Offline Cerihan

  • Acquaintance
  • *
  • Posts: 3
    • View Profile
Re: The Gurbalib resurrection project
« Reply #12 on: March 18, 2009, 01:08:18 am »
For right now, no.  But there have been reports that it works (see https://www.dworkin.nl/pipermail/dgd/2009-March/006273.html).

It probably will work in Cygwin just fine but you'll need to try it and compile it there. :)

Offline Aidil

  • Friend
  • **
  • Posts: 50
    • View Profile
    • Way of the Force
Re: The Gurbalib resurrection project
« Reply #13 on: March 30, 2009, 02:34:45 pm »
Hi all,

From the offices of the GRP we are proud to announce a new beta version of Gurbalib:

http://wotf.org/downloads/gurba/gurba-0.42-beta2.tar.gz

For those using older versions, updating to this version is recommended as it fixes a number of serious bugs.

I'd like to thank everyone for their contributions, suggestions and hard work.

Aidil
Way of the Force

A Star Wars LPMud
wotf.org port 23

Offline Aidil

  • Friend
  • **
  • Posts: 50
    • View Profile
    • Way of the Force
Re: The Gurbalib resurrection project
« Reply #14 on: May 23, 2009, 06:33:12 am »
For those of you using the svn version of Gurbalib, you will want to read http://mud.wotf.org/downloads/gurba/UPGRADING
Way of the Force

A Star Wars LPMud
wotf.org port 23