|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 6:40 pm
What is CMUD? |
CMUD stands for Chiara's MUD Client. It is a brand new MUD client being written by Zugg, the creator of zMUD (Zugg's MUD Client).
For those who don't know, "Chiara" is the online name of Zugg's wife. Zugg waited until Chiara's birthday to announce the name of this new project. Now that she has been surprised, it's time to talk about CMUD in detail.
This project was previously called the "zMUDXP" project over in the zMUD forum.
In this thread, I will discuss some of the details of CMUD. I will be locking this topic, so please create separate threads to discuss any particular feature or issue about CMUD.
[Edited] CMUD 1.00 was released on June 12, 2006, with all of the features mentioned in this thread. To see the official CMUD home page, go to http://www.zuggsoft.com/cmud |
|
Last edited by Zugg on Mon Jun 12, 2006 5:22 pm; edited 4 times in total |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 6:49 pm |
So how is CMUD different from zMUD?
Well, zMUD was written over 10 years ago for Windows 3.1. It was later updated for Windows 95, then Windows 98, then Windows NT/2000, then for Windows XP. All of this time, zMUD remained compatible with Windows 95 (Win3.1 support was dropped a long time ago). Because zMUD needs to be compatible with these older versions of Windows, there are many things that can't be done in zMUD.
CMUD is being written specifically for Windows XP (which is why this project was originally called zMUDXP). While CMUD *might* work on older versions of Windows, those older versions are not officially supported. CMUD will also support the new "Windows Vista" (codenamed LongHorn) version of Windows from Microsoft when it is released in a year or so. The older zMUD product will not be officially supported on Vista (although it will probably still work fine).
I've created a very detailed project plan for CMUD, so I have a pretty good idea of what features will be included in the first Beta version. Here is a list of these new features. I'll describe each feature in the following replies to this topic.
NOTE: This is a list of CONFIRMED features in the first Beta version of CMUD. There is another thread that discusses planned features for future versions of CMUD. |
|
Last edited by Zugg on Wed Dec 07, 2005 7:37 pm; edited 1 time in total |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 6:53 pm |
Settings in Database format
In zMUD, the "settings" (aliases, triggers, macros, etc) were stored in a *.MUD file that was a proprietary binary format. This file was essentially a "memory dump" of the settings stored in memory. So if the memory in zMUD got corrupted by a bad script or an Access Violation or bug in zMUD, then when the settings were auto-saved at exit, they could get corrupted. Various "kludges" have been made to zMUD over the years to reduce settings file corruption, but it still happens.
In CMUD, settings are stored in a new SQL database format called a "Package". A "Package" is a collection of aliases, triggers, scripts, preferences, and even plugin files. You can load multiple packages into CMUD and easily enable or disable different packages.
In zMUD, it loaded the DEFAULT.MUD settings (with all of the defaults), then the GLOBAL.MUD file (with the main toolbar buttons), then your "Inherited" *.MUD settings file, then your "Primary" *.MUD settings file. This was pretty complicated, and made it difficult to determine which MUD file contained a particular setting, and made it hard to customize zMUD.
In CMUD, everything is a "package". There is a "Default Package" that has all of the default setting. There is a "Toolbar Package" that has the main CMUD Toolbar. Then you have can have as many different packages as you want to load for your character. Plugins are also integrated into packages. So, for example, if you want to use zChat, you load the "zChat Package". You might create your own packages for the MUD you are playing to act like the previous "Inherited" settings. In fact, when CMUD converts your old zMUD *.MUD files into packages, it will automatically set up the Inherited and Primary packages for your MUD character.
The concept of Packages will make it much easier to support plugins in CMUD. And it will be easy for the player to enable or disable different packages to control what features he wants for a given MUD. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:03 pm |
Shared Packages
The biggest new feature is the ability to share packages using a central server. Hosted at Zuggsoft.com will be a Package Server. You will be able to access this repository of packages from within the CMUD interface. You will be able to browse for different packages for different MUDs, plugins, etc. This system is being tied to the Forums on zuggsoft.com, so anyone with a Forum account on our server will be able to access the Package Server.
Each package will have a description of what it does. If you want to use the package, you click the Download button in CMUD and it will be installed on your local system. There will also be a Rating system so that you can see which packages are the most highly rated by other CMUD users.
In addition, CMUD will allow you to "upload" your own packages to the server. There will be different types of user accounts. Initially this will be based upon your forum post count. If you have posted enough on the forums, you will have "upload" permission in the Package Server. Of course, zMUD Gurus will have full moderator access to the Package Server and will be able to add, delete, etc. There will be a method to ban people from the Package Server who abuse it. For example, if someone uploads "dangerous" scripts to the server that are malicious in intent, that person might be banned from ever accessing the Package Server again in the future. Whereas people who upload useful packages will gain more and more permission and access to the server.
There will also be a method to create a "private" area on the package server. In your private area, you can upload anything you want and control who has access to it. For example, if you travel a lot, you might upload your different MUD packages to your private area. Then, from anywhere else in the world you can run CMUD and download your packages. If you have a "Guild" on your MUD, you can set up access so that only guild-members have access to your packages.
This system will essentially replace the "Finished zMUD Scripts" forum with a much more useful and dynamic package repository.
This Package Server will also be restricted to users who have actually bought CMUD. During the free trial, you will only be able to Browse the package server. You won't be able to download any packages until you actually purchase CMUD. This will help give an incentive to people to actually buy CMUD instead of finding ways to use the free trial forever. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:10 pm |
Package Editor
The old zMUD Settings Editor screen has been completely rewritten. The new Package Editor allows you to edit your aliases, triggers, and other scripts with a much improved user interface. Also, the new Package Editor is database driven, so you don't need to worry about corrupted settings files.
In the zMUD Settings Editor, the "editor" panel was normally docked to the bottom of the window. It could be undocked, or docked to the right side of the window. This was cumbersome. The default position at the bottom was not a good use of screen space and resulted in not enough visible lines for complex scripts. Docking to the right side of the window was better, but with the class tree list and then the settings list, it also was cramped. Also, the docking was buggy and sometimes the entire editor window could be lost.
In CMUD, the Package Editor has integrated the "class tree" and "settings list" into one tree view on the left, with the editor panel on the right. The editor panel is no longer dockable. The screen space is used much more efficiently and you can just resize the Package editor rather than worrying about docking.
Also, the editor window itself has been rewritten. In zMUD, there were bugs with the syntax checking that could cause your editor cursor to mysteriously move to the wrong point. It was actually hard to edit complex scripts without getting them messed up. The new editor behaves much more like a traditional editor. Instead of rigorous syntax checking, it has fast syntax highlighting to help you write scripts. You only perform a syntax check later when you are debugging scripts.
The syntax highlighting in the new editor is very powerful. In addition to highlighting CMUD script syntax, it can also highlight other languages such as VBScript, JScript, PerlScript, etc. In fact, it is now much easier to create scripts in other languages (described more later). In addition to syntax highlighting, the editor also has full spellchecking, find/replace, and other features expected in a "real" programmer's editor. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:14 pm |
XML Support
In zMUD, you could save/load settings as a "text" file. This was very buggy. It worked fine for simple aliases or triggers, but for more complex settings such as buttons and gauges it was a mess.
In CMUD, Packages can be imported and exported in XML. The XML text format provides a standard that more easily accomodates complex settings and also the class structure of settings. You can import/export just a single setting, an entire class, or an entire package. In fact, packages on the Package Server are stored in XML format.
This makes it a lot easier for 3rd parties to develop tools to manipulate CMUD packages. Not only are they stored in a standard SQL database, but with the XML import/export it will be easy to interact with your packages and nearly impossible to lose your hard work. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:22 pm |
Compiled Scripts
This is another huge new feature in CMUD. Scripts (aliases, triggers, etc) that pass the syntax checker are now automatically compiled in the background. These compiled scripts run *much* faster than the old zMUD scripts. I don't have any official benchmark tests completed yet, but you can expect a very significant speed increase.
This means that your triggers will run lightning-fast! In zMUD, the speed of your triggers really determined the speed of the text scrolling. If all triggers were off, text could scroll really fast (the Ctrl-Q test). But when triggers were enabled, scrolling was much slower. In CMUD, triggers will execute much faster resulting in faster text scrolling. No other MUD client (including zMUD) will be able to match the speed of CMUD.
The compiled scripts don't prevent you from doing anything. You can still use all of the variable indirection that you want. CMUD isn't compiling the script to machine code, it's just compiling to an intermediate code format that is more quickly executed. Only CMUD scripts can be compiled. If you use another scripting language, such as VBScript, then it won't be compiled by CMUD.
The Compiled form of the scripts are only used internally within CMUD. The compiled scripts are not stored in the Package XML file. You cannot distribute a compiled-only package. You must always distribute the normal CMUD script source with your package. This prevents abuse and helps guard players from people who might compile malicious code and convince them to download it and run it.
Compiling is done "on the fly" (Just-In-Time compiler) whenever you save a change to a script. If there is a syntax error in a script that prevents it from being compiled, you can be notified and a debugger window will help track down the error(s). Or, you can go ahead and save it anyway and it will be executed by the old zMUD parser. This allows backwards compatibility with old zMUD scripts that should still work in CMUD. But obviously it will be advantagous to "fix" scripts that have errors so that they can be compiled and run more quickly. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:26 pm |
New Character Selection
The initial character selection screen has also been improved in CMUD. The old character database has gone through a number of different file formats over the years. We are now standardizing on an SQL database format that should make the character database more robust. In addition, the character database is where you control what packages to load for each character. You can even run the Package Editor directly from this screen without ever loading your character "Offline" (although the Offline option will remain).
The layout of your character icons will also be different, providing more of a "list" view of your characters along with more details about each character. It will be easier to see your custom "notes" for each character, as well as statistics such as last login date, total time playing the character, etc.
Creating a new character by selecting from an existing MUD from the MUD list will also be easier.
All of this, plus faster loading time should provide a much better "first impression" of CMUD for both experienced and novice players. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:29 pm |
Skins and Themes
CMUD is being written using the themed-components that were created as part of the zApp project. This means that CMUD will support skins/themes.
CMUD will support two types of skins: WinXP Theme files, and proprietary (KSDEV) theme files. A free Theme Editor is available for the KSDEV theme format. For the WinXP theme format, there are many 3rd party programs that can be used to create/customize a WinXP theme file (I like the StarDock tools myself).
Any WinXP or KSDEV theme file can be loaded into CMUD to customize it's look and feel. You can also choose several "built-in" themes that will be provided within CMUD.
The initial Beta version of CMUD will likely contain many theme-related issues. Tweaking the theme support will be an on-going process during the beta period. I'm not putting a lot of priority into this for the initial release. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:32 pm |
Improved Command Line
In zMUD, the command line uses the Microsoft RichEdit control. This has caused several problems in the later versions of zMUD with spellchecking.
In CMUD, a new control is being used for the command line that does not rely on the Microsoft RichEdit control. The command line will still have all of the features that you have come to love in zMUD, but will remove the bugs associated with the RichEdit control. The spellchecking will be faster and you will also be able to turn on the Script Syntax Highlighting directly on the command line. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:34 pm |
New Editor Window
The multi-line Editor Window (Ctrl-Shift-Enter) will also be improved. All of the wierd quirks of using the Editor window have been removed. The Editor window in CMUD has full spellchecking and syntax highlighting, just like the Package Editor. It also has the Find/Replace and other features expected in a "real" editor.
The Editor window no longer has any line limitation. You can load a file as large as you want into the editor window.
The Editor also supports more formats. In addition to the normal text and ANSI color, it also supports Rich-Text (RTF) and HTML files. You no longer need a 3rd party tool to export your ANSI log files to HTML format! |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 7:37 pm |
Improved Help System
The command and function wizards have been redone to make them easier to read and easier to access via the F1 key in the various editors. In addition, it's easier to find commands and functions based upon their category (like String functions) instead of just a big alphabetical list (it still has the big list if you want it).
The normal help system is also being replaced with the system used in zApp where the local help files can be synchronized with the knowledge base on the zuggsoft.com web site. So as the help file on the web site is updated, you will be able to get the updates in your local copy. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Wed Dec 07, 2005 9:03 pm |
New Docking system
There were many problems with the window docking system used in zMUD. Much of this was due to the fact that zMUD was written using Delphi 5, whose docking system was hard to use and full of bugs.
CMUD is based upon the zApp Development system which has a new docking system. This docking system is much more robust. It will be easier to create docked screen layouts, and save/restore them without problems. "Fly-out" windows are also supported, so you can have a window hidden on the edge of the screen and have it open as you move the mouse over it. Windows can be floating or docked in any manner, including the vertical, horizontal, and tabbed docking that zMUD users are familiar with.
A lot of this code is behind the scenes. The visual look of docked windows improves a bit, but the main point is that docked windows now finally *work* as expected. |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Jun 12, 2006 5:10 pm |
Everything on this list is available in the initial CMUD 1.00 BETA that was released on June 12th, 2006.
|
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Fri Dec 15, 2006 12:11 am |
And, of course, everything on this list is available in the first public version that was released on December 14th, 2006.
|
|
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|