Jump to content

Twilight Sparkle's Secret Shipfic Folder Online


brambleshadow4

Recommended Posts

I wanted an easy way to play shipfic with some of my friends during the pandemic so I made this website:

http://www.tsssf.net


 r1.thumb.png.6daf5b7873e10f9c2ce2cc16e1e93263.png

It’s drag + drop based, so you draw cards by clicking the decks + dragging cards from your hand to the board.
 dragCards.gif.ff0e3a5e25d710c1b2c781620f2d2d15.gif


I’m slowly starting to add features to help keep track of complicated gameplay mechanics by adding symbol markers, keywords, and changelings that morph into the card they’re disguised as. Eventually I hope to add goal highlighting for when a player achieves the criteria of a goal card.

r2.thumb.gif.0790f6e3c1b39742d2b10767d1e369c5.gif

You can open a new lobby with just a single press of a button + then send the link to your friends.

r3.png.0042087920223a461c8af5fb23d6aa51.png

 It currently supports the core deck + a few expansions, though I’ll eventually add more. Other important features include things like letting players rejoin the same game if they disconnect temporarily, + allowing players to join midgame.

r4.jpg.000b47809c24d1ba26b61765f14496bd.jpg
If you’re looking for someone to play with, you could shoot me a message or join the various shipfic communities out there like Children of Kefentse.   
Anyways, I hope you like it + can enjoy playing shipfic with your friends in these trying times.

  • Brohoof 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...

Seems cool.

Personally, I'd prefer a full client-server application model over a webapp, but that's me. It would also be nice if there was a way to not have to use Discord to find games. I mean I realize it's a niche and you have to find players somehow...

 

P.S

Please consider setting up HTTPS for your website, it might not be strictly necessary, but it assures others that you are reasonably concerned about security and saves people the pain of web browsers that complain. Supposedly using Let's Encrypt (https://letsencrypt.org/) is fairly painless.

Link to comment
Share on other sites

  • 2 weeks later...
On 2021-02-04 at 11:05 AM, StormyVenture said:

Seems cool.

Personally, I'd prefer a full client-server application model over a webapp, but that's me. It would also be nice if there was a way to not have to use Discord to find games. I mean I realize it's a niche and you have to find players somehow...

 

P.S

Please consider setting up HTTPS for your website, it might not be strictly necessary, but it assures others that you are reasonably concerned about security and saves people the pain of web browsers that complain. Supposedly using Let's Encrypt (https://letsencrypt.org/) is fairly painless.

Someone did make a standalone client and server application back in the day (here's their reddit post if you're interested). I'd argue that having a downloadable client is a bad design choice though. The web app significantly lowers the barrier to entry to getting a game started; all you have to do is visit the website, click host game, send the link to a friend, and once they've clicked it, start the game. With a client app, you have to download it, run it, host a game, send some sort of password/lobby code to your friend, have them download the app, launch it, copy in the code, and that's all assuming someone else is running a dedicated server. If not, there's still a whole server app that needs to be setup properly with port forwarding and the whole mess. Sure, someone who's really interested might jump through all those hoops, but 99% of people won't.

I go back and forth on whether I want to try to have some sort of public lobby system built in, but that also comes with the need to implement some sort of communication system, probably text chat. Public lobbies also only work well when there's many players online at any given time, which is not currently the case. Even if there was a public lobby system, it's almost always more fun to play with people you already know, and those communities can more easily solve that problem. You definitely don't have to use discord to find people, but it's definitely the most popular gaming social platform these days.

HTTPS is always more painful than HTTP I'm afraid :( Let's encrypt make it better, but I'd hardly describe it as painless. I put getting it working off for a long time because I wanted to prioritize adding actual features to the site, but everything's now https/wss now, yay!

 

Link to comment
Share on other sites

21 hours ago, brambleshadow4 said:

Someone did make a standalone client and server application back in the day (here's their reddit post if you're interested). I'd argue that having a downloadable client is a bad design choice though. The web app significantly lowers the barrier to entry to getting a game started; all you have to do is visit the website, click host game, send the link to a friend, and once they've clicked it, start the game. With a client app, you have to download it, run it, host a game, send some sort of password/lobby code to your friend, have them download the app, launch it, copy in the code, and that's all assuming someone else is running a dedicated server. If not, there's still a whole server app that needs to be setup properly with port forwarding and the whole mess. Sure, someone who's really interested might jump through all those hoops, but 99% of people won't.

I don't see how the downloadable client is a "bad design choice", it's really not that big a hurdle to download a program.

native client: download it (launching it is nothing). host a game, send some sort of password/lobby code to your friend (not much different than sending a link), have them download the app (again launching it is trivial), copy in the code

web app: visit the website, click host game, send the link to a friend (they have to visit the website too), start game (note: you assume that both people have a browser with which the web app is compatible)

These are simply not that different, the only real difference (most of the time) is the code sharing step. I agree that hosting a dedicated server is a hurdle, but hosting a website can be too. A peer to peer solution would make a bit more sense, albeit the port forwarding and stuff can be a mess. Having a server that provides a lobby (to facilitate finding and joining games) is probably essential though. And that same server could be a gateway for data without needing to run the game itself or do anything beyond assigning one of the clients as authoritative (I'm assuming the client is a pseudo-server here). In other words some sort of hybrid architecture.

21 hours ago, brambleshadow4 said:

I go back and forth on whether I want to try to have some sort of public lobby system built in, but that also comes with the need to implement some sort of communication system, probably text chat. Public lobbies also only work well when there's many players online at any given time, which is not currently the case. Even if there was a public lobby system, it's almost always more fun to play with people you already know, and those communities can more easily solve that problem. You definitely don't have to use discord to find people, but it's definitely the most popular gaming social platform these days.

You don't really need chat, though it can be more convenient. Simply providing some means of sharing contact data directly is all that's needed. In other words some way to send a specific person info like your_username @ chat service.

21 hours ago, brambleshadow4 said:

HTTPS is always more painful than HTTP I'm afraid :( Let's encrypt make it better, but I'd hardly describe it as painless. I put getting it working off for a long time because I wanted to prioritize adding actual features to the site, but everything's now https/wss now, yay!

Thanks. Firefox doesn't seem to like the security/certificate, but idk why. It complains about your site: https://www.tsssf.net/, but not about this one: https://www.bronies.be/spelletjes/pmq.php.

P.S.

Thanks for the link

Edited by StormyVenture
Link to comment
Share on other sites

On 2021-02-14 at 12:36 PM, StormyVenture said:

Thanks. Firefox doesn't seem to like the security/certificate, but idk why. It complains about your site: https://www.tsssf.net/, but not about this one: https://www.bronies.be/spelletjes/pmq.php.

ugh. I got it working for tsssf.net, but not www.tsssf.net :worry: obligatory complaint about how painful it is to setup https; thank you for bringing that to my attention. It's fixed now for both the domain and subdomain.

 

On 2021-02-14 at 12:36 PM, StormyVenture said:

You don't really need chat, though it can be more convenient. Simply providing some means of sharing contact data directly is all that's needed. In other words some way to send a specific person info like your_username @ chat service.

I'll think about this more. I see how this can be useful, but letting people post content, even if it's just a line or two of contact info, introduces a lot of other design factors that I need to consider. For example, do I make people login in order to post? Probably not, because having a login page for something like this is probably overkill. If someone can't log in though, how would they delete their post? Etc. etc.

 

On 2021-02-14 at 12:36 PM, StormyVenture said:

I don't see how the downloadable client is a "bad design choice", it's really not that big a hurdle to download a program.

native client: download it (launching it is nothing). host a game, send some sort of password/lobby code to your friend (not much different than sending a link), have them download the app (again launching it is trivial), copy in the code

web app: visit the website, click host game, send the link to a friend (they have to visit the website too), start game (note: you assume that both people have a browser with which the web app is compatible)

These are simply not that different, the only real difference (most of the time) is the code sharing step. I agree that hosting a dedicated server is a hurdle, but hosting a website can be too. A peer to peer solution would make a bit more sense, albeit the port forwarding and stuff can be a mess. Having a server that provides a lobby (to facilitate finding and joining games) is probably essential though. And that same server could be a gateway for data without needing to run the game itself or do anything beyond assigning one of the clients as authoritative (I'm assuming the client is a pseudo-server here). In other words some sort of hybrid architecture.

Ah, so we have elected to descend further into architecture debate.

I still don't think you've made a clear case for why a downloadable client is better. Neither a web app nor a client can operate without a website/web service/P2P proxy servers running, so that bullet has to be bitten either way.  A client doesn't solve any of the problems you mention with the web app: "they have to visit the website too" will also be true for the client since everyone involved will need to download the client from somewhere, and while "you assume that both people have a browser with which the web app is compatible" is true, client apps don't escape that problem because with client apps, you'll need to release a stable build for every OS you want to target. It's pretty easy to test a website on multiple browsers (except Safari ugh), but testing an app on several OSes? *shudders* And we haven't even talked about the security implications of downloading random executables off the internet. It's WAAAY safer to visit a website than to run an executable.

So yeah, I think having a downloadable client is a bad design choice for something this lite.

Link to comment
Share on other sites

20 hours ago, brambleshadow4 said:

Ah, so we have elected to descend further into architecture debate.

I still don't think you've made a clear case for why a downloadable client is better. Neither a web app nor a client can operate without a website/web service/P2P proxy servers running, so that bullet has to be bitten either way.  A client doesn't solve any of the problems you mention with the web app: "they have to visit the website too" will also be true for the client since everyone involved will need to download the client from somewhere, and while "you assume that both people have a browser with which the web app is compatible" is true, client apps don't escape that problem because with client apps, you'll need to release a stable build for every OS you want to target. It's pretty easy to test a website on multiple browsers (except Safari ugh), but testing an app on several OSes? *shudders*

 

Definitely a we there because you're the one that made the initial assertion.

It's better because no one has to run a web browser and all the intrinsic overhead, just to play your game. Surely you've used Discord? It's an absolute resource hog for the fairly modest task it performs. And they also have to hope that you keep your website secure, updated, compatible, etc. Basically they're relying on a cloud client and a cloud server that could just go poof.

With a true Peer-to-Peer (aka P2P) setup and proper port forwarding a direct connection is possible. As you point out once there's a proxy involved you might as well just have client-server.

As for releasing a build for "every OS you want to target", that's not such a big deal since there are basically only two OSes of real importance to most people. And once you make it run on Linux it shouldn't be a huge problem to make it work on macOS. You shouldn't release an unstable build, so the "stable" bit is kinda moot.

 

I think what you're trying to say is it's better and easier for -you- as a developer, whereas I'm looking at this from more of a user perspective.

 

Quote

And we haven't even talked about the security implications of downloading random executables off the internet. It's WAAAY safer to visit a website than to run an executable.

So yeah, I think having a downloadable client is a bad design choice for something this lite.

Honestly, that's an absolute load of tripe.

A game client downloaded from the legitimate website of the developer isn't "a random executable" and downloading stuff off the internet isn't magically more dangerous than your friending giving you some files they made on removable media.  Sure there is some risk, but the vast majority of the time that risk is negligible. Visiting a website is only as safe as the browser you use makes it and is still subject to whether the site's server is malicious or not.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Join the herd!

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...