-
Notifications
You must be signed in to change notification settings - Fork 775
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
Core: Overhauling the Archipelago Launcher #4507
Comments
Is this something you intend to actually work on (do you have a background with Kivy development?), or is this just an idea that you're tossing into the soup? |
I don't have experience in Kivy, but I do have lenghty history of hobbyist game dev and am quick learner. I wanted to gather opinions first, and then try my hand implementing this bit by bit or, if this isn't seen as good approach for the official launcher, make it a standalone app with more familiar frameworks for me (altough options page will be harder/need to pull webworlds regularly from this repo). |
I'll provide what insight I can:
Realistically, the Launcher is the way that it is not due to any lack of ideas for making it better, but rather from a lack of people with the unique combination of time, desire, and ability to do so. |
You might be interested in looking at #3934 as it looks to completely overhaul the launcher and make it more visually appealing. |
Tbh I'd forgotten that Silvris has gotten even that far, lol |
Yeah Silvris is a Kivy wizard |
Thanks for insights, I appreciate it!
Yeah the only way I'd see standalone be working is to include AP as a git submodule, make a way to retrieve relevant info from there and regularly pull upstream changes. It'd be a fiddly process and makes the app way heavier than it should, altough not impossible.
Yes I saw it and actually tried to mimic the dark green look for this. I probably should wait for that to be merged and start learning KivyMD then...
Interesting! I'll try to look into what challenges there are. I hope that the aforementioned KivyMD pr gets merged since that seems to be better suited for creating something like this. |
I'm personally not a fan of this design. In most cases, if I am opening the launcher, I am doing so with a specific purpose in mind. I want to play a game, so I want to get to that game's client as quickly as possible. If I want to generate then host a game, I'm pressing two buttons max. I think the launcher should be simple, and get people to their goal as efficiently as possible. That being said, I think this would hold some merit as a GUI-component for Generate, as that section of the local generation experience could use some refinement (as well as a quick host-game button on resolution). As an aside:
I actually have it made, however it is also waiting on #3934 for both general cleanup and because base Kivy lacks the control needed to effectively handle option groups. |
I appreciate the feedback. Ironically, I feel that this design would be faster to use for me at least. The current launcher's problem is that everything has the same weight (except Ahit and Mc clients, and Discord) and thus scanning the list for correct option takes time and effort. I've been helping my friends to get into AP and you'd be surprised how much time it takes them to find correct options in the launcher and understand how the system works. Ideally the launcher remembers which tab was opened last time and opens it directly, removing that one crucial click in most scenarios. If you are doing the same thing you were doing last time, this launcher requires the user to press just one button. The current launcher, altough can launch another piece of AP via one button, requires an extra step or two in that app to actually start (for example, choose seed to host or connect the client). Users tend to use same functions repeatedly, for example not all users host at all, so their launcher should be on join page most of the time (unless they are editing yaml). For similiar reason the option to favorite games is a must. Out of 20-odd clients I have in the launcher, I use only a few. Also I want to remind that while I feel that this launcher would be usually as fast to use as current version, that wasn't the ultimate goal with my design. My goals are making things less confusing for new users, having a nice looking piece of software and lessen the amount of window hopping one needs to do (especially when generating, hosting and playing). Especially important for me is the new user experience, a lot of people don't bother reading guides. They just download the app and expect it to make sense or guide them through. Of course, AP is quite specialized piece of software and setting up clients most likely need some explanation (at least for emulated games). |
What feature would you like to see?
The launcher is, after the website, the first thing the users see of the software. That's why the launcher is important to be easily readable, hype and help users to get into game.
There's a few problems in the current launcher.
To solve these problems here's a total reimagination of the ui of the launcher, including some new features:
The launcher would be split into 3 main "pages": Setup, Host and Join.
The Setup page is used for creating and organizing yaml files. The list shows yaml files currently in Players folder. The add button gives options to pick from a template, import a yaml file (will be imported into Players folder), select from the user's previous yamls or install an APWorld. Selecting a game allows to edit options in the bottom part of the app much like on the website (but also for APWorlds). Right-clicking a game opens a menu with options to duplicate the settings, open game page on the site or disable the game (moves the yaml into Players/Disabled).
Pressing Generate seed button creates the seed and opens automatically the next page:
The Host page allows for organizing generated seeds in output folder. The listing shows also the games that are in the rando, and tells what patches need to be sent to the players (you could drag'n'drop the files from the listing). There's a button to run the server with the selected seed. The server optionally could be run in the launcher window (by hiding the console window and relaying outputs into the launcher). Additionally, there's a button to open a room in archipelago.gg.
Then there's the last page:
The Join page replaces the client list in the launcher. Clients can be favorited so they get shown in a nice chunky grid (I hope we'll get more icons for games at some point, even if generic ones to avoid licensing problems). There's also an option to open the full list of clients. On this page you can also access the Oot and Lttp adjusters (and any other future utilities for specific games).
I'm not sure if the clients support command line arguments for this, but it would be nice if you could enter connection info before launching the client. It's no deal breaker by any means if this isn't feasible.
Note: all the images here are non-functional mockups.
The text was updated successfully, but these errors were encountered: