73
NixOS for gamedev (linux.community)
submitted 9 months ago by mat@linux.community to c/linux@lemmy.ml

Hiya! I'm following a gamedev degree in university. It's been a major challenge doing it from Linux, as everything is Windows stuff (.sln Visual Studio projects, DirectX API, excel graphs...). However I've gotten by by making my own tools and dipping into WINE when it gets too difficult. I'm replacing my laptop due to hardware faults (never buying from ASUS again) and my Framework 16 preorder should arrive in a month or two.

I'm considering trying out NixOS. I currently have Arch on the laptop because it makes it easy to get recent versions of libraries and compilers. However, I've had lots of issues due to inconsistent setup (SDDM theme randomly disappears, KDE apps have black text on dark background, video encoding does not work) and I figured having a declarative config might allow me to set things up better and more consistently. I do have a few worries though, given this is new to me:

  1. Installing proprietary software. For certain courses I unfortunately have to use software like Unreal Engine, Maya, Houdini, Unity, P4V, and a few others. I read NixOS has difficulty with running random binaries. I also could not find an UE5 package in nixpkgs, which Arch does have.
  2. Building binaries. I know nixos does some weird stuff with libraries and binaries. I need to be able to do normal stuff with binaries, and perhaps package and distribute them. It'd be really nice to be able to try out different compilers for my CMake/C++ projects also. Can NixOS do that easily?
  3. VMs. I will be doing dGPU passthrough for testing assignments before handin. I assume this is no problem but it requires some weird stuff so I want to be sure before diving in!

Am I better off just setting up a brittle Arch install again, or is NixOS worth the plunge?

you are viewing a single comment's thread
view the rest of the comments
[-] OneRedFox@beehaw.org 4 points 9 months ago

Installing proprietary software. For certain courses I unfortunately have to use software like Unreal Engine, Maya, Houdini, Unity, P4V, and a few others. I read NixOS has difficulty with running random binaries. I also could not find an UE5 package in nixpkgs, which Arch does have.

So NixOS is different from other distros in that it throws out the FHS so that it can do things like install multiple versions of the same library without issues; this breaks binaries, however, and they have to be patched to work with NixOS. So you basically have to package things for Nix for them to work. Certain programs like Steam and VSCode even have a wrapper as part of their setup that recreates the FHS to make them work as expected, so doing this is possible, but as a beginner I doubt you want to fuck with that.

Building binaries. I know nixos does some weird stuff with libraries and binaries. I need to be able to do normal stuff with binaries, and perhaps package and distribute them. It’d be really nice to be able to try out different compilers for my CMake/C++ projects also. Can NixOS do that easily?

It's actually nice as a dev environment. You do have to write flakes for your projects, but that's not a big deal and the reproducibility is nice.

VMs. I will be doing dGPU passthrough for testing assignments before handin. I assume this is no problem but it requires some weird stuff so I want to be sure before diving in!

I've used VMs without issue, so should be fine.


Since Nix is a distro-agnostic package manager, in your case I would probably use a normal distro like Ubuntu/Arch/Fedora and just use Nix with that if you want to go that route. It'll go smoother than diving into the deep end right away.

[-] YodaDaCoda@aussie.zone 3 points 9 months ago

Hey mate what's FHS in this context?

[-] OneRedFox@beehaw.org 3 points 9 months ago

Filesystem Hierarchy Standard. It's the spec for how the file directories should be set up on UNIX-like systems, like how typically user binaries would go in /usr/bin and libraries for those binaries would go in /usr/lib.

this post was submitted on 10 Mar 2024
73 points (96.2% liked)

Linux

48631 readers
1314 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS