Wednesday, May 25, 2005

Parsing Strategies

Room persistance is still presenting problems, but I'm starting to understand Hibernate a little better. I had some new ideas on reworking the parser. I"m still reluctant to implement ANTLR, but that might change as the number of commands and parsing complexity increases in the future. I'm playing around with the idea of using Maps to build smaller parse tables. There will be one basic command map, a map for each playable class, an immortal map, and then another map with some classes to store Aliases. In this method, each Player will have a combination of maps that will determine applicable commands. Alias will be stored as strings and delimited by semicolons. The alias map should not have to combine with the other Player maps but should be checked first off for a matching key, and if there is a match the command chain should run through each command until the all commands have been executed .

Tuesday, May 17, 2005

Up against a wall...

After working on persisting rooms and zones, I began to question the current method of Room connections. As of now every room has an array of Bordering rooms. The problem comes about when you have doors. As doors must also be persisted, are they really attribute of an individual room or a link between two rooms. I'm really considering reworking the room design to have a hashmap of borders. Borders will then link Rooms and also store other informations such as isLocked and door descriptions etc. While this sounds like the natural approach, I'm really worried about over complicating the design. Also then I'll have a new class (Borders) to persist. The upshot is being able to open a door between room a and room b and having the door being opened from both rooms rather than opening a's door everytime b's is opened. As I've already loaded near complete zones and rooms, the only issue being is that i can't get my persisted Array class to reinitialize with the proper length. Now if I choose to restructure the room linking...once simple routine of loading zones and then loading rooms and linked rooms... will become loading zones and loading rooms and loading borders. I suppose the latter won't be that difficult. Hibernate so far has been fairly straightforward and I've been able to persist simple ADT's without much reading. I'm a little worried how complicated my persistence strategy will be by the time I'm finishing up the common classes.

Monday, May 02, 2005

Dell is back up

The Dell is back up. Currently desk-less, I have my current work space on top of a travel ironing board and kitchen stools. This will have to do until a find another desk or find the time to build a new one. No listening to my prior rants, I once again forgot to make an online copy of the latest and greatest sotmud code, consequently I bring to life my old custom built and gmail the source over. Hopefully *crosses fingers* I'm going to be getting time this summer to get some real work done.