[crossfire] Importing the GTK+ editor in SVN

Nicolas Weeger nicolas.weeger at laposte.net
Sat Jul 19 10:36:09 CDT 2008


I concur to the arguments :)
(and frankly I have no plan to work on gce's code, I'd rather learn Java, 
given that Gridarta is much more advanced imo)


Nicolas

Le vendredi 18 juillet 2008, Andreas Kirschbaum a écrit :
> Hi,
>
> I am one of the founders of Gridarta and I still maintain the editor. So
> expect my viewpoint to be slightly biased ;)
>
> > I already mentioned on IRC some of the reasons why I think that this
> > editor [gce] is interesting: it is fast (e.g., drawing walls or other
> > features on a large map is much faster than with gridarta)
>
> It is known that Gridarta is quite slow on huge maps. The main reason is
> a less-than-optimal implementation of the undo stack. Fixing this would
> need a fair amount of work without having much effect for "real" maps:
> Crossfire maps generally should not grow too large; instead tiled maps
> should be used. Therefore I (still) consider fixing this issue a waste
> of time since more important features are pending.
>
> Besides that, my observation with gce was just the opposite: I did
> create a map with gce's default size (20x20 tiles). I hardly could edit
> this map because gce's display updates were sluggish at best: just
> moving around the mouse "cleared" the map view when the tooltip moved. I
> had to stop doing anything (including mouse movements) and wait 3-5(!)
> seconds until the map view was repainted and I could continue.
>
> The test was on the exact same machine that I use for Gridarta
> development and testing; gce is the version available for download on
> the Deliantra web site.
>
> > , it has a nice way to display the properties of all map objects as
> > you move the mouse around
>
> Yes, this is a nice feature; I plan to add a similar one to Gridarta.
>
> > , it has less installation dependencies than gridarta
>
> I just can agree with Yann here that this is not correct. Gridarta needs
> only Java 1.6; no other external libraries are needed. Building from
> source additionally needs ant. According to the download web site gce
> needs at least Perl, libgtk2, and libglib2.
>
> For the implicit "free software" meaning: OpenJDK is about to go into
> Linux distributions. Therefore it is not (anymore) an argument for me.
>
> Also, the argument (as stated in another mail in this thread) that map
> makers may want to use Debian stable, is not an argument: the gce
> download page states that libglib2.0-0 version 2.12.6-2 is needed;
> Debian stable has 2.12.4-2 only.
>
> Windows users can also use OpenJDK (I guess), or just download and
> install Sun's JRE to run Gridarta. Not sure how easy it is to get Perl
> (and GTK2) installed on a Windows machine.
>
> FYI: gcj fails to compile Gridarta because gcj does not comply to the
> Java Language Specification (apart for other issues in the class
> libraries). I filed a bug report more than four months ago
> [http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35410]. It is still in
> state "NEW".
>
> > , etc.
>
> See below for a list of missing features. SCNR ;)
>
> > However, the current version also has some drawbacks: [...]
>
> All these drawbacks are just technical issues that can be fixed.
> Therefore these issues are not really arguments against the editor (for
> me). (Without actually having guessed how much work is needed to get
> them fixed.)
>
> > If there are no objections against this plan, I would like to import
> > the code in SVN as soon as possible.
>
> Given that Gridarta is still in active development (more than 4000
> commits since the project start about two years ago), and having
> invested much time (I did more than half of all commits), I do object.
> My main reasons are:
>
> - We (Crossfire) do not have that many (active) developers. Therefore
>   splitting these few into the maintainance of multiple
>   helper-applications that basically do the same seems just a waste to
>   me. We should rather focus on the game itself.
>
>   With "game" I mean: in-game content, a decent client (which runs on
>   Windows, Linux, and hopefully on Macs), and a stable server [roughly
>   in this order], but definitely not the maintainance of redundant
>   helper-applications.
>
>   Also, the main reason why we (Christian Hujer, Daniel Viegas (both
>   Daimonin developers), and me) did start the Gridarta project was to
>   fight resource splitting: at that time there have been two projects,
>   Crossfire and Daimonin (I'm ignoring Angelion because it did use the
>   unmodified Daimonin editor). Both projects did use and maintain
>   similar editors.
>
>   Our idea was to join the developers of both projects to get more
>   development power. The intended outcome is a (mostly) unified editor
>   which shares most of the basic functionality but has special features
>   needed by either project.
>
>   For Crossfire this merge process already did pay off since I could
>   take over many features from Daimonin to Crossfire. Besides that I got
>   quite some (constructive) feedback from Daimonin map makers.
>
>   That said, I think starting a new editor would basically mean to split
>   off Crossfire from Gridarta: having an editor part of the project
>   (IMO) declares it as the "official" Crossfire editor. Which in turn
>   means we (the Crossfire developers) are at the same state as two years
>   ago: two editors to maintain (crossedit+CFJavaEditor vs.
>   gce+Gridarta) with just a hand-full of developers.
>
> - Gridarta includes a map validator module. It checks for common
>   mistakes when creating or editing map files. It is enabled by default
>   to prevent map makers from adding "bad" things to maps they create or
>   modify.
>
>   This safeguard will not anymore work reliably if some maps are created
>   (or just modified) with a different editor lacking a (or featuring a
>   different) map validator.
>
> - A while ago I modified Gridarta to write object attributes in map
>   files in the same order as the Crossfire server. After that all map
>   files got normalized to this format. The reason for this effort was to
>   minimize the changesets when editing maps.
>
>   Although a quick test did indicate that gce seems to use the same
>   attribute ordering, it inevitably will break from time to time when
>   new attributes are added. This means, we'll both get larger changesets
>   than necessary, and we'll have to modify both editors in the same way
>   to not loose this benefit.
>
>
> That said, I strongly vote for having just one "official" editor. Of
> course, we cannot dictate which editor a contributor wants to improve,
> but IMO the Crossfire project/developers should select one (and only
> one) "official" editor.
>
> Of course, I vote for Gridarta. ;)
>
>
> Just FYI, some of Gridarta's features which I didn't find in gce (and
> which are not at all "hidden" but easily accessible though menus in
> Gridarta):
>
> - Map Validator: checks maps for common mistakes. The checks are run
>   automatically while editing but can be disabled by the map maker.
>
> - Pickmaps: allows a map maker to compose a set of related objects for
>   quick access. The objects can have custom modifications and
>   inventories. Pickmaps can be organized in folders.
>
>   A possible use might be pickmaps defining walls and buildings used in
>   different areas of the world.
>
> - Treasure Lists: Treasure lists can be displayed in a tree view and
>   interactively explored. In the Game Object Attributes Dialog this
>   viewer is used to select the desired treasure list. Map makers are
>   prevented from using treasure lists used internally by the server
>   (such as the god information lists).
>
> - Plugins: Gridarta includes a plugin interface via a scripting language
>   (Beanshell). Scripts can access all of Gridarta's functionality.
>
>   Currently existing scripts are:
>
>   - LegacySpellConverter: a script I did write for converting spell
>     numbers into spell objects in all map files. It checks the actual
>     object type (including type modifications in map files) and
>     therefore does not produce false-positives a simple search&replace
>     would create.
>
>   - MapNormalizer: load & save all map files. I did use this script to
>     make sure all map files have a consistent file format. It has been
>     run on all files in branch and trunk.
>
>   - MapValidator: runs the map validator on a set of (or all) maps. The
>     result can be written to a log file.
>
>   - WorldMaker: creates an overview image of the world maps.
>     Info/worldmap.png in the maps repository was created by this script.
>
> - Non-Rectangular Selections: Many functions (cut, copy, paste, fill,
>   selection from pickmaps, shift, etc.) operate on the selected area.
>   The selected area can have any shape; adding, removing, and flipping
>   is supported.
>
> - Safeguards: Gridarta tries hard to prevent the map marker from loosing
>   unsaved work. This includes prompting for unsaved maps, pickmaps, and
>   scripts when closing windows or exiting the application.
>
> - Map Previews: the file selector dialog optionally displays preview
>   images of the map files. This allows easy recognition of the map(s)
>   the map maker wants to open.
>
> - Auto-Updater: when using a pre-built editor, map makers can update
>   Gridarta via Help->Update. Additionally, Gridarta can automatically
>   check for updates on startup.
>
> - Non-English user interface: many of Gridarta's text messages are
>   translatable. Currently this includes German (all messages
>   translated), Swedish (about half translated), and French (few
>   translated). Adding more languages is very easy through text files.
>
> - Script Editor: Gridarta includes an editor for scripts. It supports
>   syntax-highlighting for Python (and more file types not normally used
>   in Crossfire maps).
>
> - Map View Filtering/Highlighting: the map view can hide and/or
>   highlight different object types. For example only walls and monsters
>   could be shown. Hidden objects are not affected by edit operations.
>   Available filters are not hard-coded but read from a configuration
>   file which allows easy customization.
>
> - Syntax Highlighting of msg...endmsg fields: for objects supporting
>   @match, the text is colored. Incorrect expressions (such as upper-case
>   characters) are highlighted.
>
> - Information Views: displays information about the current map. This
>   information is updated in real-time reflecting the current map state.
>   It includes connected objects, monsters, and map validation errors.
>
> - Map Views: one map file can be concurrently displayed in multiple map
>   views. This is useful when editing connected objects in different
>   parts of a larger map.
>
> - Zoom Tool: displays a map file with different scalings and allows to
>   save the result as image files. It can be used by map makers to
>   publish previews.
>
> - Recent menu: the file menu contains previously opened map files for
>   easy re-access.
>
> - Archetype Collection: Gridarta can collect archetypes (i.e., do the
>   same job as the collect.pl script). The created crossfire.0 file is
>   slightly smaller than the collect.pl one.
>
> - Opening Multiple Maps: the file selector allows to open multiple maps.
>
> - Reload Faces: reload faces without restarting the editor; this
>   simplifies the creation of new archetypes. (This feature is not yet
>   unified and therefore available only in DaimoninEditor.)
>
> - Control Server: Gridarta can control (i.e., start and stop) the server
>   and a client. This simplifies testing of maps without having to
>   manually starting server and client and issuing 'reset commands. (This
>   feature is not yet unified and therefore available only in
>   DaimoninEditor.)
>
> _______________________________________________
> crossfire mailing list
> crossfire at metalforge.org
> http://mailman.metalforge.org/mailman/listinfo/crossfire



-- 
http://nicolas.weeger.org [Petit site d'images, de textes, de code, bref de 
l'aléatoire !]
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
Url : http://mailman.metalforge.org/pipermail/crossfire/attachments/20080719/2ad947a5/attachment-0001.pgp 


More information about the crossfire mailing list