Coder Social home page Coder Social logo

jackboxutility / jackboxutility Goto Github PK

View Code? Open in Web Editor NEW
53.0 1.0 13.0 212.1 MB

An app to download patches and launch Jackbox games

Home Page: https://jackboxutility.com/

License: GNU General Public License v3.0

Dart 90.14% CMake 3.57% C++ 5.03% C 0.26% HTML 0.34% Swift 0.48% JavaScript 0.17%
jackbox jackbox-party-pack patcher translation jackbox-tv jackboxgames launcher utility utility-application flutter

jackboxutility's Introduction

All Contributors

Discord GitHub release App downloads Updater downloads Weblate translation

With this app, you will be able to download translation patches for your Jackbox games. You also have the ability to launch your Jackbox games, where all your Jackbox games are listed.

Features

  • Includes English, French, German, Spanish, Ukrainian, Catalan, Belarusian, Russian and Turkish servers
  • Detect automatically your installed games
  • Download translation patches for your games
  • Launch the games directly, skipping the intros and menus entirely
  • Search the games using different tags
  • Set ratings to your favorite games, from 1-5 stars
  • Filter the games in many ways, like by number of players, family friendly, moderation and many more!
  • All the game tabs are packed with all the info you need
  • Sort the game list in many ways
  • Hide games you don't want to see in the launcher
  • Don't know what to play? Hit the Random tab!
  • And many more!

Installation

⚠ If you want your app to always be the latest version, you should download the auto-updater from here.

After downloading the auto-updater or any release of the application, all you need to do is unzip the downloaded .zip file and run the JackboxUtility (or jackbox_patcher).

Tutorial

https://github.com/AlexisL61/JackboxUtility/wiki/Installation

Privacy

The app is collecting anonymous data to improve the app. This can be disable in the settings. You can find what data we are collecting and how they are used in the Privacy informations page.

Translations

We are using Weblate to translate the app. You can help us translate it by going on this link: https://hosted.weblate.org/projects/jackboxutility/jackboxutility_app/

Contribution

Clone the repo:

git clone https://github.com/AlexisL61/JackboxUtility.git

Launch the app:

flutter run --flavor beta -t ./lib/main_beta.dart

Build the app:

flutter build -t ./lib/main_beta.dart <OS>

Contributors

Alexis
Alexis

💻 🌍
Oleksandr
Oleksandr

🌍 🐛 🤔
Akira896
Akira896

🤔 🐛 🌍
Eric
Eric

🤔 🐛 🌍
Vladyslav Kulybaba
Vladyslav Kulybaba

🌍
Maxi
Maxi

🌍
BurAndBY
BurAndBY

🌍
puskanyaww
puskanyaww

🌍
YouTube 101
YouTube 101

🌍

jackboxutility's People

Contributors

alexisl61 avatar allcontributors[bot] avatar blacksheep273 avatar burandby avatar comradekingu avatar dererizzle avatar dragonfest7 avatar forseti6676 avatar founntain avatar medustyy avatar pauguri avatar seferino-dcl avatar vladgraund avatar weblate avatar youtube-101 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

jackboxutility's Issues

Description jeux

Ajout des descriptions pour chaque jeux :

  • Party pack 9
  • Party pack 8
  • Party pack 7
  • Party pack 6
  • Party pack 5
  • Party pack 4
  • Party pack 3
  • Party pack 2
  • Party pack 1
  • Party starter

Read version number from the GitHub repositories of the games

The patcher should be able to read each and every "jbgconfig.jet" file from each Pack/game repository in order to retrieve the game version. In addition to this, the patcher should only display the version number, leaving out the "Build: " from the games that have it.

Automatic game detection

Description

The app should be able to detect installed games on startup and by clicking on a button.

On Windows, we can find installed games in registry.

  • Steam :
    The registry location Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Valve\Steam show the installed path.
    We can open the <Path>/steamapps/libraryfolders.vdf file to get the installed games in a json format (with appId etc).

  • Epic Games :
    The registry location Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Epic Games\EpicGamesLauncher show the AppData path.
    We can open the <Path>/../../UnrealEngineLauncher\LauncherInstalled.dat to get the installed games and the path.

Links

More info :

TODO

  • Development
    • Read the registry file
    • Update the path with the registry
    • Run the automatic path update on first startup
    • Run the automatic path update without confirmation

Manage languages

Description

As the project goes international, a user should be able to select a language to download patches only for the selected language.
Every language should have their own infrastructure to distribute patches (their own packs.json, welcome.json and assets).
As a language will not be implemented regularly, every link to a language server will be written in the app directly (not in a main server).
Since the app is open source, a user should also add a custom server (e.g. for testing, or just to create is own patch server)

Links

TODO

  • Preparation
    • Create a app_en.arb (and a app_fr.arb) containing every string used by the app
    • Translate app_en.arb to a language and generate the app_.arb
    • Add the .arb file to the app
  • Development
    • Choose a language page
      • Visible in parameters
      • Visible when the app is launched the first time
      • Add the custom server page

Fix imperfection in the internationalization build

TODO

  • Server duplication when choosing a server
  • Hide title when they are not used
  • Multiline for pack description
  • Remove description of a pack in the packs.json file
  • Add variables NATIVELY_TRANSLATED and COMMUNITY_TRANSLATED
  • Change the main image and text by the server main image and text (and do it in the patch page too)
  • Add indication on the app icon about the download progress
  • Add website info in info.json
  • Credits too long in the patch info
  • Alert when closing the app and the app is downloading

Fast Launcher

Ajout du Fast Launcher pour les jeux Jackbox.

Le fast launcher est disponible sur les packs suivants :

  • Party pack 1
  • Party Pack 2
  • Party Pack 3
  • Party Pack 4
  • Party Pack 5
  • Party Pack 6
  • Party Pack 7
  • Party Pack 8
  • Party Pack 9
  • Party Starter

All patch tab

Description

Add an “All patches” tab to see every patches available and download them easily.

Todo

  • Create the tab
  • Add the packs in it by categories
  • Download everything at once

Better notification layout

The current notification layout is really out of place, and the text from the notifications themselves get cut off.
Since there's space below the buttons, it was suggested to have a Jackbox.TV-styled notification system, in which little banners/icons would be used.
NotificationsMockup

Navigate directories to find Pack routes

At the moment, it is kinda difficult for the average user to put the respective game directory in the patcher. Instead, when setting the routes, the patcher should open a directory locator, allowing you to pick the respective directory of the game. In order for it to be correct, it should detect either the exe or the name of the folder.

Resize game background to fit the card

This is a problem on displays with higher resolutions. It would be great if we could stretch the game background (while keeping the aspect ratio of course), so that it covers the entire card.
image
image

Documenting redirection to the Patch Server

Description

Since everyone can create his own patch server (in another repo), there should be a documentation to create the packs.json and the welcome.json file (redirect to the wiki page of the new repo).

TODO

  • Create the wiki page to redirect to the other repo

Fast launcher

Description

A user should be able to launch a specific game.
The fast launcher actually uses a system where a .swf file is replaced. For steam, it should use the “launchto” parameter.
The use of the parameter brings one problem : Steam wants the user to confirm the game will launch with the parameters.
There seems to be a way to remove the confirmation when calling : <steampath>/steam.exe --appid <id> --launchto ...

TODO

  • Try to use the command manually
  • Integrate the command in the app

Extraction only using a single core?

Not sure if this is true, but if that's the case, we can drastically speed up the extraction process by distributing it across multiple cores evenly.

Settings tweaks

The settings could use some tweaks, although they're minor ones:

  • Gear icon next to the Settings title
  • Icons next to each game
  • Move the change of language server there

The big change would be to add little “Restore” buttons, which would prompt you to restore the game back to its original state (using the verify files option from either Steam or EGS). I don't know if EGS restore can be done with commands tho.
SettingsMockup

TODO

  • Gear icon
  • Game images
  • Redo parameters with server info and app info
  • Should not be able to select the same game
  • Hide the add games button when all games have been added
  • Translate the “Authors” and “Contributors” strings
  • Bugs to fix
    • Not the good game visible when trying to add a game after deleting a game

Bug: Incorrect information on game paths

image
In this screenshot, I manually set PP2 to an incorrect path.

Now, when I click on the "remove" button on the right to delete PP2, it says "path not found" on PP3. When PP3 is deleted, it moves to PP4, and so on
image

Correct version number position

If the patcher is displayed on a maximized window, the version number looks really off. It was suggested for it to appear next to the game title with also a different color.

Low resolution icons/banners for better scaling

The patcher should have two different types of images: low resolution (for the small images) and high resolution (for the big images). At the moment, due to all the images being high resolution, all images appear really pixelated when being small. It was also suggested that the patcher itself can lower the resolution of the images.

Autodetecting games duplicates game list

image
No idea why this happens, but if you manually click on "Auto-detect installed games", every game game gets duplicated. This also applies to the launcher: When you click on "Auto-detect installed games" five times, you'll find every game five times in the launcher. It also "finds" all of the already found games.
image
image

Jackbox RPC

Création d'un système de RPC.

Cela permettra aux jeux compatibles d'envoyer des données à l'application (le nombre de joueurs, le jeu joué etc).

TODO :

  • Création d'un serveur http sur l'application
  • Installation du rpc sur des jeux joués
    • Trivia Murder Party 2
  • Vérification de la communication efficace

Translate remaining strings

These strings should be translated:

  • All patches
  • Show all packs
  • "Install patch" should be "Install patches" in the "All patches" section. Same with "Patches installed".
  • Version
  • Download in progress
  • A download is in progress, are you sure you want to quit now ?

Remove "(1/3)" from download window

After the download of a Pack finishes, the download window freezes until it's extracted. Because of this, the "(1/3)" part of that window is kinda useless. I'd consider getting rid of it.

Do not allow players to use incorrect paths

image

In the screenshot, I've set PP1 to have the PP2 path manually. This shouldn't give the user a checkmark. If the user tries to launch the game, it gives them an error obviously. It also breaks patching.

Solution: Check if the correct exe is located in the folder the user provided.

Add "In [Language]" and "Dubbed by the community" to the "Search by translation" part

Each one has a little color to signify its meaning. These are:

  • In [Language]: Includes all translated games, both officially and not officially.
  • Officially translated: Only includes officially translated games.
  • Community dubbed: Only includes games dubbed by the community.
  • Community translated: Includes both community dubbed games and community text-translated games.
  • In English: Includes games only in English.
    SearchByTranslationMockup

Desaturate banners of unowned games

When you don't own a game, it should be black and white in the launcher section, indicating you can't launch it (because you don't have it)

image
(Mockup of a scenario where the user doesn't own Fibbage 3 [PP4])

Title screen background

Since the background in the title screen is just plain grey, it was suggested to have a collage-styled background, similar to the concept in the image.
It can use characters not only from Quiplash, but also from other Jackbox games.
TitleScreen

Show version numbers in "All patches"

Both version numbers (the one that the user currently haves and the one that's currently available) should appear in the top right corner of each game tab in the "All patches" section. They should have different colors to indicate which is which.
VersionNumber

Bug: Recently installed games on Steam not detected

The file that the Utility uses to detect the games doesn't get updated when you intsall new games. From Erizzle, here's the fix:

The appmanifest_.acf file gets generated/updated instantly when you install a game or change its location. The libraryfolders.vdf file does not get updated automatically. It only updates when you install a game to a new folder (create a new "library")

Separate app code and server code

Description

Since we now use more than one server (one for each language), we must separate the api from the app repo.
This way we can easily get the necessary files to create another patch server.

TODO

  • Create a repo with all the necessary files
  • Delete directory api - assets - web from the repo

Keep window size after closing

Pretty simple but useful tweak. The program should remember the size the window had before closing. So for example, if I had the window maximized before closing, when reopening the app it'd open automatically maximizing the window.

Instant search bar results

Instead of requiring an Enter press to show the results, the search bar from the Launcher should instantly show the results when typing anything.

Download pack

Description

A user should be able to download a pack (and not each game at a time).

As every language doesn't use the “download a pack” function (french for example), we should have these three available interfaces (sketch, not final) :

Image

TODO

  • Development
    • Design
      • Second interface done
      • Third interface done
      • Add a page where you can download every pack at once
    • Download a pack
      • Download a pack patch function
      • Saving the downloaded patch version

UI Suggestions

A UI-Designer from our team carefully looked at the Utility and raised a few minor suggestions to enhance the user experience.

  • When the mouse hovers over a button or clickable object, it should transform into a pointer. This way, the user knows that they can click the object. This is already a thing in the main menu where the user can decide between launching and patching a game, but it should apply everywhere

  • When an info screen is opened (notifications, patch info, path settings), clicking next to it (into the void) does nothing but play the Windows error sound. Instead, it should close the info screen

  • In the patch-section, the "Info" icon for the game and the patch info is identical, but lead to a different destination. Maybe we can change the patch info icon to a hamburger to avoid confusion. Also the blue info hover effect is not perfectly aligned if you look closely.
    image

Quick-Launching into a PP5 game

...the space sound effect keeps playing in a loop forever.

We have already mentioned two ways of solving this:
Option 1: Replacing this SFX with a silent audio clip in the patch
Option 2: Changing the way the quick-launch works, so the user has to press Enter once to launch the game.

I've discussed this problem with our German team and we concluded that the second option seems a lot better. Here's why:

  • If we'd go for the first option, we'd have to replace this SFX in every patch for every language. The big problem here is, that users who don't have a patch installed at all, and just want to use the Launch Feature of the Utility (for example English-speaking users), will still hear this sound in every game
  • Pressing the Enter key once isn't that big of a deal in the first place. For example, Jack's Trunk uses the same method and it's perfectly natural

The same goes for other games where this scenario turns out as an issue.

Search by Pack: Play Button

Since the Standalone games have one game each, would be nice if in the "Search by Pack" tab, there was an option for "Standalone" games in which all of those can be in one nice tab.
Ideally, those games that aren't made by Jackbox Games would be in their own tab as well.
SearchByPackMockup

Restore button

A button should be available to restore a game in the settings page.

We are using steam “validate” to restore a game.

Bug: Pressing ESC while a download is in progress

Pressing ESC while a download is in progress will cause the download screen to not be visible, but the download will still keep going. After this, you can press the "Install patch" button again for the download to start again. The progress bar at the bottom will also go really crazy after doing this.

Either there should be a proper "Cancel" button which functions like one or the user shouldn't be able to close this window by pressing ESC.

Use native unzipper

Since we are experiencing issues with the flutter archive library, we should use the native unzipper functions.

  • For Linux and macOS
    • Use the unzip command
  • For Windows
    • Use the tar command
    • Or use 7zip because it shows progress.

TODO

  • Unzip on windows
  • Unzip on linux / macos

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.