Connecting to Steam Workshop

Here’s a progress update on Steam Workshop support. I’ve got Fleshcult connecting to the Steam API and fetching the mods you’ve subscribed to in the workshop. It took some fixes in the Python wrapper I’m using. As far as I can tell, looks like there’s one other person who’s using Steam Workshop from Python, so I’m further off the beaten track than I’d hoped. I’ll be sending the fixes upstream soon.

There’s still a fair bit to do before it’s usable. Uploading mods is much more complex than downloading them. It’s the game’s job to upload the files and attach metadata to them – descriptions and tags and so forth. Once I’ve got the uploader working, I’ll be able to test the whole process from end to end, and from there it’s not too far to releasing it.

World Building

I’ve been finding it hard to focus on programming tasks lately, so I’ve been spending this week working on world building. I haven’t tended to write much background material, but I’ve been hankering to do more, because a post-Baron plot arc has gotta be more than just another antagonist like the last.

My process so far is similar to the one behind Vampire: The Masquerade:

  1. What are the major political divides generated by the premise?
  2. Come up with factions for each position. Give them names, epithets, symbols, founders, derogatory terms…
  3. Who’s allied with who? What are the conflicts? Who won, and how long ago?
  4. What sorts of juicy scandals might’ve been covered up? Who’s keeping secrets?
  5. What’s the sequence of foreshadowings and reveals that leads the player to the bottom of each mystery?
  6. Who do they need to know and where do they need to be, to discover all these things?
  7. What are the tasks and random events that lead them there?

Anyway, I doubt I’ll follow all these steps exhaustively. If I can see a shortcut to writing game content, I’ll definitely take it.

Next step towards Steam Workshop support

EDIT: Done, moving on to hooking up the Steam Workshop API

There’s something I’ve been putting off, and I need to get it done before modders go writing any Python mods. Fleshcult is currently written in Python 2, which is no longer supported. There’s a code library I’d like to use to talk to Steam that requires Python 3, so upgrading is suddenly a priority. In any case, it’s better done sooner rather than later because I don’t want to break code mods.

Translating code from 2 to 3 is mostly automated, but it’ll require some manual intervention here and there. It’s hard to say how long it’ll take, but hopefully it’ll be a non event. As a spin off, it might be better behaved with unicode install paths – Python 2 is notoriously error prone for that.

Modding Preview Now Available

In the Steam beta branch and on Itch, you can now download a special v1.07 release of Fleshcult that has the first phase of mod support.

Steam Workshop isn’t supported just yet, so it’s not very interesting if you just want to play mods, but if you’re interested in creating them there’s new stuff to tinker with. So far it supports HTML/CSS mods for changing the way the game is presented. The ability to change the gameplay is something I’ll be working on next year.

To learn more about creating mods, you can consult the new Fleshcult Wiki which has a modicum of technical documentation. Feel free to add stuff I’ve glossed over. You’re also welcome to add info about playing the base game if you like. Happy holidays!

Modding Progress Update

I’ve been making a lot of progress building the mod system and adding HTML/CSS modding specifically. I expect I’ll have something for modders to experiment with before Christmas, but hooking it up to Steam Workshop will have to wait until the new year. Changing the underlying behaviour of the game will arrive later.

I’m mindful that after I expose something to modders, doing a big refactor on it will break everybody’s stuff. So whenever I delve into the details, there’s a pressure to get things right the first time. That said, I suspect the smarter approach is probably getting something rough out quickly and then reacting to what people actually need.

One thing I’m over-engineering the fuck out of is giving modders lots of ways to add their stuff without overwriting stuff from other mods. Maybe if I pull that off Fleshcult modding won’t be a shitshow of bugs and load order tweaking? Time will tell.

Release v1.06

Bug fixes:

  • Fixed saves failing when Windows username contains underscores. For real this time!
  • Fixed errors not getting logged if program only runs briefly.
  • Errors are now also displayed in a popup box.
  • Removed executable compression and added exe metadata, to reduce AV false positives.

Status update

I’ve been taking some time off the last week. I didn’t pace myself very well during October so I’m pretty fatigued. My apologies if you’re waiting on help with technical problems. I haven’t forgotten about you, I’m just tired.

Speaking of problems, there’s been a bunch of anti-virus false positives due to PyInstaller as I feared. Most of the major consumer brands have been OK except for BitDefender, which consistently causes problems. I’ve you’re seeing fleshcult.exe disappear, it’s almost certainly anti-virus related.

I’ve been poking around with different PyInstaller options, but the long term fix here is to use the relocatable version of Python so I can distribute the interpreter without doing anything weird to an exe’s contents. Unfortunately that was introduced in Python 3 and Fleshcult is on 2.7, so I won’t be able to address that in the short term.

What’s next for Fleshcult?

tl;dr:

  • Bug fixes
  • Mods
  • Mac version

Downloadable Fleshcult is out and aside from some weird crashes I’m still tracking down, the pressures of launch are starting to settle down. I’ve been ducking a lot of questions about whether I’ll be producing more content by saying it depends on sales. Based on how things are going, I can commit to a Mac version and mod support.

Visual Mods

Mod support is gonna come in stages. Letting people change the look of the game and add more graphics is relatively easy. The game would load an extra CSS stylesheet out of the mod folder, and with a few extra hooks from me and the magic of pseudo-elements, you’ll be able to add artwork with a high degree of flexibility. I’ll supply examples for the CSS, so try not to let terms like “pseudo-element” disconcert you.

Modding the HTML isn’t gonna be too bad either. Some enterprising individuals are already doing it, though this will get overwritten every time I update, so you really do need that mods folder in the long run.

Later Work

Allowing new characters and tomes and so forth is gonna take some doing. Ideally these would be loaded from data files, but at the moment it’s all in code. Conceivably I could run Python scripts out of mod folders and let them monkey-patch the game, but that’d be total chaos with multiple mods involved! There’s a fair amount of ground work to be done here and this is the task I have the most uncertainty about. It’ll probably come last.

As for Steam Workshop, I had a notion that it’d just need a game that knows how to load mods out of a mods folder. But no, I’ve gotta delve into the Steamworks API to make that work. Once again, it’ll take some time, but it’s looking pretty feasible.

Release v1.05

This is a bug fix release for Steam and Itch versions. The changes are:

  • Fixed crash at start up when there’s non-ASCII characters in the game’s install path, or the player’s Windows username.
  • Fixed inability to save game when there are underscores or non-ASCII characters in the player’s Windows username.
  • Better error message logging.