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?
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.
Thank you for making this game it’s so fun! And thank you for making it work on OpenBSD! I find myself logging in religiously the writing is just so good and I love exploring the city.
Hi Elissa, really enjoying this game! However, I have a couple FRs to facilitate using it on my BBS. One of which we've already discussed a bit :)
1 - Screen pausing. I can't use this on my BBS until some sort of screen pausing implementation is done. Most BBSes default to a 24 line screenmode. If tty geometry detection is tough, would it be possible to have a flag at runtime to force a screen geometry and introduce pauses accordingly?
2 - A reset feature. In other words, remove all players from the game and force everyone to start from scratch.
Hi Elissa! Most of my telnet clients connect using an 80x24 screen geometry. Without any sort of automatic pausing, users will have to use their scrollback buffers. This is fine in most traditional style terminal emulators but in a lot of BBS specific telnet/ssh clients it's kind of unnatural/a pain in the neck. It's not the typical user experience one would expect on a BBS and I expect a lot of users would not even realize they've missed anything as they would be used to seeing everything in a single 80x24 screen.
Ah yep, I follow you. I'll see what I can do. 😊 There is a feature a little like what you describe already but... not quite. I'll see how it can be tweaked.
I haven't worked on any more SFP stuff yet, unfortunately. I've been inundated with other things taking up my time. It is still top of my list when I next sit down to work on it.
I'm really enjoying the game, it's great to have something fun I can play everyday with a limit on game time. Thanks for making it and posting about it on Mastodon.
Im hurt i couldn't understand the nerdy instructions much.. I would pay double for an easy way to setup a game with friends lol :(... Want to grab a copy for a friend aswell we like oldschool muds and such!
Sorry! It's really not designed for that. It's very much designed for people who already have a dedicated tilde club (or want to play it single player).
There are people linking it up with existing BBS software such as Synchronet so I'm sure there'll be instructions for that in future, but that still won't be a beginner's guide...
Grabbed this game its awesome and also downloaded a free bbs tool called synchronet but i have no idea how to " plug " the game to the tool for opening a door or w.e im doing lol, used to play space war with a friend or trade war i think it was called
Hey, awesome game! I'm actually planning on running this /as/ a BBS door. :) I have it working somewhat already. May I submit a few feature requests that would really help this run well as a door?
1. Ability to set username at runtime either by -n"User Name" or by looking at a line in a file like door.sys and remove all password logic (i.e., BBS launches door with username as argument and game only allows player to be that user)
2. Force users to enter passwords when creating a character, if 1 above won't work?
3. Detect tty size and display relevant "pause" prompt? I.e., BBSes are typically 80x24. When I tried playing in this screenmode, a lot of text went off the top of my screen. 80 chars wide seems fine but the 24 char y axis is where the problem was.
1 & 2 are already there, as of the latest version, thanks to another sysop who messaged me. We ended up settling on the option to run the game with --force-alias.
You can turn on or off forced password entry too, if you STILL want that. (A useful feature if, say, people still get command-line access - you may not want someone with terminal access realising they can log in as another user as they please.)
If there's any issues with them, please let me know!
(3) is on my to-do list. Right now you can manually set a wide screen width for word wrapping, but it doesn't grab your screen dimensions from termcap yet as I found it... didn't work on a lot of systems. (And of course text ANYTHING barely works on Windows but... this is one of the few games where I guess Windows is by default a second-class citizen.)
Hi Elissa, thanks for your reply! I actually realized shortly after typing this up that 1 & 2 were already done and documented ;) However, when I try to run with -a or —force-alias I keep getting segfaults. I’m not at my computer at the moment so I owe you actual logs, which I will provide later.
As far as term size, what about an interim solution of hardcoding it with a config setting? It would be great to have a pause prompt at 24 lines just like in the old BBS days!
Unfortunately that's not a trivial thing to do, or I'd probably have done it already. When I re-write the way the text code works I'll be doing term size and pause breaks, but for now that's a little ways off.
Please let me know what the segfaults show though, if you can! I just re-tested --force-alias does have a bug I found and fixed, but... it doesn't cause a crash? I will put up version 1.0.3 today with that fix (and a few others). If that still causes issues, please let me know!
Oh and for support things feel free to email me - the link is on the web site. Easier for sending crash dumps, info about the server setup, etc.
Oh! And one more note - the sysop guide is not just on the web site, but in the /errata directory in each copy of the game, so when new versions come out, you can find the latest docs there at all times.
I'm probably just dense, but where can I find documentation on how to set up the multiplayer version? I'm really liking the game so far but I'd really like to experience that side of it. Alternatively, I read in your more information page that you maybe had plans to set your own multiplay place up, did you ever do that?
I did set one up, but only as a test server as I don't want to have to moderate one myself atop of develop this. Just don't have time as long as this is a side project.
The web site has information about how to do it - including a link to the sysop documentation - which can also be found in the 'errata' directory in any copy of the game. Note that it requires some understanding of how to set up and run a unix server.
Loving this so far, just need to figure out how I can eat my can of veggie soup I bought though, heh. This is fun for my once a day fix and I am hooked.
← Return to game
Comments
Log in with itch.io to leave a comment.
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: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?
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:
Thank you for making this game it’s so fun! And thank you for making it work on OpenBSD! I find myself logging in religiously the writing is just so good and I love exploring the city.
Hi Elissa, really enjoying this game! However, I have a couple FRs to facilitate using it on my BBS. One of which we've already discussed a bit :)
1 - Screen pausing. I can't use this on my BBS until some sort of screen pausing implementation is done. Most BBSes default to a 24 line screenmode. If tty geometry detection is tough, would it be possible to have a flag at runtime to force a screen geometry and introduce pauses accordingly?
2 - A reset feature. In other words, remove all players from the game and force everyone to start from scratch.
Thanks!
2 is pretty easy, I'll add that to the sfputil next update.
The first one I'll need to think on just how to do it. I think if I'm lucky my current text rendering code should be able to be be set to track that.
And thanks!
Out of curiosity, why is the 24 lines thing a blocker? Just curious how your BBS works. 😊
Hi Elissa! Most of my telnet clients connect using an 80x24 screen geometry. Without any sort of automatic pausing, users will have to use their scrollback buffers. This is fine in most traditional style terminal emulators but in a lot of BBS specific telnet/ssh clients it's kind of unnatural/a pain in the neck. It's not the typical user experience one would expect on a BBS and I expect a lot of users would not even realize they've missed anything as they would be used to seeing everything in a single 80x24 screen.
Thanks for your reply!
Ah yep, I follow you. I'll see what I can do. 😊 There is a feature a little like what you describe already but... not quite. I'll see how it can be tweaked.
Hi Elissa, hope all is well! Just wanted to touch base here and see if you were able to implement any screen pausing? Thanks!
Apologies for the delayed reply!
I haven't worked on any more SFP stuff yet, unfortunately. I've been inundated with other things taking up my time. It is still top of my list when I next sit down to work on it.
I'm really enjoying the game, it's great to have something fun I can play everyday with a limit on game time.
Thanks for making it and posting about it on Mastodon.
Thank you. 😊 Glad you're enjoying it!
Awesome game, reminds me of the 90ies and BBS times. Thanks a lot for making this!
Any chance to get a native version for OpenBSD?
Thanks! I've just had someone message me about that - I'm open to it as long as I can get access to a build machine. Will update here when I do so. 😊
Im hurt i couldn't understand the nerdy instructions much.. I would pay double for an easy way to setup a game with friends lol :(... Want to grab a copy for a friend aswell we like oldschool muds and such!
Sorry! It's really not designed for that. It's very much designed for people who already have a dedicated tilde club (or want to play it single player).
There are people linking it up with existing BBS software such as Synchronet so I'm sure there'll be instructions for that in future, but that still won't be a beginner's guide...
Aww ok i tried earlier i think i was getting close to get it to work I'll keep trying
Good luck!
Grabbed this game its awesome and also downloaded a free bbs tool called synchronet but i have no idea how to " plug " the game to the tool for opening a door or w.e im doing lol, used to play space war with a friend or trade war i think it was called
It's a pretty involved process, unfortunately, doing BBS setup stuff. I've created a sysop documentation though, so hopefully that helps! https://swordsoffreeport.com/md.html?src=sysop.md
Thanks ill try :)
Hey, awesome game! I'm actually planning on running this /as/ a BBS door. :) I have it working somewhat already. May I submit a few feature requests that would really help this run well as a door?
1. Ability to set username at runtime either by -n"User Name" or by looking at a line in a file like door.sys and remove all password logic (i.e., BBS launches door with username as argument and game only allows player to be that user)
2. Force users to enter passwords when creating a character, if 1 above won't work?
3. Detect tty size and display relevant "pause" prompt? I.e., BBSes are typically 80x24. When I tried playing in this screenmode, a lot of text went off the top of my screen. 80 chars wide seems fine but the 24 char y axis is where the problem was.
Thanks! Awesome game.
Thanks, and awesome! 😊
1 & 2 are already there, as of the latest version, thanks to another sysop who messaged me. We ended up settling on the option to run the game with --force-alias.
You can turn on or off forced password entry too, if you STILL want that. (A useful feature if, say, people still get command-line access - you may not want someone with terminal access realising they can log in as another user as they please.)
More details are in the sysop's guide.
If there's any issues with them, please let me know!
(3) is on my to-do list. Right now you can manually set a wide screen width for word wrapping, but it doesn't grab your screen dimensions from termcap yet as I found it... didn't work on a lot of systems. (And of course text ANYTHING barely works on Windows but... this is one of the few games where I guess Windows is by default a second-class citizen.)
Hi Elissa, thanks for your reply! I actually realized shortly after typing this up that 1 & 2 were already done and documented ;) However, when I try to run with -a or —force-alias I keep getting segfaults. I’m not at my computer at the moment so I owe you actual logs, which I will provide later.
As far as term size, what about an interim solution of hardcoding it with a config setting? It would be great to have a pause prompt at 24 lines just like in the old BBS days!
Unfortunately that's not a trivial thing to do, or I'd probably have done it already. When I re-write the way the text code works I'll be doing term size and pause breaks, but for now that's a little ways off.
Please let me know what the segfaults show though, if you can! I just re-tested --force-alias does have a bug I found and fixed, but... it doesn't cause a crash? I will put up version 1.0.3 today with that fix (and a few others). If that still causes issues, please let me know!
Oh and for support things feel free to email me - the link is on the web site. Easier for sending crash dumps, info about the server setup, etc.
Oh! And one more note - the sysop guide is not just on the web site, but in the /errata directory in each copy of the game, so when new versions come out, you can find the latest docs there at all times.
I'm probably just dense, but where can I find documentation on how to set up the multiplayer version? I'm really liking the game so far but I'd really like to experience that side of it. Alternatively, I read in your more information page that you maybe had plans to set your own multiplay place up, did you ever do that?
I did set one up, but only as a test server as I don't want to have to moderate one myself atop of develop this. Just don't have time as long as this is a side project.
The web site has information about how to do it - including a link to the sysop documentation - which can also be found in the 'errata' directory in any copy of the game. Note that it requires some understanding of how to set up and run a unix server.
Loving this so far, just need to figure out how I can eat my can of veggie soup I bought though, heh. This is fun for my once a day fix and I am hooked.
Thank you! I can tell you if you'd like, but I'll keep shut for now in case figuring it out is part of the fun for you!
LETS GO
Ready to check it out!
I will post here (and on my mastodon account) when I am ready for more testers! Will be in the next week I think.
Can't wait! :V
Thanks. 😊