First off, sorry for yesterday’s post. My daughter grew sick over Sunday and with my wife out of town I had my hands full. She is doing fine now, and my wife is back in town. Therefore, everything is back to normal. So now I can take a few minutes to report on last week’s development, which included the final touches to rewriting the DLL file for items and how they work with the CRM and the rest of DPnP.

When I first started this I knew very little of a thing called Inheritance. Inheritance, in C# programming is a way of creating objects (classes in C#) wherein an object shares properties with another. It is like this: a seat could be a group of objects that have properties such as a seat and legs. You could then have an inherited class that has a back, and call this a chair. You could have a chair with other attributes and call this chair a throne. The chair inherits from the Seat, the Throne inherits from the chair.

Instead, what I did was create a class called items. That class had all of the attributes of every item type in the game. That was a lot of properties. When called, the item may have only used 5 attributes, but it still had a good 40-50 attributes in memory even if they weren’t used. Furthermore, it overcomplicated a lot of issues with how they could be handled.

I rewrote the entire DLL (the DLL is a file that contains a collection of code that is sorted for easy management such as keeping all code for items in a separate folder) to create a simple item class with about a dozen properties. Next I created inherited items for each type. This actually works better. For one thing, an item will only have attributes for that item in memory. Secondly, it streamlines how the code is managed. I can, now, easily add new item types with very little fuss. Additionally, I have working room to adjust and play with options for items. Therefor, many items got changed in how they are handled in the CRM. 

Now, clothing and armor can be limited to how they are used with creatures. Buying chain mail for humans would be different when purchasing chain barding. So armor now has a racial attribute for what races can use them. Furthermore, armor can be regulated to specific areas. You could create a helmet, gauntlets, breastplate, or full suits. This is because I created a Clothing class that inherits from items, and an Armor class that inherits from Clothing. 

This was a huge rewrite. I had to correct over 500 lines of code over the actual DLL rewrite. I also had to redesign some of the elements of the Item creation wizard to accommodate some of the new options. Some portions are still being re-written. For instance, we once had an item package item type that let you check off items included in the item. Now you actually can control the quantities for the items. I still have to create an interface that is easy to use for this.

I also still have to fix how magic items are built. The wizard for this was a bit different before as magic items were written through a different DLL. Now, items have an enchantment property in their item attributes. I did this to allow future programs to implement players or Game Masters to easily add enchantments or enhancements easily in other programs such as while using a virtual table top. Now, I have to rewrite the new code to actual copy an item and add enchantments.

There was a lot of work done, but there are still issues to work out. Yes, it is still pushing a formal release out, but it is for the good. I can now add things easily which will help future development and allow me to respond to requests and user feedback more easily. Today I hope to wrap up the item creation wizard functions and hopefully have the enchantments functions done by tomorrow. Then I will add modern sagas items. Last will be a compile for testing, I will send the file to one of the testing machines I have here now (I have to extra computers loaned to me for testing now) and try to break it. If all goes well I have to rebuild the content files, but that should take long.

If all goes well, and there is very little reason why it shouldn’t, I should have resource files completed very soon. This will then get exported into a campaign file which will then be installed and used to test development on the character creator. If that works out quickly (and it should) we could be seeing the release in a few short weeks.

Also, for future development, I have a couple of new programs on paper that will be developed shortly after. This is an un-official announcement but something that I think patient readers may find interesting.

  • A character Journal that will manage player campaign changes including buying and selling items and skills.
  • A Campaign world builder planned as both a stand alone universal product or a CRM add on.
  • An Adventure Builder (yeah man this si going to be GREAT!)
Until next time…
Happy Gaming!
Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>