Skip to content

Parsec Soda is a custom open-source game streaming app that integrates with Parsec API and is focused in Host experience.

License

Notifications You must be signed in to change notification settings

FlavioFS/ParsecSoda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


Parsec Soda

The open-source Parsec Arcade hosting tool

๐Ÿ‘ Leave a star and fork this repo if you like this project! ๐Ÿ˜‰


๐Ÿ’ฐ Donate | Doaรงรตes

Brazil

Pix ย  1194a8f0-ac1f-40f3-8f89-524697c072ea ย  (Flรกvio Freitas)

Worldwide

BTC LTC ETH
bc1qmvuljqen7tcs57z6pems5jam7dt0taswp6y5x9 ltc1q349yxyzt09u7kvdz5xvkln0pappxhcwl4g4mt9 0x4B0d629d60e7b910d03f3f15d0Db25146Be05642

๐Ÿ“‹ Summary


๐Ÿ“บ Video Demos

Video 1: - Trailer Video 2: - Fighting-game gameplay
Video 3: - Nucleuscoop integration Video 4: - A very detailed tutorial

๐Ÿ“ฃ Social


๐ŸŽฎ What is Parsec Soda?

Parsec Soda is a custom and open-source Parsec tool dedicated to improve Hosting experience in Parsec Arcade.

I created this tool for my personal use and it has grown too large for me to maintain it by myself, so now I humbly ask this community for help. ๐Ÿ˜‚

Parsec Soda has a plethora of Features to assist the Host.


โŒ What Parsec Soda is not about?

  • Parsec Soda is NOT a replacement for the official Parsec client.
  • Parsec Soda can create Arcade rooms, but not join them. So if you want to join a room instead of hosting, you still need the official Parsec client to do it (including your own room created with Parsec Soda) - and I recommend you use the official client for testing your Parsec Soda room.

๐Ÿ“œ License

Parsec Soda code is under MIT license, BUT all of the code from Parsec SDK has it's own license, the Parsec SDK License.

Therefore, if you build this source code into a software, you MUST abide by their terms, which means you are NOT ALLOWED TO SHARE an executable file that uses the Personal API - currently used by this source, more specifically by ParsecSession class.

You may only build a copy of your own for personal use (and preferably to also help me improve this project, haha).

In order to share executables, you must set USE_PARSEC_PERSONAL_API to FALSE in CompilerDirectives.h:

#define USE_PARSEC_PERSONAL_API FALSE

๐Ÿšฉ Features

  • Plug/unplug, pre-instance gamepads manually.
  • Manual assignment of gamepad ownership to players via drag-and-drop.
  • Lock/unlock player inputs.
  • Read player inputs in background.
  • Desktop sharing in Arcade.
  • Audio control panel with support to Microphone and Speaker channels.
  • Ban/unban players (including the ones who left the room).
  • Edit room name, thumbnail, player slots, privacy, room link in real-time. No need to close and reopen the room.
  • Dedicated chat and log window with support to chatbot commands.
  • Role tiers for chatbot commands. Guests have their own set of commands like "pick a specific gamepad", "drop gamepad" and "play sound effect". And admins can ban/unban guests from chat commands.

๐Ÿ™‹ How to contribute?

  1. Open a new issue reporting what you're going to do (this helps preventing merge conflicts/doubled work).
  2. Fork this repository.
  3. Create a branch for your feature.
  4. Make your local changes.
  5. Submit a pull request.

You can also check my Trello board here.


๐Ÿ‘ท Build Instructions

The building process is not trivial, so I'll guide you through the process and prevent the major caveats.

  1. Download Visual Studio Community 2019.
  2. Install the C++ development packages.
  3. Pay attention to the checkboxes at the right, you don't need all of them and you can save a lot of disk space by unchecking some of them. I can't tell for sure which ones are expressly required, but most of them are unimportant.
  4. You may need to install the C++/CLI build tools support package from the individual components tab.
  5. When applying the installation, I recommend that you pick the option to download all at once, and then install all at once. It seems faster that way.
  6. Clone this repository to some folder of your preference. Visual Studio generally uses the path {user folder}/source/. You can clone it by download and unzipping from GitHub or by using some version control app (I particularly use Fork).
  7. Start Visual Studio 2019 and open the Project Solution.
  8. Now you must choose one of many paths, depending on the goals of your build. Your options are:
  • Debug: intended for developers, creates a larger executable but that allows developers to inspect code flow.
  • Release: intended for final use, creates a lightweight executable stripped from all unnecessary attachments.
  • x64: For 64-bit Windows users.
  • x86: For 32-bit Windows users.

Below, I list all possible executable directories:

Build Goal Folder
x64 Debug /x64/Debug
x64 Release /x64/Release
x32 Debug /Debug
x32 Release /Release
  1. Choose your build options and hit "Build >> Build Solution" (or Ctrl + Shift + B), the folder of your choice will be created and the build MAY FAIL at first, but the directory will be created. Even if the build does not fail, when you try to run ParsecSoda.exe it will crash. And that is because you need to copy some dependencies to the executable folder.

Please note the first build may take a minute to complete.

  1. Below I list all of the dependencies you need to copy to the build folder to get the app working properly. Copy all of them to the root of your build folder:
Dependency File Source What is it for?
Parsec SDK dll parsec.dll or parsec32.dll /Dependencies/parsecsdk/windows/ Prevents application from crashing, since everything related to Parsec SDK is built upon that dll. Copy parsec.dll if your system is x64. For 32 bits, copy parsec32.dll.
SDL2 SDL2.dll /Dependencies/sdl/lib/x64 or /Dependencies/sdl/lib/x86 Prevents the application from crashing, since the usage of SDL2 in the Master of Puppets requires that dll. Copy SDL2.dll from the /x64 subfolder if your system is x64. For 32 bits, copy it from the /x86 subfolder.
icons The icons folder /ParsecSoda/icons Without this, ParsecSoda displays no icons, every button and image becomes blank.
fonts The fonts folder /ParsecSoda/fonts Without this, all fonts and font sizes will be wrong, degrading user experience.
sfx The sound effects folder /ParsecSoda/sfx These are standard sound effects. Without this, the app may crash when a sfx is played (e.g.: when blocking or kicking an user).
  1. This is how your final build folder should look like:

  2. Now, build the project one more time just to be sure (Ctrl + Shift + B) and your executable should be good to go. Enjoy ParsecSoda.