Reintroducing “layers” (aka “groups”) to the Map Editor

News about the Cafu Engine. Subscribe to the related ImageCafu News feed to stay informed.
Locked
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:
Reintroducing “layers” (aka “groups”) to the Map Editor

Post by Carsten » 2014-11-17, 19:32

A while ago, in September, I considered it a good idea to remove the "groups" feature from the Map Editor. This was fueled by the observation that entities too can naturally and inherently serve for grouping the individual elements in a map. Keeping a second, explicit mechanism for the same purpose (the "groups" feature) only seemed to be a redundant burden. Therefore, the intention was to turn the existing two methods for grouping into a single method, to be implemented by having entities subsume the functionality of the former groups, thus making groups fully redundant so that they could be removed without loss.

Alas, after the change was complete and a considerable effort had been spent to make entities and entity hierarchies work as well as groups did, the first tests and feedback quickly showed that it didn't work out, and that my assessment of the situation (and my enthusiasm for entities, or in fact, the entity component system) did this time not lead to the desired solution. Practically speaking, we found that the "groups", as they were implemented before, were just too good and too convenient to be removed: my attempt to achieve the same with entities was just not on par (think e.g. of the "Hide Other" button). Considering this more closely, it turned out that this was not a problem of the implementation, but of a more principal nature:

Entities and their hierarchies are an excellent way to organize (group) map elements in terms of the game or the virtual world that is being developed: You use entities to model game objects like players, opponents, cars, lifts, or anything else that is relevant for the game.

Groups, however, serve a quite different organizational purpose that, in hindsight, is orthogonal to that of entities: With groups, you express features that are important to the map designer's workflow or are of technical relevance – but not to the logical modeling of a virtual game world.
mapeditor_groups_contextmenu.png
Therefore, I'm currently working on undoing the commits that removed "groups" from the Map Editor, and on reintroducing them soon. At the same time, I will take the opportunity to rename the former "groups" to "layers", because "groups" is a too general word (entities group map elements, too!), whereas "layers", with their analogy to 2D drawing programs, seem to describe the purpose of the feature in a more precise and more intuitive manner.

In summary:
  • Entities group map elements by their logical meaning in the virtual game world, as observed by players, as needed by script authors, as seen by the core engine, etc.
  • Layers group map elements to facilitate technical details for the map designer, e.g. to temporarily hide objects, to lock them from being accidentally modified, etc.
Note that this is currently still a work in progress: I'll post here again as soon as the reintroduce-groups branch is completely implemented and committed. :up:
Best regards,
Carsten
User avatar
Carsten
Site Admin
Posts:2170
Joined:2004-08-19, 13:46
Location:Germany
Contact:

Re: Reintroducing “layers” (aka “groups”) to the Map Editor

Post by Carsten » 2014-12-07, 13:35

Carsten wrote:Note that this is currently still a work in progress: I'll post here again as soon as the reintroduce-groups branch is completely implemented and committed.
This took longer than expected, but it's finally done!

I refrained however from renaming "groups" to "layers": Although I still believe that "layers" would be the better word, implementing the rename now is a huge effort that must cover not only code, but also documentation – and this is where I reconsidered things, as such a rename in documentation would be a too big break also in support and team communication, and generally confuse users without actually gaining anything.

In summary, groups have been successfully reintroduced, and groups are still groups. ;-)

Among the next steps, I will revise the Map Editor's Entity Hierarchy dialog once more, which still needs some polishing. Thereafter, there are still a few detail issues to address, but the conclusion of the "introduction" of the entity component system comes gradually into sight! :up:
Best regards,
Carsten
Locked

Who is online

Users browsing this forum: No registered users and 9 guests