How to promote your game?

Re: How to promote your game?

Postby rubenwardy » 12 Aug 2019, 22:11

smcameron {l Wrote}:Who's "we", and what do you provide?


Minetest

Julius {l Wrote}:I hear that people these days make a build container (usually Docker) to circumvent this issue and have a clean & reproducible build environment. It can also be used to compile on a older LTS system like Ubuntu 16.04 even if your dev. system is more up to date.


Docker is typically used for server deployment and such, rather than user facing stuff. Canonical are promoting snaps heavily, a (shallow) containerised distribution method: https://snapcraft.io/

There's also flatpak
Core Developer for Minetest - Commits | Donate
User avatar
rubenwardy
 
Posts: 17
Joined: 04 Aug 2019, 00:36

Re: How to promote your game?

Postby fluffrabbit » 12 Aug 2019, 22:22

I don't think "snaps" are a good idea.
fluffrabbit
 
Posts: 483
Joined: 11 Apr 2019, 11:17

Re: How to promote your game?

Postby Julius » 12 Aug 2019, 22:26

Yeah, snaps and flatpaks of FOSS software are a pretty bad idea on desktop systems for various reasons, which are really OT here.

But the use of Docker is not as a distribution method, but only as a build environment. The normal binaries build inside the Docker container can then be distributed as usual. It is a way to prevent the typical issue of the lone developer saying "but it builds on my system"...
User avatar
Julius
Community Moderator
 
Posts: 2569
Joined: 06 Dec 2009, 14:02

Re: How to promote your game?

Postby smcameron » 12 Aug 2019, 22:39

I think it would be better to get other developers involved in the process early as possible so you can at least do some bug testing. If it is complex to compile it should come with directions. If no one else can compile it, it comes with a bus factor of 1.


There are build instructions, and plenty of people build it. The github repo gets cloned by random internet people a few times a week. Typically, though I don't hear anything from 99% of them. Getting other developers involved is pretty tough, as generally nobody's interested in working on someone else's baby, and I cannot really blame them, I'm the same. That being said, the project does have 18 contributors, but besides me, only one other person has really gotten into the code in much depth, and that was back in 2014, and happened to be someone I know in real life. At this point, it's a big enough project that it's hard for new people to get a toehold and be able to contribute, though I have made a document aimed to help people understand how all the pieces fit together and gain that toehold.
smcameron
 
Posts: 296
Joined: 29 Oct 2010, 23:44

Re: How to promote your game?

Postby Lyberta » 13 Aug 2019, 04:43

fluffrabbit {l Wrote}:I'm probably speaking out of my league here, but I don't think Docker is *the* solution. Yes, it keeps dependencies out of your root folders (I think). But you still have to run it as root


You can run LXC as a regular user.
⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧
User avatar
Lyberta
 
Posts: 591
Joined: 19 Jun 2013, 10:45

Re: How to promote your game?

Postby fluffrabbit » 13 Aug 2019, 07:54

Now I feel like an idiot. LXC is (I guess) a container system like Docker but lower-level. There is no package manager, it's just a container. Cool. I don't have a clue how to use it though. So I guess you are locked into the kernel version and physical hardware of your host machine, but things like the filesystem and OS can be whatever, like Qubes or something, but in userland. So it's a VM that shares your desktop. But I still don't know how to use it, how to build software in it, or how it applies to things like reproducible builds.
fluffrabbit
 
Posts: 483
Joined: 11 Apr 2019, 11:17

Re: How to promote your game?

Postby Lyberta » 13 Aug 2019, 22:31

So far I only use it to run Steam and play proprietary games there. Here's a bit advanced config for unprivileged container that gives access to video and sound so you can run games:

{l Code}: {l Select All Code}
# Template used to create this container: /usr/share/lxc/templates/lxc-download
# Parameters passed to the template:
# Template script checksum (SHA-1): 273c51343604eb85f7e294c8da0a5eb769d648f3
# For additional config options, please look at lxc.container.conf(5)

# Uncomment the following line to support nesting containers:
#lxc.include = /usr/share/lxc/config/nesting.conf
# (Be aware this has security implications)

# Subuids and subgids mapping
# "Secure" mounting
# Network configuration

# Distribution configuration
lxc.include = /usr/share/lxc/config/common.conf
lxc.include = /usr/share/lxc/config/userns.conf
lxc.arch = linux64

# Container specific configuration
lxc.include = /etc/lxc/default.conf
# Lyberta: Fix for Debian unprivileged containers
lxc.apparmor.profile = unconfined
lxc.mount.auto = proc:mixed sys:ro cgroup:mixed
#lxc.rootfs.path = dir:/home/lyberta/.local/share/lxc/Steam/rootfs
lxc.rootfs.path = dir:/mnt/SSD/Lyberta/LXC/Steam/rootfs
lxc.uts.name = Steam

# Network configuration
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.flags = up
lxc.net.0.hwaddr = 00:FF:AA:00:00:01

# Link sound and video to host
# See: https://stgraber.org/2014/02/09/lxc-1-0-gui-in-containers/
lxc.mount.entry = /dev/dri dev/dri none bind,optional,create=dir
lxc.mount.entry = /dev/snd dev/snd none bind,optional,create=dir
lxc.mount.entry = /tmp/.X11-unix tmp/.X11-unix none bind,optional,create=dir
#lxc.mount.entry = /dev/video0 dev/video0 none bind,optional,create=file
lxc.mount.entry = /run/user/1000/pulse/native home/lyberta/.pulse_socket none bind,optional,create=file

# Adjust user mapping for video and sound
# See: https://stgraber.org/2014/02/09/lxc-1-0-gui-in-containers/
# The idea is to map 1000 user to the real 1000 user on host, the rest uses
# IDs created by newuidmap/newgidmap.

# Map IDs 0 - 999 to fake ones
lxc.idmap = u 0 1258512 1000
lxc.idmap = g 0 1258512 1000
# Map 1000 to real one
lxc.idmap = u 1000 1000 1
lxc.idmap = g 1000 1000 1
# Map the rest to fake ones, notice the numbers
lxc.idmap = u 1001 1259513 64535
lxc.idmap = g 1001 1259513 64535


I use "lxcbr0" method for network. Here's how I run Steam:

{l Code}: {l Select All Code}
#!/usr/bin/sh

lxc-start --name Steam
lxc-wait --name Steam --state RUNNING
lxc-attach --name Steam -- su - lyberta --command "DISPLAY=$DISPLAY steam"
lxc-stop --name Steam
⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧
User avatar
Lyberta
 
Posts: 591
Joined: 19 Jun 2013, 10:45

Re: How to promote your game?

Postby fluffrabbit » 14 Aug 2019, 01:47

Thanks, that gives a lot of insight. I think a frontend would be nice, else the user would have to edit these configuration files for everything rather than using good defaults.
fluffrabbit
 
Posts: 483
Joined: 11 Apr 2019, 11:17

Re: How to promote your game?

Postby Lyberta » 14 Aug 2019, 17:21

Well, I'm on Debian and Debian doesn't have LXD and LXD is newer and easier, I've also found a bunch of 3rd party frontends for both LXC and LXD, my use case is just so simple I didn't need one yet.
⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧⚧
User avatar
Lyberta
 
Posts: 591
Joined: 19 Jun 2013, 10:45

Re: How to promote your game?

Postby fluffrabbit » 14 Aug 2019, 18:11

I'm sure it's something stupid like people confusing LXD with LXDE. To have a fully decentralized, non-root Docker would be fantastic. Maybe that's what this is, I'll just have to wait and see. I'm sure the use cases will become more complicated as build systems get harder to deal with and everything becomes as complex and terrible as Emscripten and Android. It's inevitable in this post-IoT world.
fluffrabbit
 
Posts: 483
Joined: 11 Apr 2019, 11:17

Re: How to promote your game?

Postby Wuzzy » 16 Aug 2019, 21:13

Hey, this thread started pretty nice with some advice that seems helpful, but you managed to go completely off the rails. Why is it so hard to stay on topic? :(
I like bitcoins: 17fsUywHxeMHKG41UFfu34F1rAxZcrVoqH :-)
User avatar
Wuzzy
 
Posts: 776
Joined: 28 May 2012, 23:13

Who is online

Users browsing this forum: No registered users and 1 guest