Plug-and-play development environment

https://lemmy.world/post/25658156

Plug-and-play development environment - Lemmy.World

I want to develop a game and am considering collaborating with others, potentially even making it open-source. To make this process smoother, I need to establish an easy-to-replicate development environment—one that can be set up by non-programmers (such as artists) but is also simple for me to configure so I can focus on actual development. I’ve explored various options (Docker, Podman, Anaconda, NixOS, VMs), but the choices are overwhelming, and I’m unsure which one is best for my needs. I’ve had partial success with a Fedora+i3wm virtual environment (VM), creating a plug-and-play experience. However, this setup requires extra space (~3GB for the OS) and includes software already installed on the host system. It also requires users to learn i3wm and possibly use the command line, which may not be ideal for everyone. I would appreciate any advice on how to approach this effectively.

You’re spending time focusing on the wrong things. Publish the code, list the dependencies to build it (preferably with a way to install them, like python’s requirements). That’s it.

VS Code has dev containers, which can be nice.

But honestly, this is all overboard. Not sure what language you’re working in, but this is what virtual environments are for. For instance in Python, you can use a tool called Poetry.

Here’s my commentary on the options you listed in the image:

Anaconda: They changed the licensing so that it’s not really fully FOSS, as the repos have restrictions on them. There are also other issues like this dark pattern of a download page.

But, forgetting about the licensing or problematic company practices: The software itself is trash. Worst thing I’ve ever used. It’s sooooo slow to install packages when it’s doing the “solver” thing. You can use something faster like mamba or miniconda, but then you still have to deal with package availability being poor, as the anaconda repos don’t have everything, and much of what they have is often too old.

Docker desktop: It’s proprietary. I mean you can use it, but you seem to be interested in open source stuff. Also see caveats to podman desktop below.

Podman Desktop: Technically this will work. But podman desktop is really designed more for development of containerized applications, rather than developing in containers.

Nix: Nix doesn’t work on Windows, so you would have to require WSL or something like that.

Fedora VM: I recommend enlightenment as a desktop environment. Very small, but also modern and clean looking. You’ll have to configure it to be a bit more similar to windows, but it’s a lot more intuitive to use than i3.

There are some other caveats to your environment. “The right .Net Sdks version” — however, the best extensions for C# development are proprietary and cannot be freely used in the fully FOSS versions of vscode.

it also requires users to learn i3wm and possibly use the command line, which may not be ideal for everyone.

Yeah, don’t do this. I agree with @[email protected], work with them, rather than forcing them to work with you. Collaboration goes both ways.

Another recommendation I have is to just see how people in a similar circumstance do what you do. There are plenty of people who do software and game development on twitch, and you can just go on their streams and ask how they collaborate. One method I saw is using trello, a task management software, and artists would upload models there as deliverables. They already have their own workflow, which they probably work efficiently with. And it’s not really the job of an artist to integrate models and art into the game, that’s the programmers job.

Navigating Anaconda Licensing Changes: What You Need to Know

Discover how to navigate Anaconda's licensing changes and what they mean for organizations. Find practical steps for maintaining your data science workflows.

Adding Rancher Desktop to your list. It is FOSS and a replacement for Docker Desktop.

Interesting idea to take “non-programmers (such as artists)” out of their normal professional workflows (e.g. adobe creative) and putting them in yours for the sake of productivity. What hardware are we talking about? Are you running a vm? That won’t work on apple silicon. (Which creative types overwhelmingly use)

Bonus question: You “want to develop a game” and are “considering collaborating with others”? What’s the scale and where are we at with making the game? Because worrying about your team’s workflow sounds a lot like having that $10 million idea and buying a domain name before writing a line of code.

That said, I’ve done this kind of thing before. Pick something. Anything. And write scripts to automate most of it. You will never get a 100% turn key solution, and everything has a tradeoff. Solve enough of the problem and go work on your game.

I was collabing on a game with an artists (godot + git) and they just used the github gui for windows and it worked great. They just made art in their program of choice and drag and drop into the folder. They clicked push button and it worked for a game jam.
I think you’re really putting the cart before the course here. Start making the game and solve these problems as you need to.