3D explorer bookmarks
Last changed on
Well I am quite happy to introduce the first really interactive (apart from browsing) feature of the 3D explorer: bookmarks!
They are incredibly useful little things, those bookmarks:
- obviously in the case when you meet an interesting place; something exceptional or just plain weird.
- for those cases when you encounter what is obviously a bug
- or very simply to just memorise your latest exploration point
- … and probably many others that I cannot think of at the moment!
Bookmark anatomy
Nothing complex, and probably best described as a simple table:
| Column | Data type | Comments |
|---|---|---|
| User | bigint | |
| Various system fields | - | Creation datetime, uuid, ip address, etc. |
| Label | varchar(256) | Useful to help remember stuff… |
| Positions | float | 3D (duh), expressed in server-side coordinates (Z-up) |
| Rotations | float | in radians, one for each axis. |
Pretty simple indeed. However, one needs to have an account and be logged in to create a bookmark. I did think about making it possible to store bookmark data locally, via localStorage and the like but…...:
- Ad lumens wants to be based on authoritative server principles: so it made sense to store bookmarks server-side, if only as a test.
- client-side only storage works great, but assuming you switch computer or laptop (or at work… … …? :-P) then it makes sense to make use of a more centralised solution
- such a centralised solution opens up many fun and interesting possibilities for new features and experimentss. More on this below.
Long story short: register is your friend. 100% guarantee of no spam, etc. In fact, the exim server I mentioned a few posts back is being set up (with DMARC and DKIM lovely DNS additions… sigh). So the register process doesn't even require an email confirmation at the moment! It will in the near future, though.
New tools & experiments ideas
Beyond providing individual users the ability to memorise places and travel quickly, bookmarks open up some interesting fun possibilities. For example:
Individual list outside of the 3D explorer
This would offer quick access; useful since once in the 3D explorer, you see only the bookmarks of the current galaxy you are currently navigating, if any.
Such a list could also potentially be made public: for visualisation first, but also for perhaps more community-driven features such as voting, commenting, etc. I am not a great fan of the latter, but we're just exploring possibilities here. In addition, there is not much to comment on at the moment: planets all look the same, etc. It is pretty bland, but in the future planets and satellites will be blessed with unique features, at which point it will then make sense to have them exposed, shared and discussed by a community.
Aggregated 3D view of bookmarks
This possibility is more interesting: show a galactic shape (as on the home page of the 3D explorer) and add the following on top of the standard particle cloud: a cloud of bookmarks, either individual or (perhaps more reasonably to limit the number of particles), aggregated per cube. If we go the cube way, we could add colours to indicate numbers per cube.
With such a feature, you offer a nice overview of where users have not only travelled, but also saved locations. Interesting for users yes, but very very interesting for yours truly!
Create, delete and navigate bookmarks
Since I am not a UX specialist of any kind, the usability that characterises bookmarks is far from perfect (cough). So I thought it would be helpful to create a micro-guide dedicated to their usage. Here goes.
As mentioned above, you must be logged in and currently navigating a galaxy of your choice. Once that is done, you will see two icons on the top right of the 3D window:
| Create a new bookmark | |
| View your bookmarks in the current galaxy |
Not exactly advanced stuff, but one has to start somewhere. :-)
Create a bookmark
After clicking the "Bookmark this location" icon, a little slideout is displayed where you must add a label for the bookmark. Click "save" and the bookmark gets saved over websockets, which returns an updated list of existing bookmarks.
At the moment, there is no limit to the number of bookmarks you can have. Unless a bot or careless human starts spamming bookmark creation, I do not see a reason why I should implement sich a limitation at the moment. Wait & see…
View your bookmarks
After clicking the "View bookmarks" icon, a similar slideout is displayed. This one contains the bookmarks you have saved, in the (ascending) order in which they were saved. I should probably do that in descending order, so that the most recent bookmarks show up first and at the top… That is now done and the bookmarks are ordered by recency, descending order. Makes more sense like this I think.
You are at the moment limited to two actions per bookmark:
- Delete: no warning, no confirmation, so be sure.
- Go to: the main point of the bookmark. This will take you to the corresponding location, both from a 3D coordinates perspective, but also from an angle perspective.
Jumping to a bookmark's location is interesting, in several ways:
First it is a powerful and useful test against the LOD bubble principles and performance (see this post). You can now jump halfway across the galaxy, which will surely force you to reload 100% of the data around the camera, so it is a good benchmark of how long that takes and in which order.
Second, it is a useful (albeit indirect) way of seeing the server-side data evolve as time passes. What this means is that when you come back to a saved location, that nice planet you had at an angle with the star in the background might not be where you expected it anymore. Why? Well, because it moved on along its orbit while you were away!
This is another thing I must now start working on: client-side movement of entities, as directed by the server.
3D explorer custom key mapping
A minor feature was released as well: the ability to remap the 3D movement keys. I had (very weakily, I confess) forgotten that many people do not use QWERTY keyboards. So pressing W or other keys was working for them, but was extremely, extremely clumsy.
So you can now remap the keyboard. However, this is stored as a simple cookie and not server-side. Not yet.
Please signin to add your comment.