I was coopediting today and someone mapwrecked, and this is basically 100% predictible. Someone is either bored and thinks mapwrecking is funny, but it's only funny to them. Other times it's just someone who doesn't know how to edit properly. I think some measures need to be implemented that attempt to eliminate mapwrecking.
Here's a tip, instead of the term 'mapfucking' use 'mapwrecking' it's friendlier.
Here are my ideas for ending mapwrecking. This is stuff that lacks in the sauer editor, and if they were implemented, coopediting would be much easier. The following ideas are in no particular order:
- Server-side map - the server keeps a copy of the map, and updates it automatically as players edit. This way, sendmap will not be needed anymore. Sendmap can still be available, but it won't need to be used as often. It can be used, for example, when you open up your own map and the server doesn't have it. There can be some sort of communication between the client and the server that makes the client automatically sendmap if the server doesn't have it. This can all be tweaked with settings variables. The map code can run in a different thread, so as to keep server network efficiency. Also, this can be disabled by a variable, to have old-style sendmap, like we do now.
- Allowed edit areas - for new joiners, only allow them to edit in an area of the map, thus disallowing them access to the whole map, and disallowing other players access to the new player's area. This way they can't break the map. Either that or allow players to define an area in which only they can edit. After that, add commands to allow other players to edit in your area. This way people cannot mapwreck the whole map. It can be setup so as each new player gets a new empty area, and can only edit in it, but can walk the other areas easily. This is both a client-side and a server-side modification.
- Send textures, cfgs and mapmodels. Maybe sounds and other assets too. This way it would be a lot easier to add custom content. In fact, with this implemented, a lot of the existing textures and models could be deleted from the distribution, and just downloaded with the map. I'm sure a lot of the existing textures are unused.
- Alternatively, add resource pack support - ie a zip file that can be downloaded from an URL, that contains a texture pack, mapmodel pack or whatever.
- Generating a zip file with all the necessary content for a map, for easy posting on websites.
- Having a player scale setting, so the size of the player can be chosen, and this should be per-map, so we can basically make the player bigger, and the details smaller. This way we can double the player in size and have finer detail in the map.
- Bezier patches, just like in quake 3. This would allow much easier curve making. Collision detection can also be done with the curves, although that is optional, since we can compensate with invisible cubes.
- Sending vcommands, like vscale, vrotate and so on. Currently they are not networked.
- vrotate should go up to 7, wherein vrotate 0-3 means rotate the texture, and vrotate 4-7 means vrotate the flipped texture. Currently it goes up to 5, wherein 4 means flipped, and 5 means flipped and rotated 90 degrees. Same goes for texrotate. Alternately add a vflip command.
- A friendlier user interface, and interactive tutorials, that take noobs through a few simple editing steps, and later introduce them to coopediting, and teaches a few things about etiquette as well. The tutorials can be text, and can be translated in many languages. This way we don't need to teach noobs, and mapwreckers have no excuse anymore.
- Limiting selection size and grid size (client & server), to avoid, again, wrecking, scroll spam and lag. Maybe add visual warnings to the client and maybe the admin too: "Warning, you have a large selection with a small grid size. Recommend using larger grid size!"
- Flood protection - from chat to map commands like remip and sendmap. Simply disallow some messages to be sent if the last time they were sent is too recent.
These are my ideas for improving the coopedit part of sauer. Contribute your own.
We can make a list of most wanted ideas, and note, these are strictly related to the editor part of the game, not other parts of the game. But I was thinking of making a list of top ten wanted ideas, and maybe we can then get someone to actually implement them. Maybe not eihrul, since he's busy with other things afaik, but I'm sure we can find someone, even if we have to raise money and pay them. Also, if you have ideas related to another aspect of the game, post in own thread.