Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(2 edits)

Hi, I’m playing this and it’s really fun. I’m enjoying this as an ambient game I can play off and on and grow in. The different places to leave messages for each other and compare notes is great as well.

I installed this on a tilde server where I’m a user without sudo privileges. I found the sysop guide helpful and we have a number of players on the server. My question is about how the game can be launched from outside the directory holding sfp. When any user (including myself) tries to run ~username/sfp-directory/sfp I get the following error:

`@ERROR: no game data folder exists at 'data//sfp'. Ensure you are running this
`2from the root folder of a game install.

Ideally I’d like to build an alias on the server so that would trigger running ~username/sfp-directory/sfp from anywhere without first requiring players cd to the folder which is just enough friction as to discourage new folks from trying it out, I believe. Is there a workaround that would permit that?

(+1)

Glad you're enjoying it! 😊 

So, without access to /etc or the like, you can point environment variables called SFP_DATA and SFP_GAME to the two directories, to avoid that error message.

Then you just need the binary file to be in your path somewhere.

So, off the top of my head (and not knowing your OS) you probably want to have the 'sfp' binary file in any directory that's in your path, set in your .bash_profile or similar file.

Once it's in the path it should just find the binary fine, and with the two environment variables set above, it should find the correct game static and dynamic folders and run your instance.

Thanks, I will direct folks to use environment variables in the meantime.

Sorry to jump in with another thing. This is a bug report I received that I’m passing along. No expectation that you have to fix but an FYI and my apologies for the length:

First I ran the game with `strace ./sfp` and among all the output, two
    | interesting lines showed up:
    | 
    | openat(AT_FDCWD, "game//news/2025-01-07.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EACCES (Permission denied)
    | --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xc0
    | 
    | So I did an `ls -l game/news/` and among many others:
    | -rw-rw-r-- 1 jules     jules      652 Jan  7 00:15 2025-01-07.txt
    | 
    | It seems that the news for that day is generated when the first player for that
    | day logs in, and this file is created with the user and group of the player
    | playing. The perms are 664 for some reason and not 666, which is not normally
    | an issue because usually reading the news is enough for other players.
    | 
    | Note that the openat() call specifies "O_WRONLY" or "write-only" however. I
    | noticed in the past that if a player levels up a skill, this is shown in the
    | news. Updating the news to reflect this requires write access to the file, not
    | just read access. However, if the player who leveled up is not the same person
    | that logged in for the first time that day and created the news file, the news
    | for that day cannot be updated due to lack of write permissions. The game fails
    | to take this into account and ends up crashing.
    | 
    | Running the game with `gdb ./sfp` shows where the game segfaults more precisely:
    | 
    | Program received signal SIGSEGV, Segmentation fault.
    | __vfprintf_internal (s=0x0, format=0x530cc6 "%s\n", ap=ap@entry=0x7fffffffa160, mode_fl
    | ags=mode_flags@entry=0) at ./stdio-common/vfprintf-internal.c:1218
    | 
    | s is basically the location to read from, but it's 0x0 or NULL, and trying to
    | read from that location results in a crash. My guess is that it is trying to
    | print the news it just tried to write...? Not sure really.
    | 
    | I kinda wrote this for myself because oddly enough I enjoyed figuring out why
    | the game was not working for me, but maybe we should send this to the author
    | of the game as a bug report?
    | 
    | So basically I need to be the first one to play the next day or else I can
    | never play again. Unfortunately, if another player levels up the same day then
    | the game will crash for them. Hm.

Hmm. That's odd. Which OS is this, again?

I'll add it to my to-fix list.

Thanks. We’re running Ubuntu 22.04.5 LTS.

I presume you've already done so, but if you change the directory permissions it should be fine for future days.