So some of you may be curious about this project that I have started working on, very sparingly (not a lot of free time at the moment!) but it is progressing:
I have started some work on a new version of the mapper, OP2Mapper v3.1. (Yes, I know that the next version would logically be "OP2Mapper 3.0" but I did start some work on such a project, written in C++). v3.1 is being written in C# and I plan to include the following features and changes (some of them are a large departure from the previous version:
New Features I hope to include
1. Actual mission editing support. I know OP2Mapper v2 includes a unit editor, and you can force it to generate some (rather unreadable) C++ code. However, there is really no graphical mission editor yet released for OP2. By graphical mission editor, I mean being able to create a more-or-less fully functional mission without having to edit code.
I invision this as the following. After you have a working map, you plop structures down for each player, and edit some generic mission properties (for example setting the name of the mission, techtree, etc). You can then switch into a script editor mode where you basically have a list of conditions and can add/remove conditions. For each condition you can associate one or more actions. (I suppose the analogous OP2 mission construct would be a Trigger, however some of these conditions might not be real conditions, for example "initialize game" or similar would correspond to the code within InitProc, or there might be "fake conditions" that can be called from within other actions, as a type of subroutine support).
If you have ever used the "triggers" interface in the Starcraft map editor you should have a decent idea of how this script editing might work (but the UI will not be identical).
I want to add other support, for example specifying points or rectangles on the map that would be associated with certain script functions (for example the SetRect for a FightGroup could be specified directly on the map. Think "location layer" in the starcraft map editor).
After all this is specified I want to be able to generate well commented, human readable C++ code (this would allow a mission designer to create a "draft" in the map editor and then modify it accordingly if they want to add more advanced things, for example some of the unusual code that missions such as the Survivor maps use). That being said, I would like to have proper support to directly compile a DLL from the editor (so someone who wants nothing to do with writing code won't have to touch it at all or even know how to compile a project, beyond the expectation that a C++ compiler is installed and usable).
2. Proper terrain editing support like would be expected in other games' map editors. I know this is a difficult proposition for OP2 (given the transitions between different colored types of tiles are not simple) but I want to have something that works at least somewhat in a usable fashion (probably via scanning the dynamix-created map files and making a list of tile adjacencies, weighting them by how often they are used and using this information to determine which tiles should be put next to each other). This includes cell types (for example if you put a crater onto the map, it sets it to an impassable type, and sets the cell type properly for the other types of terrain). This includes attributes like lava possible, so if you have the dark black terrain (recent lava flow) it sets this accordingly.
I know that this would be a loss of a feature (tile-by-tile editing) but from a usability standpoint tile-by-tile editing shouldn't be supported (or doing other weird things like changing celltypes to nonsensical values, for example making the middle of a cliff passable) as some of these kind of things go against the normal expectations of a player.
3. Cross platform support. I am writing the editor in C# as this is able to run on multiple platforms (.net on windows, mono on linux and mac os x). I will do testing on linux with Mono to insure that the editor runs properly there.
4. Maintainability. VB6 is horribly outdated, and if you have taken a look at the code for the project, it's a wretched mess. I hope to solve that here.
Features that will likely not exist (or at least not right away)
1. Tile by tile editing / direct cell type editing. With a proper terrain tool I can't think of a great use for this beyond creating confusing maps, for example passable cliffs as mentioned.
2. Copy/paste. This would be a bit difficult to implement with the map having additional layers such as units, locations/rectangles, etc. and most other map editors don't have this feature anyway. (Again, if the terrain tool works as advertised this probably won't be that necessary)
3. Tile Mapping / terrain editor. About the only use I can see for this are custom tilesets (I will probably have some kind of way to specify this information for custom tilesets so they can be edited in the mapper but it definitely won't be in an easily accessible GUI interface, imho these tools have the potential to do more harm than good, for example if required mappings are deleted.
4. Editing of VOLs/CLMs. At least not right away, but this feature was broken in OP2Mapper 2 and causes it to crash half the time. There are other (better) tools written to deal with these files already.
5. Opening multiple map files at once. It complicates the design of the program a fair bit and the workaround here is to open multiple instances of the mapper.
If you have any questions / comments / whatever, I'm open to suggestions. I just figured I would let people know that I have hopes to create a program like this to make mission editing easy to do without requiring coding (though I do not have a lot of free time so this will be a very slow moving project).
-- BlackBox