Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: rework in-game Network GUI #9067

Merged
merged 6 commits into from Apr 24, 2021
Merged

Conversation

@TrueBrain
Copy link
Member

@TrueBrain TrueBrain commented Apr 19, 2021

Fixes #9035.

Motivation / Problem

Please follow me down a rabbit hole:

For an upcoming feature we need to show server owners an "invite code" which they can hand to others to join their (private) server. This requires a place to show this "invite code".
The most sane place for this is the "Multiplayer GUI", which currently is just a client-list.

This was the only problem I wanted to resolve .. sadly .. I had a case of feature-creep.

While thinking about how to solve this, some additional things came to mind:

  • #9035 rightfully mentions there is no obvious name to rename yourself in-game.
  • Chatting with people is not obvious in the current GUI.
  • What clients are in what company is not obvious in the current GUI.
  • There is no way to "reset" (read: delete) a company from the GUI (as server owner).
  • Renaming your server in-game is non-trivial.
  • Changing your server from advertised to non-advertised or the other way around is non-trivial.

Basically, we made a lot of things possible via the console, but not via the GUI. So, after some internal debating, I finally made the call to do something about it.

Host Overview image
Client overview (no server info) image
Highlight hover image
Company admin (old screenshot) image
Client admin (old screenshot) image
Spectator (sees "new company" line) image
Confirmation dialog (old screenshot) image

I really did my best to scope this PR as small as possible. That is to say, I tried to add as few new features as possible, but mainly make the new GUI work better and make it more extendable towards the future. Later PRs can add new functionalities. We have a wishlist ;)

Description

When I wrote the original Multiplayer GUI (client-list), I distinctly remember me saying: this GUI is so ugly and unfinished, sure someone will fix that up soon, as I really hate building GUIs.
Well, now 17 years later, I have the answer for you: no, nobody did. So yeah .. I spend 3 days of my life fighting the GUI system. Not because it is bad or what-ever, but because what I want it cannot deliver. So there was a constant fight going on. I think I somewhat won .. but I leave you to be the judge of that.

The GUI now more clearly shows some basic information about the
server you joined, your client name (and the ability to change it),
and what players are in which company.

It also contains useful buttons to press to join companies, chat
with other people, and for admins to kick/ban people.

Additionally, renamed "advertised" to "visibility"; this has to
do with future additions, but also because it is more clear in
wording.

I opted for a dynamic Button system, similar to the client-list dropdown, as otherwise I had to duplicate the complex logic which entry has which button. This way, it is calculated once, used multiple times. But please, review carefully if I go about memory usage correctly .. I am really not sure I understood std::map and std::vector sufficiently :D

Currently which server you are joining is not stored or sync'd, so we cannot show client-side what the server-name is etc. This is for future PRs to extend on this, but left out of this PR to keep it GUI-only. This means that on clients the "server" part is hidden for now.

There has been some feature creep on this PR, as people wanted more and more and more. Some things really should have been additional PRs, but GitHub doesn't really allow that workflow .. so here it is, in 6 commits. Please see the 6 commits are their own PRs, and you should be fine :) I can split any off if you so like!

Limitations

None that I know of; it should contain the exact same functionality as the old one + a bit more.

Future work

These things are all currently out of scope of this PR, but of course, I can be convinced otherwise.

Codewise:

  • Allow capturing lambdas for confirmation dialogs. Now it requires a global variable and function to work, which is horrible for code locality.

Feature-wise:

  • More fields in "player", like "company password", ...
  • More fields in "server", like "server password", ...
  • More company admin functions like: remove everyone company, change name, change colour, ...
  • More player admin functions like: change name, ...
  • Blocking messages of others
  • Merging of companies

Checklist for review

Some things are not automated, and forgotten often. This list is a reminder for the reviewers.

  • The bug fix is important enough to be backported? (label: 'backport requested')
  • This PR affects the save game format? (label 'savegame upgrade')
  • This PR affects the GS/AI API? (label 'needs review: Script API')
    • ai_changelog.hpp, gs_changelog.hpp need updating.
    • The compatibility wrappers (compat_*.nut) need updating.
  • This PR affects the NewGRF API? (label 'needs review: NewGRF')
@James103
Copy link
Contributor

@James103 James103 commented Apr 19, 2021

  • Hope @PeterN finishes his alignment PR (#9066) so I can make the server name and client name pretty

The exact PR should be #9063 instead of #9066.

@LC-Zorg
Copy link

@LC-Zorg LC-Zorg commented Apr 19, 2021

TrueBrain: I distinctly remember me saying: this GUI is so ugly and unfinished, sure someone will fix that up soon, as I really hate building GUIs.

It may not be beautiful, but it is functional and above all small. :)

What will happen then with the small clients list window? It is still needed, just small. Many players use it permanently, thanks to which they can see who is currently in the game. Among other things, if you wanted to write to someone, you did not have to open the window and check the presence every time. If you change this window in this way, you will remove one of the most useful features in online gaming from OTTD.

If it were to be an additional window, or something like a large resizable finance window, the player markings would be inconsistent. Then something like this would be better...
115257793-b90bea00-a130-11eb-8dec-42d708837b5f +++

Here, too, the method of changing the nickname is inconsistent. The one from the servers window is much better. Mainly because it is more noticeable. In the event of a server name change, it will only be available to the administrator and is something that usually does not change during the game, so there is no problem. It is better to place a possible resizing icon on the left side - the window always enlarges to the right so it will remain in the same place when pressed.

Yet another point is that it would be nice if the client list window would always appear when you entered the server and be pinned (in left top corner?) by default. Why? So that new players do not tire over and over with questions about who is online. ;)

@TrueBrain TrueBrain changed the title [WIP] Feature: rework in-game Network GUI Feature: rework in-game Network GUI Apr 20, 2021
@TrueBrain TrueBrain marked this pull request as ready for review Apr 20, 2021
@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 20, 2021

This is now ready for review.

I did add custom code to right-align the text, as not to be blocked by #9063 . But once that hits, this one should also profit from that.

Additionally, I would like to move "new company" into this window, but I do not know how yet. Future-work, for another PR :)

Copy link
Contributor

@rubidium42 rubidium42 left a comment

Issues I have seen multiple times I generally only mentioned once for now.

I do see some validity in the old style window as a means to see who is currently on the server in relatively little space, though this window seems to be a lot more user friendly for the common case. I wonder if there is some, already existing, functionality that allows you to toggle between a small and large variant of a window, as if that were to exist this might be a nice place to use it.

src/lang/english.txt Outdated Show resolved Hide resolved
src/lang/english.txt Outdated Show resolved Hide resolved
src/lang/english.txt Outdated Show resolved Hide resolved
src/network/network_gui.cpp Show resolved Hide resolved
src/network/network_gui.cpp Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 21, 2021

I do see some validity in the old style window as a means to see who is currently on the server in relatively little space, though this window seems to be a lot more user friendly for the common case. I wonder if there is some, already existing, functionality that allows you to toggle between a small and large variant of a window, as if that were to exist this might be a nice place to use it.

The only "added space" is some vertical about changing your player name. And hopefully soon about which server you are connected too. I think at this point there is no need to make a toggle for that. Lets first see what 90% of the people think about this, I would reason. Not a big fan of solving issues we don't even know is an issue :D (things are easily judge from a screenshot, but it is just that, a screenshot).

The horizontal space is nearly identical (in minimal size); as non-admin there is even some more room horizontally per client. So we are good there.

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 21, 2021

Also renamed "advertised" to "visibility" in the "Start Server" GUI, to make it sync up a bit more with this window. Also, future extensions will need that anyway :)

@LC-Zorg
Copy link

@LC-Zorg LC-Zorg commented Apr 21, 2021

TrueBrain: Lets first see what 90% of the people think about this, I would reason. Not a big fan of solving issues we don't even know is an issue :D (things are easily judge from a screenshot, but it is just that, a screenshot).

You scare me sometimes. :) Do you seriously want to do human experiments? Such a window will really be a "big" problem.
Perhaps you only consider servers with a few players at the most. I mean those with a dozen or more of them.
New size of client list window

Screenshot from reddit server. There are usually around 20 players there. Sometimes over 30. Exactly 30 here.
This shadow is the size of the new window. And we're talking about the GUI x1 and the standard font. If I had used yours (bar height 19 instead of 14) you would have to scroll the list every time to see all the players. You would never know who just entered the server and who left it - you would always have to scroll through this list to find out. If the player used the GUI x2, he would only see half of the players. I will write more in the evening.

rubidium42: I wonder if there is some, already existing, functionality that allows you to toggle between a small and large variant of a window, as if that were to exist this might be a nice place to use it.

Of course it is and is used in the finance window. :)

@rubidium42
Copy link
Contributor

@rubidium42 rubidium42 commented Apr 21, 2021

I've messed with a bit and noticed some peculiarities.

Player #1 joined, but the list is not updated.
player#1 joined not updated

Should it be possible to join Player #1?
player#1 joining a player

There are no buttons for this user? I joined with two clients, then quit one, kicked the other and joined again.
2 joined, 2 quit, 1 joins again

Upon rename the list is not updated, possibly the root cause same as the first one.
player#1 rename not updating

If the local player has no name I have no clue where I am. Clear network.client_name in the configuration.
local player with no name

The save game with 15 companies to make reproducing possibly easier.
15comps.zip

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 21, 2021

Seems most bugs you mention are because when you join as a spectator, the list is not updating. And after that, the companies/clients are not in sync with the buttons, and just strange things start to happen.

I wonder if I can guard that any way .. not sure yet. But first, need to find where the update is not happening :D

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 21, 2021

Okay, fixed the following:

  • when you are the server, players joining are updating the window correctly (should fix the first few).
  • when you don't have a client-name, force one when initalizing network (fixes that clients weren't showing up).

Would you mind retesting pretty please? :D

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 21, 2021

You scare me sometimes. :) Do you seriously want to do human experiments? Such a window will really be a "big" problem.
Perhaps you only consider servers with a few players at the most. I mean those with a dozen or more of them.

@LC-Zorg: I am really not sure what you try to accomplish here, but this constant acting in bad faith on your part is getting old. You seem to be out to giving people stabs where ever you can. This is not the first time I am telling you this. I strongly suggest you adjust your tone, and try to be constructive in conversation. For example, try to ask a questions in stead of judging partial information you collected yourself .. that goes a long way. But most of all, stop with the backstabbing: it is childish.

src/network/network.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
@TrueBrain TrueBrain force-pushed the network-gui branch 3 times, most recently from e5ff6d6 to b19e43d Apr 22, 2021
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
@LC-Zorg

This comment was marked as disruptive content.

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 22, 2021

@LC-Zorg : yeah, I am going to say this for the last time. If you insist on replying in bad faith, you are no longer welcome here. And to be clear, I am not talking about what you say, but how you say it. You constantly give stabs, insult people, and in general just reply in bad faith. That is not wanted and acceptable here. So last time: change your tone.
In other words: if you cannot have a constructive conversation in a positive manner, you are wasting our time. So one more try: retry your last post, in a constructive positive way, and see how that goes. Without the backstabbing. Without the insults. Maybe we can have a conversation then.

@frosch123
Copy link
Member

@frosch123 frosch123 commented Apr 22, 2021

Icon for chat button:
chaticon

Height is 10px to fit the default sprite font. Width I picked arbitrarily.

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 22, 2021

image

With a little bit of help of my friends, finally figured out how to add sprites :D I think that looks a lot better than text. At least a whole less "in your face".

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 24, 2021

Would just a simple numbering of companies on the list be okay (numbers correspond to the slot each company occupies), or do you prefer the clean look without any numbers?
Example:

1. Hopsi Transport
2. Unnamed
3. Cardville Transport
5. ...
8. ...
9. ...
   Spectators

The question I got asked, why a player should care what number the company has. And I didn't have a good answer :D I do not really mind one way or the other, but maybe you have an answer to this question: does it matter to know what numeric value your company has? (honest questions, to be very clear :D)

src/lang/english.txt Outdated Show resolved Hide resolved
src/network/network.cpp Outdated Show resolved Hide resolved
src/toolbar_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
@TrueBrain TrueBrain force-pushed the network-gui branch 2 times, most recently from c1a26ec to 6d4a43a Apr 24, 2021
src/lang/english.txt Show resolved Hide resolved
src/network/network.cpp Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Show resolved Hide resolved
src/network/network_gui.cpp Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
src/network/network_gui.cpp Outdated Show resolved Hide resolved
@TrueBrain TrueBrain force-pushed the network-gui branch 2 times, most recently from 3c747a3 to 0b1f3f6 Apr 24, 2021
TrueBrain added 6 commits Apr 24, 2021
The GUI now more clearly shows some basic information about the
server you joined, your client name (and the ability to change it),
and what players are in which company.

It also contains useful buttons to press to join companies, chat
with other people, and for admins to kick/ban people.

Additionally, renamed "advertised" to "visibility"; this has to
do with future additions, but also because it is more clear in
wording.
You can now easily do:
- a password reset (unlock)
- remove an empty company (reset company)
Especially if there are many players online, trying to chat with
the right one can be a visual challenge. This can be solved by
highlighting the row you are on. This visual cue is often enough
for humans to find the right row.
Copy link
Member

@LordAro LordAro left a comment

#shipit

@TrueBrain TrueBrain merged commit fda1a59 into OpenTTD:master Apr 24, 2021
12 checks passed
@TrueBrain TrueBrain deleted the network-gui branch Apr 24, 2021
@Razmirus
Copy link

@Razmirus Razmirus commented Apr 25, 2021

Hello, I just want to add a few suggestions for further discussion, if I may. There are a few things, which could this improve further.

  • option (maybe only in config file or advanced settings) not to allow player with default name to join any company
  • integrate to this new multiplayer dialog sending money between companies, which is now quite hidden in my opinion
  • also there could be a new feature to merge companies. Now companies can merge only when one goes bankrupt, other one can buy it. It would be nice to have possibility to make such an offer for buying out the company in player controled manner, for players to be able to join their companies and play coop. (or for server admin to be able to merge companies as he needs).

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 25, 2021

Hello, I just want to add a few suggestions for further discussion, if I may. There are a few things, which could this improve further.

Of course you may! :D

  • option (maybe only in config file or advanced settings) not to allow player with default name to join any company

Already taken care of! "Player" should be a thing of the past :D

  • integrate to this new multiplayer dialog sending money between companies, which is now quite hidden in my opinion

One could argue to completely remove it, but yeah, it should be part of this window. Good call!

  • also there could be a new feature to merge companies. Now companies can merge only when one goes bankrupt, other one can buy it. It would be nice to have possibility to make such an offer for buying out the company in player controled manner, for players to be able to join their companies and play coop. (or for server admin to be able to merge companies as he needs).

I like the idea. Well, honestly, the list of ideas this GUI opened up is pretty long already.. but for sure I am going to put this one on there too :D

Tnx!

@LC-Zorg
Copy link

@LC-Zorg LC-Zorg commented Apr 26, 2021

Hope it's not too late. :) I didn't have much time to write back. I also had some ideas, but for this I had to do few graphics...

Merging companies?
Oh yes. :) I added something like this in the first graphic as a selection from the list. This is one of the things that is sorely lacking. The players' questions about how to merge the two companies came up quite often. Way? I think that only the owner of the company should have such an option and he, being in the company, instead of joining another company, would have the option of merging the companies. Icon? The first thing I thought about was a handshake. I also drew one and put it on the graphics, but I have to admit that it looks... rather weak. Probably more like a train coupler :D ...but that could also be a good symbol.

Transferring money?
I don't think it may be appropriate. First of all, because each subsequent icon will additionally increase the width of the window or cover the name of the company. It would be good to consider what other functions would added be here. Besides, this option is still available in the company window. Nevertheless, I added icons (regular $ font) to the graphics to see what it might look like.

How do I use the client list?
Opening this window is always the first thing I do after entering the server. Just to see who is. I always have this list pinned and visible. Thanks to this, when I want to write something, or when I want to ask someone for something, I don't have to check if that person is still there. Because usually when I play I'm not constantly in the game and do other things as well, when I come back I don't have to open and check the lists again, because I just have to look at it. The window takes up a very small part, so it doesn't interfere with its presence at all. This is much more convenient than opening this list each time. Looking at how other more advanced players write, where it doesn't actually happen to write to someone who is not there, I think that many people use this window in a similar way. It is just convenient. For a new window that will be much larger and additionally have cool but bright and eye-catching buttons, I will probably have to forgo this feature, even though it is useful to me.

Player marking
First impression: this crown is terribly pretentious. :) I also thought about something like that for the admin icon. I think it is even an intuitive association. But think about it, would you like to play on a server like this when someone else has the crown? :) Don't get me wrong, I have a pretty sarcastic sense of humor and I would probably draw something like that myself, but these host and player icons look like "lord" and "subject". There is one more point. The first thing I associated with this player icon (before I saw the crown) is that it is a human player and the rest are bots or afk players. Perhaps I will be isolated in this opinion, but this is how I see it. The associations will most likely change over time, but that is my first impression.
Previously, I suggested different font colors depending on who the player is. You wrote that it would require some explanation. Well, you added some explanations :) but even without them, at least for me, a different color is the most intuitive. In the case of a player, white would be the only color on the list, in addition, this item would be distinguished by other icons or their absence, so I think that even a new player could easily spot himself especially if he had already set his nickname. Then the host or admin could be yellow, orange or red, and bots - yes, they are also sometimes used in online games - could be blue or dark gray. I figured such a list could then be used even for offline games. What use of it? For example, it could be easier to reset or remove the nuisance bot, which is now "difficult" to do for most players. Exactly... How about resetting and removing a bot from online games? It's rather a different PR, but it's worth taking that into account.

Minimalist version
Well, if no one has reported such a need, I am not surprised by your approach. It is hard for it to make sense to create and maintain solutions for an unknown group of players, although from my perspective I am surprised that no one saw such a need. Maybe except for rubidium42.

Anyway, I made new graphics, where a large Multilpayer window and a small Client list window I think would make a harmonious whole. :) Hope you like it.
Multiplayer window v1 4

Description:
1. The server bar
It would always be visible, there would be icons on it:

  • Chat with everyone - it is currently missing and the new player may have a problem with that. After hovering over this icon, information about the keyboard shortcut could appear.
  • Server rules - it would be nice if the server administrator could post these, otherwise the general rules from the wiki could be used.
  • Information about the server - also useful because the settings are very different and are of great importance for the game.
  • Server settings - just like the rules and information icons, this would also open an additional window with a whole list of possible settings - admin/host can also be a player, and the visibility of all settings during the game is not needed and takes up space.
    2. The player's bar
    The player, like his company, would always be marked with a distinctive color (possibly preferably white). The icons that would directly affect the player would have a different color (light gray). All available functions, such as changing the nickname, changing the password, would be available in the form of icons on its bar. Perhaps each of these icons should open the same settings window with a different setting selected for change. All these icons could also be reduced to one key icon. I think it would be legible enough for the player.
    3. Inviting another player to the company
    Currently, I don't see such a possibility. It could be the "join the company" icon, only that it is bright, that is about the player. The invitation could only be addresed to the spectator and should be confirmed to avoid mishaps and the unpleasant need to remove someone from the company. The invitation should, of course, also require the consent of the person invited.
    4. New company
    I think, anyway that the bottom bar would be the most appropriate for this feature. It would be always in the same and expected location, which is convenient. There is no problem mixing different font colors in the list, and ultimately it's a layout that would work well for a smaller window.

Ad.1. Regarding server rules and information, I did something like this for Map of Poland server via script. Not everyone wants to add a script, much less not everyone can write the right one, so I think something like that would be really useful.
Server Info   rules
(This window opens when you enter the game. Unfortunately, author of scenario added an old, test version of the script... so you can't curently see this in game)

Small window
I think it could keep a different name for the big Multiplayer window. In my opinion, due to the main purpose of using such a window, it wouldn't have to add all the functions of a large one.
Well, perhaps it is actually better to hold off on making this additional version. I would only ask You to consider the possibility of creating one. However, I think that players will come forward with such requests or reports.
Ordinary and transparent versions on the graphic. A click on the inscription / bar would have the same effect as today. Perhaps only without the unnecessary possibility of writing to yourself. Just an improved version of the current window.
Multiplayer   Client list windows v1 0

Mandatory setting of the nickname and password of the company before entering the game
You wrote something about how it will not be possible to use the default "Player" nicknames. I don't know exactly how, but I was also thinking about a solution. Perhaps it is very similar - I don't know. :)
In any case, in my approach, a player without a selected company nickname and password would not be able to enter the game. A message would appear asking you to fix them, and a window would open in which to do so. The button to open this window would be in the place where you can only change the nickname at the moment.
This window could also open when a player wants to change their nickname or password during the game.
Server list - client settings window v1 2

Additional Features
I don't know if you've considered adding such features yet. I know this post is already terrible long, but maybe it will be useful. :)

Private conversation
Currently, if you want to talk to someone privately, you have to select them from the list every time. I have a proposal that this choice can be blocked and then after pressing Ctrl + icon, messages are directed only to the selected person or company. The graphic would show the pressed icon. Several players or companies could be selected in this way. To subtract someone, you would have to press the icon again while holding down Ctrl. In the case of a small window, private messages could be marked in red (prv).

Blocking the message
Similar function to the above. Sometimes there are intrusive gamers who write things you don't want to read, or write only in their own language. For example, recently I came across someone who wrote to others about the crimes of Bill Gates - you know perfectly well which ;), at the same time demanding an explanation of what Steam is. He believed that it was evil, which caused many nasty foreigners to appear on the server... There is no point in talking to someone like that, but what he writes cannot be turned off now, so I would suggest that using Ctrl + Alt + icon would block the display of messages of this or those players. It would be impossible to block private messages and the admin. The icon for a blocked message would be red and in the case of a small list, the name would be faded out.

Registered nicknames
Quite a few times I've seen game situations on the servers, someone pretending to be someone else, usually a well-known player, and doing things that hurt the right person who always uses that nickname. There were also situations when someone impersonated an admin. Personally, I'm not a supporter of the obligatory, permanent nickname, but I think that for many it would be a welcome feature. Registering is something which, in a way, also obliges you to comply with the rules of the game. Registration could be via github, tt-forums or maybe other site. It could also be the case that existing users would be given the exclusive right to use their nicknames also in the game - they would be given a nickname password that they could change if necessary. The registered player's name would be highlighted in a different color (on my graphics I used yellow).

@TrueBrain
Copy link
Member Author

@TrueBrain TrueBrain commented Apr 26, 2021

Hope it's not too late. :) I didn't have much time to write back. I also had some ideas, but for this I had to do few graphics...

No worries.

Merging companies?

Future work for sure :)

Transferring money?

What always annoyed me most, that you gave a "player" money .. like .. no, you give the company money. That made no sense. But back in 2004 that was the only way possible .. we now know better :)

How do I use the client list?

Tnx for the details! We will track this for a bit too see if others show similar interest! :)

Player marking

Icons I can give tooltips; colours I cannot :D This is mostly why I don't like colouring.
That said, I do agree with you that a crown might be a bit too much, and that the player icon can be confused for "human". I think for now what might be best is to put the player self on top of the list (his company already is, so why not him too), so that icon can be removed. Host icon .. we might need to try some other variation.
Having a similar window for SP is a nice idea. It indeed would allow a bit easier management of AIs etc.
Something to thing about for sure :D

Minimalist version

I mostly like how you did server-name. We will have to see after we added some more fields there to see how it looks, and what we can do to make it better. This for sure isn't its final form yet, but I first need to see the full scope before I can really understand what good looks are :D So let's wrap back on this before release :)

* Server rules - it would be nice if the server administrator could post these, otherwise the general rules from the wiki could be used.

Cool idea; and as I said before, there are many cool ideas to extend from this :) I will put it in the "future work" list. If someone is bored, for sure he can spend a few weeks on these future works alone :D

  **3. Inviting another player to the company**

This gets very close to a friendslist, which is still something I hope we can add .. ugh, more future work :D

Well, perhaps it is actually better to hold off on making this additional version. I would only ask You to consider the possibility of creating one. However, I think that players will come forward with such requests or reports.

Exactly this :) Duly noted :)

Mandatory setting of the nickname and password of the company before entering the game

We went for a simpler approach: we no longer enter a player name by default, and if it is empty, you get an error telling you to fill in your name :)
But that whole GUI is due for a rewrite anyway, so I will take your drafts with me for when we get to that .. not soon :D

Private conversation

What most games do, that your chat always go to your latest selection. This is, I guess, what more people are used to by now. So when you start a private chat with someone, your next chat will also be private to him. Sometimes goes hilariously wrong, but yeah, that is what you get.
There also has been some talk to make chat a window per player. No clue if that works. Some experimenting here is needed for sure.

Blocking the message

Good idea, will add it to the list.

Registered nicknames

I drafted a "Centralized Authority" concept years ago, where players can (optionally) register their name and use this to identify with servers. Can be useful for all kinds of reasons, also to track score over multiple games etc. But .. this is far from done ..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

9 participants