Comments (7)
A few comments:
- Rendering pre-digested surroundings information would certainly help any web-based mapper performance issue one might encounter (not that anybody verified that yet...).
- Security: Given the horror in mm2's source code, I'd be very cautious about running a public service based on that code.
- Be careful with further development of Group Manager: as awesome as it probably is for XP, it is illegal in PK situations as already noted in mm2 and for some smobs as per "RULES ABUSE" ยง 4. And I doubt most players bother to turn it off when they ought to. I should probably implement it in MUME instead.
- Per-character door memory: Yes! Although in my plans of MUME-side support for that, I have it per-account. I think people will just bypass such a limitation if they have to relearn all doors for every character. Related: I'd very much prefer if the maps distributed with mm2 didn't include secrets, see File > Export base map. New players need something left to explore...
- Centralized map: Is that collaborative editing or just centralized distribution?
- Mobile MUDding: What would be the added value of a native mobile client vs. web? Players need to be connected when playing anyway, and we can store settings etc. in the browser. If I had the time for this, I'd redesign the web UI and try creative CSS media selectors to display common commands over the text like the defunct Blowtorch did. It could be enough for a quick MUME fix while on the go (chat, mild XP).
from mmapper.
Beside the sheer size (and complexity) of such a project (I'm afraid of any side project that cannot be broken in pieces of about 40 hours of work max), a few comments:
"a centralized map that is updated by a group of core cartographers."
Working on a project with a large contributor base (~1000 unique contributors/month), this open the can of worms of the contribution process and the governance problem (who can edit the centralized map, do we want a review mechanism?, one or several maps managed by teams, โฆ). Also more and more projects tend not to build contribution mechanism themselves (it is a huge amount of work) but tend to rely on 3rd-party (wiki for publish-without-formal-review, or github for review-before-publish). The publish-without-formal-review paradigm seems difficult (I for sure wouldn't people to touch my map without me approving the changes) and the review-before-publish doesn't scale to frequent small changes (like I expect for a map).
"Group Manager"โฆ"it is illegal in PK situations"
Also I would like to stress the point of @waba4mume about rules abuse. I would like to keep MMapper2 safe: If you don't activate the group manager, you are always following the rules. I even would like to see it outside MMapper2, as an add-on or as an extension of the MUME protocol (with MUME enforcing the rule about 'you are in a PK situation').
I think 'MMapper as a service' is a solution; we should clearly identify the use cases we want to improve there, so that we can compare this with alternative solutions.
from mmapper.
Good points from both of you. Let's simplify the scope then to get a working minimum viable product!
MMapper, in my experience, has three primary users/uses ordered by popularity:
- Online Players who wish to role play and/or PK
- Cartographers who wish to organize the world
- Offline Players who wish to explore risk-free
I propose we eliminate Offline Players right off the bat because this feature doesn't require a hosted service. Additionally, let's eliminate the Cartographer users from the first iteration because this is a significantly smaller portion of the entire MUME community. As such, we will focus primarily on Online Players and try to build a minimalistic web-based mapper and client for newbies to play on.
Other points:
-
Rendering pre-digested surroundings is something that I have successfully prototyped using web sockets that serialized the current OpenGL viewport as a PNG to the browser. This clearly wouldn't scale but with a tiling approach should be doable.
-
I thought about this some more and I figured that the simplest way to build a centralized map would be the server only allows 1 map. Long term (not in the first iteration) we can think about having maps be skinned or introduce different ways or organizing the same map with infomarks, placement, etc.
-
Security is something that we can address by reducing scope and eliminating cartographers from the first iteration. This makes web clients read-only and we package the map along with the server.
-
I agree with @waba4mume that Group Manager is something that should slowly be moved over to the server side. I am thinking that making group management easy and centralized would incentivize people to not cheat (think Netflix and piracy). This also gives us more fine grained control over it and PK.
-
Per-character door memory can be account based. I thought about how we should manage security and figured since MMapper as a Service would simply use MUME identities as a way to figure this out. We can grab this metadata from the character on the first
info
account list
or have MUME pass it to us through some special XML field on log in.
from mmapper.
I'm going to take a look at how I can render a MMapper map into tiles similar to this guy using z/x/y coordinates to identify each tile. I'll be able to then emit the current z/x/y position of a MUME character over Web Socket to an HTML5 browser which needs to then select which z/x/y corresponding tile to display in its <canvas>
tag. I already have some basic Web Socket and client code here: https://github.com/nschimme/MMapper/tree/client2
P.S. I have some concerns about the latency of being able to move around this map but we'll tackle that at one step at a time.
from mmapper.
I managed to resurrect my old code and get it playing alongside the Javascript mud client. Performance sucks because its literally serializing the entire OpenGL viewport each time. I haven't had a chance to break everything into tiles yet. Will update once again when I make more progress.
from mmapper.
I've been thinking about this some more and discovered Leaflet which is used by the OpenStreetMaps project. There has even been some work on using it in a real-time fashion which could be close to the behavior that we want.
I imagine what we'll want to do first is then export a MMapper2 map as OpenStreetMap tiles. Secret rooms could be handled as separate layers that are only displayed as needed but that's probably much further down the road.
It also looks like they have a lot of plugins to draw from!
from mmapper.
This is necessary anymore now that Waba has made his mapper public
from mmapper.
Related Issues (20)
- Suggestion to add "_moon" command HOT 2
- Escape sequence seen in mmapper terminal HOT 2
- Add offline emulation for doors and secret exits HOT 2
- Countdown timers HOT 3
- Moon DK timer HOT 3
- Change Group Manager Font HOT 1
- Make it possible to forward XML tags to the client HOT 2
- Cha col uppercase on exits or look will make mmapper lose it
- Can't move east just before Bree HOT 3
- Add message and graphical icon to warn when MMapper loses sync
- Make the Room Properties window nonmodal and such that one can click another room to see that room
- Losing drafts using built-in editor - Add Auto-save?
- Moon is broken HOT 3
- Revealing the Map as you Explore (starts hidden by default)
- Reduce minimum height of MMapper Editor
- Losing menu bar and MMapper's sense of where the mouse is when unplugging and replugging screen HOT 2
- Moon cycle change 2704 breaks MMapper2 moon counter HOT 4
- More docking options for panels
- Undocked panels do not stay visible when navigating away from MMapper
- Timer list should be a optional panel
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mmapper.