Plans for DAOC MapperGUI
Jan. 24th, 2005 03:31 pmTo everyone who wanted to know if I can make it work with Catacombs: yes, DAOC MapperGUI will render Classic through TOA zones from Catacombs just like it did with the TOA client. Nothing has changed there. However, it will not render dungeon and city zones any better than it ever did, which is to say, not at all. Unfortunately, ALL of the new Catacombs zones are "dungeon" and "city" zones.
I am working on some improvements to DAOC MapperGUI. When I took over maintenance of the program from the original author.... well, as a Python programmer, I'm a great C/C++ coder. It turns out I knew only a little less about Python than the original author of the GUI interface--there's a lot that can be improved using really nifty Python features I knew nothing about before, but have been learning about from studying the code of Python coders who know what they are doing. Coders like Kort of Kort's Spellcraft Calculator fame.
Here's what I have in mind:
I am working on some improvements to DAOC MapperGUI. When I took over maintenance of the program from the original author.... well, as a Python programmer, I'm a great C/C++ coder. It turns out I knew only a little less about Python than the original author of the GUI interface--there's a lot that can be improved using really nifty Python features I knew nothing about before, but have been learning about from studying the code of Python coders who know what they are doing. Coders like Kort of Kort's Spellcraft Calculator fame.
Here's what I have in mind:
- Structural improvements - invisible to the user, but make code maintenance easier. Dividing things up into proper package. Status - Already started on this
- Installation improvements - Python has the capability to self-generate installation scripts, so that you could, in the future, install DAOC MapperGUI by just (Linux) typing "python setup.py install" or (Windows) double-clicking on an installer program. For Windows packages, I'd like to take a cue from Kort and pack along all the necessary extra DLLs so you don't have to worry about installing Python and PIL and whatever else before you can even think about installing DAOC MapperGUI. Status - I'm thinking nice thoughts about this and doing some research
- Overhaul the interface - DAOC MapperGUI has gone about as far as it can with the current arrangement of the interface. There's just no more space to jam in more controls, toggles and buttons. I need to re-arrange it to use multiple pages of controls--some kind of tabbed notebook control, or just subdivide the controls up into multiple pages that are loaded via menu commands. I want to re-work the Caption Editor--it's fine when you only have a handful of labels, but if you compulsively label every mob spawn in every zone the way I do, it's very clumsy (see note below). Also, I'd like to hook in some additional utilities, that will require their own interface items (see notes below). Related to this....
- Switch to a more capable GUI toolkit - TkInter is, ah, limited in its capabilities. It has a very limited, basic set of controls and widgets. A lot of what I want to do in overhauling the interface would require rolling my own custom widget classes--and I hate re-inventing the wheel, especially when it is a lot of work. So far, WxWidgets is looking fairly attractive, because I can make it work reliably in both Windows 98 and Linux/X11, and it has a lot of controls that do exactly what I need. I couldn't get PyQt to work in Windows 98, and I haven't even looked at PyGTK. The downside is that WxWidgets requires a lot of supporting packages installed as well, which means I really need to learn to package the Windows version of MapperGUI up as a binary installer that handles all that crap for you. Status - doing some research.
- Overhaul the Caption Editor - not just the interface, but the back-end as well. Right now, it's stored as one huge flat file of captions. This has gotten very unwieldy for a compulsive captioner like me; it wants subdivision by realm at least, and possibly shoved into a database. Of course, if I use a database, I'll need to add import and export capablities. XML is a nice standard for that: structured, but readable and editable with a text editor. Status - I'd like to do this some day.
- Hook in additional utilities - I've got some Python scripts for generating a complete list of zones and their types, and for gluing images together to make realm maps. Right now they are driven by BASH scripts; it might be nice to have those capabilities included in DAOC MapperGUI with a nice GUI/menu interface to them. Status - I'd like to do this some day.
- Draw dungeons and Cities - This may be possible; I've got some code from the French programmer that generates 3D wire-frame maps of dungeons from the older clients. I have no idea if it works with TOA or Catacombs code. Some day I'll test out that code and integrated it with DAOC MapperGUI. Status - I'd like to do this someday.
- Edit: Update Help - not only update the embarassingly out-of-date help file (it's from version 1.6), but implement a real help sub-system. Status - considering the use of HTML controls, so I can write formatted help-text in a standard format.