Dedicated play-by-post application

I have been working on a dedicated play-by-post application.

It’s at the point where I have all the features that I want, but no where near something that I can realistically share with others (it is still quite buggy and there’s been no work done for packaging it for non-developers).

I am wondering if there is even any interest. I think that discord probably works fine for many folks.

Here are the features I that I want and which are in my app:

  • separate in-character and out-of-character channels, with name/avatar distinctions between them. (you can do this in discord via tuppers and convention, but it’s a bit kludgy).
  • dice rolling. there are a bajillion apps for this on discord. I wanted one that made it easy to have custom game rolls, so that I can, for example, type /str to do a strength check using the rules of the current game that I am playing. maybe there’s a discord bot that does this well, I don’t know.
  • quick rules wiki. I want a place for players to see the condensed rules for the game we are playing. you can do this in discord with a separate channel.
  • character sheets. there are all kinds of cool tools for this, even google sheets works pretty well, but I thought having it in one app would be nice.
  • images. it’s nice to share images. discord obviously does this, but they can get lost in the conversation, unless you put them in their own channel, which works great.
  • maps. I don’t want a full VTT myself. I think groups differ wildly on what they do want, though. What I want is the ability to share a map, the GM has some fog tool to hide things, and there are tokens you can move around. you definitely can’t do this on discord.
  • lastly, I don’t want to have to rely on companies to run things for me. but I also do not want to run a server that lots of others rely on. my app is peer-to-peer. the GM has to have the app running for the players to play. all the information for each campaign is stored with the GM.

I made a (very rough and amateur) video showing all this off: https://www.youtube.com/watch?v=xWaspRiMBXE

I would love to know your honest thoughts. I’m at the 90/10 mark on this project, the place where most die. The work remaining is the least glorious.

4 Likes

I watched the video. I have many thoughts.
I’ve been playing RPGs PbP for many years; I’ve used forums, rolegate, and my main tool: Discord.
I am formerly a linux sysadmin, so my approach is pretty tech-forward as well.

As far as your application itself: It looks great! Ticks most of the boxes. However there are some major obstacles you’d need to overcome to get people to use this.

The first is technical: this is an application, not a PWA or similar. People are very adverse to downloading and installing (or running) a dedicated app for anything. This is especially true with younger folks. In addition, P2P is pretty straightforward these days, but most modern routers block UPnP so you’ll need a dedicated port forwarded to whatever machine you’re using as the GM server.

The second is mobile: a lot of PbP happens on-the-go. As the GM I run things 90% of the time from a computer, but I often prep events in a private channel that I later drop into the main channels while on-the-go. I saw you mention android support for the app, but I doubt that is feasible as a dedicated platform for most GMs.

I personally would be fine hosting an app on my server (headless???) and having players connect via web, but I don’t think most of my players will want to download another app, unfortunately.

Obviously Discord is an app (that has a near-parity web version). But people already have that, for the most part. And even if my group were to play on another platform (yours, rolegate, roll20, etc) we would still use Discord to communicate! But adding yet another app? Hard sell for my players.

I presently use Discord for PbP, and it is nearly there, lacking integrated mapping and decent character sheet management (bots simply don’t do the trick). On the flip-side Discord is a short-term solution as the company will eventually enshittify it.

All that said I like what you’ve done here. I’d love to see a character generator and a GUI version of the character sheet builder (I don’t personally mind the config JSON though).

That’s all for now, feel free to poke holes. Good project!

1 Like

I’ve yet to play online, so I have no grasp of how well any particular solution (VTT, Discord, etc.) works. With that said, I know I wouldn’t be looking at Discord, at all, because I find it useless for discussion and have no interest in using it for anything. (It’s been months since I even visitedany of the discords I’m subbed to.)

What you’ve described offers features I think would be useful. My lack of experience playing onlnine, though, means I have no solid grasp of what I’d actually want to have available. I also lack understanding of the technical issues, so can’t offer much there.

I’m looking at figuring out something to use for online play because I think that’ll help me get playtesting done on my projects. I’d be among the people to certainly check out your work to see if it work for me. I won’t be using my phone for any of it, just my Mac; I’ve no idea what difference that could make.

1 Like

I really appreciate you taking the time to watch the video and give me all this feedback.

I think you are right that people are tired of downloading new apps. I am too.

port forwarding is indeed thorny. I figured that it was too tall an ask to get most GMs to enable port forwarding on their router, so I am using iroh. iroh attempts to do hole punching, which often works. when that fails, it does something akin to using a TURN server. the company behind iroh, n0, hosts these relays, which I am making use of. maybe I should put an asterisk in the claim about not relying on another company, but the relay is open source and would be trivial and cheap to self-host if n0 ever started enshittifying.

your suggestion about hosting a headless version, and having everyone connect via web is excellent. I don’t support this now, but it wouldn’t be too hard, assuming the GM is using the desktop app for the GM specific features. and everyone else is using a static web page for a client that I get hosted for free somewhere. iroh supports running in the browser via wasm.

a character generator is another great idea. I assume you mean random characters. the tricky part would be coming up with an easy to use DSL that captures all aspects of character generation for the majority of games. maybe it’s uniform enough to work?

as far as a GUI version of the character sheet builder goes, I was imagining that the vast majority of people would never write the configuration for a given game. they would just download it from the app. I don’t have this yet, but I was thinking something like a section where you enter the game you want like mycoolgithubname/cairn, and the app goes out to GitHub and grabs it. at least for games with a friendly license.

That’s cool you’d support relay servers; I’ve played with them for NAT traversal in other situations but haven’t used iroh. I would be curious what the costs to you would look like at scale though. Presumably you could pass this on to GMs somehow.

As for character generation I actually meant for folks wanting to build a new PC. In my current Discord PbP folks use Kettlewright and then paste a link to their character in a dedicate PC channel.

Your idea about game-ready config is great, and was what I had expected to happen. However I know for some folks that itself is a barrier (e.g. config > import) which is why so many VTTs have built-in game system builders. I was thinking of something like fari.app as an example of how to do this “offline”, with a simple tool.
That is way down low on my personal list of priorities though!

As for character generation I actually meant for folks wanting to build a new PC.

Ah! I actually already have this today. I think I was being confusing in the video.

The JSON config was for the design of the character sheet. For example, it would only need to be written once for every Cairn campaign ever. (unless you want to change it, etc). When the GM creates a campaign, and selects a game, they automatically get the wiki, the game-specific dice commands, and the character sheet. Players use a gui. same with the GM and NPCs.

However I know for some folks that itself is a barrier

That’s a good point. I would be happy to include several games by default, games where I know the creators are okay with it.

but your point is well taken, I could also consider the per-game config editor.

I guess right now, I’m really just trying to figure out if I am making this for other people who might enjoy it, or am I just making it for myself.

This is cool as heck! As a (beginner) dev and someone who’s deleted their discord account, I would start using this as-is today (if I could convince my group to finally try some pbp, haha)—quite a step up from my discourse pbp plans. But also, as-is, this thing is serving a niche within a niche within a niche, right? Folks into ttrpgs who play-by-post who have some technical know-how.

My two-nickels (since pennies are a thing of the past): A self-hostable web app for this would be killer. Especially if it’s mobile-friendly. (Maybe even charge folks for a hosted version?) Like Yochai said, getting people to download another app is a hard sell. I don’t personally mind, as long as they’re open-source (Optainium on my phone is packed full, haha). But my (hypothetical) players are another story.

Regardless, looks super cool. I’d love to know more about your tech stack.

1 Like

Nice, I’ve been looking for a play-by-chat solution after a Discord exfiltration. Would be great if I could slap this on a Raspberry Pi or something.

Looking forward to future developments!

edit: also really appreciate text-based options for characters so I can hack in support for whatever game has my attention this week. Do we have support for multiple result bands, ie PbtA, FitD, 2400, Land of Eem, Daggerheart?

1 Like

thank you!

niche within a niche within a niche

big time. population → ttrpg hobby → pbp users → pbp users who aren’t satisfied with discord. additionally, I was not planning on putting any effort into getting a configuration for 5e in place. partly because those character sheets are so big and I fear would look bad. and also because there is probably so much content that folks want outside of the SRD, seems fraught. but that probably greatly reduces the audience.

some technical know-how

the intention is for it to require no technical know-how. right now that is not the case, because there is no easy way to get and install it. I maybe should not have included the configuration files in my demo video, that may make it seem confusing. the vast majority will never have to touch or think about those. I was hoping to get across the point that even if you do have to add a new game, it’s not too bad. but I hope to make most games with friendly licenses easily available.

web app

yea, I will probably work on this next, a mobile friendly web client is probably the single best thing I could do right now.

tech stack

it’s written in rust, with tauri for the desktop app with a web frontend. svelte for the front end. and iroh for the peer-to-peer networking.

1 Like

Raspberry Pi or something

that’s another strong vote for a headless version, which would run fine on a pi.

Looking forward to future developments!

thanks!

multiple result bands

not yet, but that would be really easy to add. I’ll absolutely add that. so that you can write something like:

  [[command]]                                                                                                             
  name = "act-under-fire"
  roll = "2d6 + {cool}"
  [[command.bands]]
  range = "<=6"
  label = "MISS"
  [[command.bands]]
  range = "7-9"
  label = "PARTIAL"
  [[command.bands]]
  range = ">=10"
  label = "FULL SUCCESS"

Sounds great! I’m familiar with the tech stack so I can probably hack in Daggerheart’s specific jank, or Nimble’s, or whatever, then make a PR.

Having range bands per action might let you embed pick lists in the result for specific PbtA moves. Dunno if anyone would use that but it’d be handy.

1 Like

fantastic. I don’t have the code up on github yet. I need to comb through the commit history (or maybe just start from scratch) and make sure I haven’t committed anything I shouldn’t have (game rules with non-friendly licenses, images, etc), clean it up just a bit (mostly just documentation), and then I’ll throw it up. and let you know.

the thing with pbta that I am most worried about (worry is probably too strong a word…) is the character sheets. I imagine you’d want one for each class, and to have a way to toggle between them. bit more complicated than what I have now. not insurmountable, though, by any means. just not as easy.

1 Like