Archive for the ‘Mud Designer’ Category

Mud Designer plans

November 14, 2010 3 comments

Now that I’ve got a large chunk of my current Windows Phone 7 application wrote, I’m feeling pretty good with how things work regarding it. I’m slowly understanding Silverlight a little more with each day I work on this app and feel pretty confident with it.

I started thinking what would be a good next app and I think I want to go ahead and start work on the mobile telnet client app for the phone. While I work on that, I’ll resume work on the Mud Designer and try getting a world up and running by february.
I think a mobile MMORPG (even if it’s in the form of a MUD) would be a pretty cool achievement for myself. If I can beat other people to it, be nice to be the person to release the first Windows Phone 7 MMORPG.

The Mud Designer engine is pretty far along IMO. The core engine is finished and I just need to start working on the NPC, Combat and Quest systems. NPC and Combat shouldn’t take to long, and I’m pretty sure I can put together a simple to use Quest system to get the engine into a useable state. As time progresses and income comes in (hopefully) I can improve and build on the systems, adding more content and eventually get the GUI created and working.

Windows Phone 7 MMORPG anyone? It sounds good to me.


Mud Engine + GUI = Mud Designer

September 27, 2010 Leave a comment

Yesterday i put together a quick UI for creating Rooms using the Mud Engine and liked how easy it was to access & use the engine. It’s come a long ways since my last GUI was developed on. I’ll spend today working on implementing a full UI for the designer & see about getting networking up and running within it as well. Shouldn’t take to much to get it done right.

Delaying the release another week

September 5, 2010 Leave a comment

Yeah, another delay with the release of Alpha 1.4 will prevent my release of it today like I had originally planned. The delay is caused by a set of new scripts I’m currently working on and they’re pretty large and complex so it’s taking me quiet a bit of time to write them and get them fleshed out. When they’re finished, I think it will be time for me to graduate to Alpha 2.0 as I will have a complete real-time editing package implemented.

So what are these scripts I’m working on? They belong to the aforementioned real-time editing package I mentioned. A series of commands have been re-wrote and new ones added to allow for creation of new world objects, editing of world objects, deleting and moving of world objects along with linking of Rooms.

All of these commands will be released as part of the script package, allowing developers to edit the scripts to suit their needs for what ever requirements that their project might have. Additional information on the way these commands will be used will come soon.


September 3, 2010 Leave a comment

Wow, it’s been nearly two weeks since I committed a change to the Mud Designer source code repository. I liked having my weekly releases at the site, but these past two weeks have been busy for me and there was a lot of work that needed to be done to the engine when I could get the time to work on it, thus causing the missed weekly release.

The Mud Engine now fully restores the game world environment! It’s taken a lot of work and re-writing various methods within classes to get things working the way they should. Saving and loading the game world is fully implemented and now allows for the environments to be restored after the server has shut down. The Server will re-create the game world with everything defaulting to the scripts. Once the world is created, all of the environment objects have their saved state loaded from the saved files and restored. Admin’s can now construct their environments and make changes to existing objects without worrying about loosing their changes if the server goes down.

While object creation other than Environment objects is not implemented yet, this feature needed to be fully implemented prior to working on adding new content to the engine in order for new content to support saving and restoring.

Alright, so what’s next… I will spend my free time working on the Create script. Environments now have a ‘Path’ Property that can be used such as:

FileManager.WriteLine(filename, this.RoomLocation, "RoomLocation");

If the Room is within a Realm called MyRealm and a Zone called MyZone then Room.RoomLocation will return


You can also call Room.RoomLocationWithoutExtension and it will return:


I want to do something along these lines for Environment creation, using a command like ‘Create MyRealm>MyZone2’ will create a new Zone called MyZone2 within the MyRealm Realm. No longer would admins need to go through a long process of entering filenames and using the current menu system. It’s a more simplistic approach and with a possible ‘List Zones MyRealm’ command that could list all of the Zones within the Realm MyRealm, a Admin can easily find what Zone names have already been taken prior to creating one.

That’s what’s next on the addenda, and hopefully I can get it finished up by Sunday and have Alpha 1.4 released this weekend.

Room Restoration

August 30, 2010 Leave a comment

This weekend I spent time working on finishing up the environment restoration. Yeah I know, it’s still not done. I ran into an issue with re-linking Rooms that’s forced me to re-think and re-implement the how Rooms are restored. When a Room is loaded it will create it’s doors and link them to the required Rooms. However, if the Room is not loaded yet, the Door loads it on its own. Then the Zone goes on and keeps loading the rest of it’s Rooms.

As a example, what happens when Bedroom has a Door linking to Hallway? The door will load the hallway. When Bedroom is finished the zone loads the next Room which will eventually be the Hallway. So now I have two Rooms loaded in memory and independent of each other which isn’t a good thing. Bedroom within the Zone will be different then Bedroom connected to the Hallway.

Because of this I will instead, load all of the rooms and ignore the Doors, once every Room is loaded the engine will perform the linking.
This isn’t the best approach in my opinion but it works for the moment. Hopefully I can wrap it up by Friday & spend the weekend tightening things up and release on Sunday.

Wrapping up Environments

August 23, 2010 Leave a comment

I spent this morning thinking about the progress of the Mud Designer and decided to put character leveling on hold.

The engine is wrote very well I think in terms of modularity, allowing objects to work independently of each other. I’ve been meaning to button up the environment objects but it’s been getting shoved to the side due to it being more like tweaking and fixing and not as gratifying as adding whole new components to the engine.

I’ll spend the next week working completely on environment objects, tidying things up, making sure Rooms can be traversed across Realms & Zones along with deciding how I want to handle game object placement within the world.
The benefit to wrapping up environments is being able to build on the rest of the engine and using a finished component that I know will work as intended while building other major components that might rely on it. It will also provide a finished component for testing a GUI editor design with.

What’s left to do with the environment? Not very much, mostly finishing up the create command, provide search methods to Realms & Zones for seeking content that they hold such as search a Realm for a Zone or search a Zone for a Room. I also need to button up the movement code in characters (which I consider part of environment) to support locked doors and provide some sort of verification for environment existence.
The GameWorld needs to suport adding Rooms via the AddObject method as well, replacing the Zone.AddRoom() method.

There’s quiet a few minor things like the ones mentioned that need completed before I move on to the next major component of the engine. I want to make sure each major component is polished prior to working seriously on another one.

Character Stats & Leveling

August 22, 2010 Leave a comment

After releasing the latest build of the Mud Designer I began doing some research online on how character stats and leveling is handled in various MUD’s and RPG’s. I found that there is a wide range of different systems available out there and I decided I’d look into implementing one at a time.

At the moment the Character Stats is seperated from the Character itself, which was done to allow for custom stat and leveling systems to be wrote and assigned to the Character. The Character Stat class is called BaseStat, and a developer can inherit from it like such:

public class SkillBasedStats : BaseStats

Now they can implement what ever stats they want to, and assign it the their player like this.

  public BaseCharacter(Game game) : base(Game)
       this.BaseStats = new SkillBasedStats();

Basically developers will re-reference the characters stats property to use theirs instead. This is something that the Game class is currently doing with BaseCharacter, allowing developers to re-reference the PlayerCollection property within Game to reference their custom player scripted class instead.

I think what I will do is implement basic content such as player Health and Level into the BaseStats class, and then I will write several different Scripts that will inherit from it, each implementing stats in a different and unique way. This provides developers with a solid collection of different leveling and stat systems they can use for their games, and if one doesn’t fit their needs, they can extend off an existing one and modify it, or just write one themselves.The goal of the engine is to be modular and easily extended on, and this approach will fit right in with that goal.

Looking at what I have planned for the next release of the engine, I doubt that I’ll have the changes made and ready in time for a weekly release next Sunday. I probably won’t get started on writing any new code until Tuesday, as I need to spend time updating the websites documentation to reflect the changes made with the release of Alpha 1.3