bnordli / rftg

Race for the Galaxy AI
173 stars 32 forks source link

Separate Game Log from Chat Log #17

Open dsnvwlmnt opened 7 years ago

dsnvwlmnt commented 7 years ago

[Continuation of Issue#12.]

Wouldn't it be better if under the hood there were two display widgets, one that gets game log entries, and one that gets only chat entries? It's probably only entangled because chat was tacked on at some point out of convenience, but without foresight. Probably no need to keep it entangled in Marsux' two-widget idea.

The game log widget should be for everything not chat-related (game and game state information), and the chat log widget should be for chat (messages, disconnection, timeout warnings). Then you can toggle whichever you want to see in the UI. I'd imagine most people don't even care about the game log, and you could simply have the chat log exactly in its place.

For those who want both logs, having them separate would solve the problems. As for what it would look like, simply two logs above each other is probably fine - two that look like the current one. Game log above Chat log, i imagine?

Marsux commented 7 years ago

The advantage of having them mixed is that chat can then be used to comment the game. If the two are not correlated, it is not possible to place a message in the log at the position where the comment applies. I think it is a good feature to have the chat message in the log. It is just not convenient when the chat is used to discuss rather than for commenting the game

dsnvwlmnt commented 7 years ago

Ah yes, i see the utility of your method then. I guess there is no timestamp in the db for chat messages and game log occurences, making it impossible to seed/intermingle chat messages into the log...

bnordli commented 7 years ago

The chat messages are actually ordered within the game messages, so that's not a problem (you can see them in the original order after reconnecting). It's all a matter of finding a good UI, and displaying the received messages in a user friendly way. My current proposal is to have a toggle to display either only chats, or all messages. Still not aiming for 0.9.5 though.

bnordli commented 7 years ago

I have a plan to move the lobby to a separate window, like this: chat(Don't mind the "(game)" text, it's just temporary.) Game chats would be sent both to the lobby chat window and to the game message window (but not seen by the users in the lobby). This way, it is also possible to see activity in the lobby while in-game.

Does this look acceptable, or is another window too much, and the behavior just confusing?

piperjackson commented 7 years ago

I'm not convinced that annotating the game is a good argument for mixing game chat with the log. It is easy to annotate the game log manually in a text file afterwards. And the use case of needing to communicate reliably in real time (i.e. what we mean when we say "chat") is overwhelmingly more common.

To be clear, I am sympathetic to the desire to be able to annotate game logs, but it shouldn't be a factor in determining how chat is implemented in this program.

Also, thanks for all the hard work!!!

dsnvwlmnt commented 7 years ago

What i see in the image is a good start.

I love the idea of being able to see the lobby while in-game!

I don't like the idea of having in-game chat shown (privately) in the lobby chat though. That would be confusing - people would assume that it's showing up publicly in the lobby for everyone.

IMO the bottom left window we already have should only show in-game chat. The game log could have its own window, which could be minimized/shown/hidden kind of like the lobby example you have there.

Alternately, you could follow the tried and true example of MMOs and such, that have a tabbed chat interface in the bottom left. 1 tab for chat, 1 for lobby, 1 for game log... You could blink/change color of the game lobby tab title, when there's a new message or game on there. And the same for chat tab title, when you are in the lobby tab.

dsnvwlmnt commented 7 years ago

Also, i'd take anything that helps arrange games at this point. That lobby view for e.g, as is.