-
-
Notifications
You must be signed in to change notification settings - Fork 446
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
Server Browser Revamp #3933
base: master
Are you sure you want to change the base?
Server Browser Revamp #3933
Conversation
…ue into server-browser
StatusWaiting on Server browser UI design proposal |
We should discuss the server browser design in the dev discord #main-menu-revamp |
wouldn't it be a better option in 2025 to make a new design of MTA menu guis with CEF? Of course not all at once, start with the server browser |
Remake all MTA menus at once is a lot of work, it's best to change the menus 1 by 1 as they are separate. Starting with the server browser, yes, it's better to remake it from scratch, and it is what I am working on right now. As for the technology, I will stick to CEGUI coz it works and we can make modern UI with it if we try hard enough. CEGUI update is coming soon, for better functionality. CEF is not viable due to its buggy nature, being on DX9. Other UI libraries could be viable, but nobody has added one yet. I don't see it happening in the near future. I'm not skilled enough to add one, nor do I see any interest from MTA Maintainers in making that happen. We can stick with the current libraries. |
My problem with CEGUI that you can't really change the font-size and it looks too outdated in 2025. People with bad eyes must use a lower (not native) resolution to play because tiny font-size is too small for them. Not to speak of higher resolution players whose menus are too tiny, there is no scaling at all. About CEGUI update: I've seen that it has been already tried a few times but these PRs got abandoned after a while because of the complexity and much effort it takes to update, or replace (there was a PR to replace CEGUI) |
What exactly do you mean by "remake it from scratch"? What do you want to change?
How do you know that? The author @Lpsd has said he is demotivated and hasn't updated his CEGUI branch in quite some time and since it's been dragging on for years, it doesn't look like anything is going to change. |
We can change CEGUI text size tho.. I can try make something that scales to your resolution. |
The entire server browser UI. Make it modern, more adaptable to your resolution, and add features.
I am not certain it will happen. I just hope CEGUI gets updated, but it's not too important. |
The reason why most servers started and start to abandon CEGUI is the lack of customization and its awful look. You can create much better UIs with webdesign (that's also a reason why modern applications since 2014 are developed as a desktop webapp) I don't want to order you or something, I just say my opinion. After all it is you who develop it and if your personal liking is to stick to CEGUI then we will stick to that. Even if you can somehow change the fontsize and make it scale-able to higher resolutons that wouldn't solve the problem with ingame CEGUI elements. CEGUI update is very unlikely to happen. There are some downside of CEF as well with using a bit more memory than CEGUI. At some point CEF could be replaced with webview if possible
I don't see this as a real problem, you can still create wonderful UIs with it, the CEGUI has way more problem |
How long does the interface take to load on CEF? |
Please be aware that this entire thing requires more than contributor discussion on dev discord. I'd advise against investing your time into it until the team sanctioned a re-design/your other work to modify server browser. Wherever this PR or your concept goes, it's not to be merged by anyone with write access, but a team member. Few core/major presentation elements of the game are entirely team discretion. This includes server list. |
I'll be on the lookout for messages of Team members regarding the design proposal on Discord. I won't move forward with any coding until one of you guys has made clear what is going to be expected and eventually accepted. The code presented in this PR is a foundation that continues the work implemented by #3761. |
Top list and other server ranking / automatic positioning won't disappear. It will be perfectly implementable in the new design which also features a horizontal list where servers can be ordered from top to bottom. |
The design I am talking about: https://discord.com/channels/801330706252038164/801403406845476864/1326988995284045876 |
I hope it will come to fruition because, to be honest, this proposal is brilliant and considering how old MTA is, it would be a good idea to modernize the graphic design a bit. |
maybe a pic on main discord could be shared so everyone could see the concept |
Actually, this is genius @ MTA Staff If you guys have difficulty choosing a final design, you could: 😄 |
I'm blocked in MTA Dev Discord, can you forward it here? |
Lopsi has given some ideas on how to make this with CEGUI, using custom skin assets that will get loaded into the theme automatically, essentially expanding CEGUI!! |
Warning
Work in Progress
Context
Follow up of #3761
In preparation for #2104, #998 and #759
Details
This PR updates the ASE query response of type
r
(used for the ingame server browser) to now include up to 20 server "rules" (e.g. server description, tags, languages, etc) in a new query typeQueryNewBrowser()
.The method
CQueryReceiver::GetServerResponse()
was also changed to parse this new provided data.These key-value pairs are now set in an unordered_map
rules
inSQueryInfo
withinCServerListItem::ParseQuery()
.The client server browser can still parse old query data (without rules), so this doesn't "break backwards compatibility".
I am documenting the server rules that servers should set, to be displayed by the revamped server browser here:
https://wiki.multitheftauto.com/wiki/Server_Browser_Rules
Choices
A: The full query is not lightweight and responds with information that won't be used by the server browser.
A: That seemed unnecessary. If
r
isn't used anywhere other than the IG server browser, it's safe to modify it.A: In
ASE.cpp
I chose to not updateQueryLight()
because this is used inCMasterServerAnnouncer
to post server data to MTA masterlist.User Interface Revamp
Currently waiting on a Server Browser design proposal
Testing
Place these rules in
mtaserver.conf
. They are applied automatically on server boot. The ASE service sends them when queried.Launch your server. Go ingame, open the server browser and find your server. Watch F8 console:
Important
These console messages are temporary, they are just for testing the features.