SoonYang / GGPOPLUSR

Caster for Guilty Gear XX: Accent Core +R

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GGAC+R GGPO-BASED CASTER

A netplay implementation and quality-of-life tool bundle for the Steam release of Guilty Gear XX Accent Core +R.

Table of contents

Building

GGPOPLUSR uses CMake as a build engine. This is completely irrelevant to players, but developers will need an installation of CMake, or IDE support for CMake, like Visual Studio.

Many development tools also rely on Python 3. While it's not strictly necessary, developers may find it useful to have Python installed and available from their system path, particularly for prototyping new tools.

If you want to build the installer, you need to install NSIS and add makensis.exe to your PATH user environment variable.

To build and run GGPOPLUSR:

  1. Clone the following dependencies, which are built from source:
    • GGPO
    • Microsoft's Detours. Detours is used to install custom netplay hooks at runtime.
    • ValveFileVDF. ValveFileVDF is used to parse Steam's configuration files, to automatically detect your installation of Guilty Gear.
    • Dear Imgui. Dear Imgui is used to provide custom overlays for new features and debugging.
  2. Build GGPO and Detours using x86-compatible build tools.
    • GGXXAC+R is natively compiled for 32-bit x86, and using an entire 32-bit toolchain prevents us from needing to handle cross compilation.
    • GGPO and Detours are large enough that they benefit from precompilation- you won't need to precompile ValveFileVDF and Dear Imgui.
  3. Use Visual Studio (or your preferred CMake generator) to generate a new CMake cache. Remember to update your CMake directories:
    • The DETOURS_DIR Cmake variable should point at your Detours build output
    • The VALVEFILEVDF_DIR CMake variable should point at your ValveFileVDF checkout.
    • The DEARIMGUI_DIR CMake variable should point at your Dear Imgui checkout.
    • The GGPO_DIR CMake variable should point at your GGPO checkout.
  4. Build the launcher using the makefile or project generated by CMake.
  5. Confirm that Launcher.exe and Sidecar.dll are in the build output.
  6. Run Launcher.exe.
    • You may need to copy the ggpo.dll in GGPO_DIR\build\bin\x86\Debug to the Guilty Gear install folder to launch the program.

(Optional) To build the installer program:

  1. Install NSIS.
  2. Add makensis.exe to your PATH user environment variable.
  3. At CMake configure step, point the vcredist_86_exe variable to the Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019 installer program for x86 (vcredist.x86.exe). If you cannot locate it in your Visual Studio installation folder, you can get it from Microsoft.
  4. Open the solution in Visual Studio and build the PACKAGE project to generate the installer.

Why GGPO? Why +R? Why now?

While lockstep netcode was considered industry standard for many years (including triple-A titles like Street Fighter IV), its failures have been severe and widespread (Ultimate Marvel vs. Capcom 3 and King of Fighters XIII).

In the last decade, many prominent fighting-game developers have documented the negative player effects that lockstep netcode and its necessary input latency create. Instead, developers and community members alike have espoused the virtues of rollback-based netcode, including Mike "MikeZ" Zaimont of Lab Zero and Skullgirls, Michael Stallone of Netherrealm and Mortal Kombat, and Adam "Keits" Heart of Iron Galaxy and Killer Instinct.

GGXXAC+R uses an engine that was built on lockstep netcode, before rollback-based netcode became more common in fighting games.

While in some cases +R's netcode can hold up relatively well, playing with community members from across a country (or across an ocean!) is a poor experience. Fortunately, thanks to GGPO's open-source release in October 2019, adapting a game to rollback-based netcode no longer requires modifying the game and writing an entire netcode implementation. This opens up the possibility for fighting games new and old to be brought up to a new gold standard- including this project.

Contributing

Contributions of all kinds are welcome! While we're certainly seeking help with C++ development, x86 assembly, Win32 APIs, reverse engineering, and networking code, we need many non-technical skills as well! You, the reader, can help us directly by:

  • Reading CONTRIBUTING.md and submitting new pull requests
  • Updating and organizing the wiki
  • Testing early-access releases and reporting issues on the issue tracker
  • Contribute to reverse engineering, identify bugs, or just chat on our Discord
  • Spreading the word and recruiting new players and contributors!

Authors

Authors

  • @Labreezy - founder
  • @WesselKuipers
  • @adanducci
  • @Ninetime

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

External Licenses and Copyright Information

Guilty Gear, Guilty Gear XX, and all related software Copyright © Arc System Works.

Steam Copyright © Valve Corporation.

Detours Copyright © Microsoft Corporation.

GGPO (Good Game Peace Out) Copyright © GroundStorm Studios, LLC.

ValveFileVDF Copyright © Matthias Möller.

CMake - Cross Platform Makefile Generator Copyright © Kitware, Inc. and Contributors.

Dear Imgui Copyright © Omar Cornut

About

Caster for Guilty Gear XX: Accent Core +R

License:MIT License


Languages

Language:C++ 58.3%Language:C 23.4%Language:Python 11.8%Language:CMake 6.5%