Random list of things to maybe do in CircleMUD 4.0
by George Greer (greerga@circlemud.org)
Database Parser 2 Project
- Linked list world
Remember Ebon Mists' post from years ago anyone?
- Memory mapping for files. (dak)
- Better dynamic mob/object support (Daniel Koepke)
- Rewrite db.c to be more versatile.
Parse_mobile() on arbitrary strings for instance.
- New world parser a la BIND 8
- Down with Rnums! Down with Rnums!
- ODBC Library
- PostgreSQL, MySQL, Sybase, DB2
- Shared memory, FTP worlds, HTTP worlds, world on a filesystem, etc...
Other
- Move spell wear off messages into spell_info like spells[] did.
- OasisOLC / OBuild
Rather include a generic OLC routine library though.
- POSIX/Windows Threads
Limited to Linux, Solaris, Windows, and maybe FreeBSD. Hm, now that Glib
supports a wrapping around the threaded locking functions, this becomes more feasible. Now if they would
only wrap the thread creation routines somehow. It's not that necessary since they have g_thread_supported(),
but it would eliminate the need to link against libpthread or whatever.
- ASCII Player File
Likely to be included so long as Sammy doesn't mind. Great work on his part for this package too.
- Buffer System
I'm doing a makeover at the moment with it so I have yet to figure
out what it is going to become. Most likely it would be nice. As of
recently, the library I am converting to use (glib) has become thread
safe. So now I can rip most, if not all, of my own locking out and
still have the threaded benefit.
- DG Scripts / DG Events
Obvious reasons, but overkill? Maybe, maybe not.
- NoteOLC
Alternative to OasisOLC and OBuild. It'd be basically the same as
writing the world files by hand, except online.
- RaceEdit/ClassEdit (Cyber_Angel@bigfoot.com)
Intriguing idea. Some people have expressed concern that it increases the number of files that heave
to be read when the MUD boots but imagine being able to add a class or race while online and without
requiring a warm/cold reboot.
- Dynamic spell addition.
Sort of a spell-edit type thing. Will require a lot of magic generalization.
- Remove MOB_ISNPC (Andrey Fidrya)
Definitely something to do, just need to figure out method.
- Typedef struct room_data to just ROOM
(Invincibill <bill@LONGBOYS.NET>)
- Levels on help files
See hedit code. (Keith Bertelsen <mogupo@HOTMAIL.COM>)
- [HAT]edit
- INFO channel
wiznet for players, showing logins, deaths, levels, etc.
- Automatic Auction
- Erwin's copyover
- Daniel Koepke's it idea
- Sammy's better tilde hiding
Or better yet, stop using ~ as the end of line marker.
- Rob Baumstark's saving throws and
Edward J Glamkowski's saving throws and
experience formulas, with addendum.
- Christian Loth's ANSI cleanup
Or maybe sooner, soon as someone confirms it.
- Christopher Avans' saving corpses
Beyond reboot of course. But if we do that, I want to do notes too.
- StormeRider would like to see Perl as scripting language
Anyone with any idea how we could integrate it? Might want to look at Erwin's MUD Client for Linux for example.
- Luis Pedro Passos Carvalho wants flex/yacc parser.
- World Parser
- Actions File Parser
- Help File Parser
- Scripting Language Parser
- Command Interpreter Parser (more than one command per line, macros)
- Guilds, various implementations on FTP site.
- config.c loading it's values from an initialization file at runtime.
- HTML help files (Daniel Koepke)
- Telnet negotiation (Daniel Koepke)
- Classes, spells, and skills written entirely in scripting language, with complete removal being highly trivial. (dak)
- Ability to split-off DNS as a child process, just in case the nameserver is slow. (dak)
- Use Unix-sockets or better yet, TCP/IP sockets for the above.
- Support for ident. (dak)
- The above in a child process too?
- Much better text editor. Or editors. (dak)
- Or a telnet daemon to use any editor, like Emacs.
- What about setting linkdead mortal chars invis 31 & NOHASSLE instead of transferring them to NOWHERE? (Andrey Fidrya)
- Allow aliases for characters without descriptors? (Chris Proctor)
- Assort suggestions from Gryshk Solo.
- List of things.
Names are so I can remember who suggested what if I need more information, to implement it for example. If there isn't a name, it was probably mine or before I kept track.