PlaneShift

  • Status Prospect Task
  • Percent Complete
    0%
  • Task Type Feature Request
  • Category
  • Assigned To No-one
  • Operating System
  • Severity Low
  • Priority
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes 1
  • Private
Attached to Project: PlaneShift
Opened by O - 29.11.2008
Last edited by Keith - 12.01.2009

FS#2532 - Read, unread, and updated books

I don’t spend my life in Jayose’s library. However, once in a while, I would go there and spend a couple of hours reading, looking for new books, sometimes refreshing my memory with older ones.

It would be nice if there was a way to quickly spot a book that one has already read. Maybe a (read) or (unread) mark after the title, or just a different colour for the title font, anything as see fit. A “read” flag would be set as soon as the book is open, to keep it simple, and of course it is the player’s responsibility to read the content. Ok, so far, you can tell me that it’s up to me to remember if I read something or not; even when hundreds of volumes will be available; yes, but…

It gets useful when a book is updated. If I do remember that I read a specific book, well, I’ll probably won’t read it again. Meanwhile, words may have been changed inside, following the inconsistencies hunt, world development, whatever… So, if all statuses are set back to “unread” for all players after a change (or from “read” to “updated” if you want to be more precise), we’ll know that we’d better read it again.

It can be a bit heavy on the database (flagging each book for each player), but at least it’s technically simple. Not to mention other uses you could come up with (quest requisites, statistics for the setting team, etc.)

Also, as Tontow suggested, the info can be stored on the client side instead of a database. To not lose the functionality of the “updated” flag, which is set on the server side, a last updated timestamp for each book is all that is needed on the server. Client side, the log starts empty (no book read). When opening a book, the log is updated (each time) with the book id (its name, I suppose) and the opening timestamp (server time, easier than GMT). When examining a shelf, books are marked according to the log info; thus, if the latest opening date is earlier than the book’s server timestamp, it appears as “updated”.

(Wish list reference: http://hydlaa.com/smf/index.php?topic=34222.0)

Steven Schwartfeger commented on 29.11.2008 06:28

Setting new.

Elvors Amenoras commented on 26.12.2009 10:27

The forum thread is now on http://www.hydlaaplaza.com/smf/index.php?topic=34222.0

Note that keeping a flag for each book/player combination in the database does not produce noticeable server load.
The number of people reading books in the library at any time is single-digit, with a single INSERT/UPDATE each time a player opens a book - that's negligible.
(Database size does not produce database load, SELECTs, INSERTs and UPDATEs do. Also, CPU and network load are going to become more important than DB load as SSDs become commonplace.)

Load considerations aside, I can see the following points:

  1. Storing on the server requires a new table. This may require additional web interface dialogs and such.
  2. Players who have the client installed on two machines will end up reading each book twice. That situation wouldn't be uncommon, people tend to use a different computer when away on vacation (and some play at work, too, though that's probably more of an exception).

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing