My biggest regret is that Fleshcult is a server based game. You click a button, it sends a request to the server, and all the processing happens there in Python code.
There are several disadvantages:
- It doesn’t run offline. If the server goes down, nobody can play.
- There’s no easy way to keep multiple versions of the game live. I was always careful to keep saved games backward compatible because I know players can’t just fire up an older version, so my ability to make drastic changes was limited.
- Modding is completely impossible.
- I haven’t been able to do a totally unrestrained promotional push, because I know the server can only take so much before it lags out horribly or starts spitting errors. Server administration isn’t my forte.
This is all my own stupid fault.
Here’s how I’d do it gradually, instead making everybody eat all their veggies before dessert:
- Add content to the server version for a couple of months, all the while doing prep and fixing up code that translates poorly.
- Start work on Fleshcult 2 from the same codebase. Then can I start making really big changes.
What do you guys think? Technical details below the fold.
Have you made a RAGS Game?
You should check out Regalia. It’s an enhancement to the (unfinished) HTML export in RAGS Designer 2.4. You run the export, run Regalia on the export, and then nobody has to install the godawful RAGS Player to play your game.
It’s open source so there’s a pretty good prospect for it eventually supporting every feature in RAGS.
Wait, what’s RAGS?
RAGS is a graphical adventure game creation system that’s popular in several different adult video game scenes. Unfortunately it’s Windows only, tricky to install correctly, largely unmaintained, and has a couple of mutually incompatible versions.
The biggest source of the trouble is that the .RAG format is a renamed SQL Server Compact Edition database. This is an undocumented binary file format called SDF (no relation to signed distance fields). RAGS player relies on SQL Server Compact being installed in order to open the databases. That’s why you have to run two separate installers to install the player. Microsoft is dropping support for SQLSCE in 2021. The old installers will probably work for a while after that point, but there’s no telling when OS or .Net changes will break them.
.RAG files are a terrible way to distribute games and we should stop doing that.
Mandrill, my former e-mail provider, discontinued the service I was using and I botched switching over to a new service. Between 25 and 27 February any attempts by the game or the forums to send e-mails resulted in an Internal Server Error. I didn’t notice because I botched the error monitoring too. I fixed the game yesterday and the forums just now.
If you see any more problems, report them to email@example.com
Sorry about that. 🙁
This is the menu redesign I’m working on. I don’t have anything to release yet because I want to save it until it’s definitely an improvement on what’s already there.
You can see with Cast Loosen there’s a sub menu for the target. I tried out exposing all the arouse/heavy arouse (options #1 and #2) variations in a sub menu, but picking the variation isn’t an interesting decision so I’m going to keep that randomised.
I’m hiding the descriptions inside a foldable section. I figure those are things you really only need to read once. Maybe I’ll default them to unfolded if you’ve never seen an action before, or if you’re on a big display. I haven’t decided which.
Does anyone have recommendations for JS animation libraries? I need relatively simple tweening through a list of keyframes for a variety of CSS properties. Preferably something that runs OK on underpowered devices. JQuery is disappointingly bloated and sluggish.
This post isn’t much use for anyone but programmers: it’s about the save format I’ve chosen, and a big overview of how it’s been working out for me.
As I mentioned in an earlier post, rather than packing my data into a special format for saving, I just feed my game objects directly into python pickle. Most Python folks regard this with horror!
The drawbacks haven’t exactly been the ones that everyone warns about. Most people I’ve talked to consider that doing this makes it infeasible to change the data format while retaining backward compatibility. In fact, it was pretty quick to set up a data migration system that overrides bits of pickle deserialisation and runs special migration scripts based on a version number stored inside the object.