Skip to content
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

Added new Game pkg for War Thunder, an MMO tank/plane/warship simulator with a native linux client. #372991

Open
wants to merge 95 commits into
base: nixos-24.11
Choose a base branch
from

Conversation

Mephist0phel3s
Copy link

@Mephist0phel3s Mephist0phel3s commented Jan 11, 2025

This build is UNTESTED on linux with nix but is tested on nixOS, will do testing on nix pkg manager with other distros but it was written with other distros in mind so it SHOULD work.

This build is fully tested and (to the best of my ability as a solo) debugged, this version runs the game nearly twice as fast as the linux or proton/windows version available through steam with no crashing bugs getting 175 average frames relative to the 75 frames at the same setting through the steam port.

Check: https://www.protondb.com/app/236390 if your curious.

The game includes a few binary applications, notably acesx86_64 as the wrapper, and the launcher.
This package NEEDS write access to the users home directory BUT is designed to be installed as a system level package. The wrapper sets users $HOME/.aces64 directory as the execution point so the launcher can download the full game. This preserves the immutability of the nix store while also preserving game data that complies with the games anti-cheat and runtime env variables pre-compiled into the original binary.

It also installs a desktopItem file so the user can start the wrapper from the desktop as a standard application like Lord Gabe intended, or add it the steam library as an executable where steam can launch it natively if the user needs to run a comp like Gamescope as a startup option since gamescope is not included in this derivation due to env variable bugs i didnt want to deal with and ultimately, were unnecessary.

Things done

  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • sandbox = relaxed
    • sandbox = true
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
  • Fits CONTRIBUTING.md.

Add a 👍 reaction to pull requests you find important.

@NixOSInfra NixOSInfra added the 12. first-time contribution This PR is the author's first one; please be gentle! label Jan 11, 2025
@wolfgangwalther
Copy link
Contributor

You seriously need to rebase / squash those commits into one. Nobody wants to read this commit history of 89 commits with swearwords in every 3rd or so.

Please, also go through https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md. This needs to target master, needs proper commit + PR titles etc.

Several CI jobs are failing, giving you feedback on what needs to be improved as well: You need to run nixfmt, put this in /pkgs/by-name/... etc.

I suggest you start reading up on the contributing guide and fix as much as you can.


if [ ! -d "$HOME/.aces64/War-Thunder-086d99e" ]; then

echo "DEBUG::: Directory not found. Fuck."
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stuff like this is not acceptable.

Copy link
Author

@Mephist0phel3s Mephist0phel3s Jan 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I totally forgot to fix these, i used them as markers mostly during silent fails. Ill fix.
"rebase / squash those commits into one"
Im not sure how to do that just yet as im new to contributing but i will figure it out and do that as well, and read the doc for contributing you provided and fix that as well.
Should i close this merge request and make a new one, or how should i approach?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should i close this merge request and make a new one, or how should i approach?

No, you don't need to close it. Rebasing / squashing is what you want to solve that - this allows you to fix everything in here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
6.topic: games 12. first-time contribution This PR is the author's first one; please be gentle!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants