I haven't found any Twine documentation providing advice on how to choose a story format, but this choice seems awfully important. (For that matter, I'm not entirely clear on how to choose a Twine version.) What are the important considerations? When does it make sense to choose one over another?
I had initially assumed they were just style sheets, but it's becoming increasingly clear to me that they are something more akin to mutually incompatible programming languages with different capabilities.
Basically each story format is a unique mini application, and the first part of this comment in the Two quick questions about upgrading to Twine 2.1.3 thread gives a basic overview of the division of responsibilities between the Twine application and the story formats.
There is no easier answer to which one to choose because it depends on many things, some of them being:
1. What type of story/game are you trying to create?
This can range from a simple CYOA to a full blown multi party member MUD like RPG.
2. What multimedia features do you want the story/game to have?
From text only to full audio/video/animation, and everything in between.
1) Mostly a CYOA because mostly I want to tell some stories, but with a simple JRPG style combat system and some simple dynamic content (one conversation the first time you meet someone another conversation afterward, also some random encounters) in order to make replaying to explore other endings less dull. Also, it would be really cool to be able to distribute the game through steam should it turn out well.
2) Just static pictures would be pretty amazing. Music, sounds, and animations have not really seemed important to me in the visual novels I've read thus far.
I don't know if python is an option, but one option I've been considering is using Twine to prototype the game and then making the final version in Renpy. (The automatic mindmapping of Twine really impressed me, and the lack thereof in Renpy was a huge turnoff, but once i have the story prototyped, the lack of mapping would seem like less of an issue, and the larger support base and Steam support would seem really appealing.) In that case, programming in python would be appealing, but I don't know if that's even an option.
Do you have any advice?
re: Question(s) 1. All three story format support this.
No story format has a built-in combat system.
Nor any NPC / Inventory / Crafting / etc.. systems for that matter, so you will need to build your own or find one that someone else has implemented and modify it.
A Twine story HTML file is just a web-application and as such it can be converted to a Steam-based application (or a phone app) but the process is not trivial, but there are a couple of Authors (or teams) that have successfully done so.
re: Question 2.
All three story formats support displaying images using the HTML img element, while SugarCube also supports doing this with markup.
re: Question 3.
Each story format targets a slightly different built-in feature requirement / skill level of Author, although there is a large over-lap between Harlowe and SugarCube target audience, and if you think Harlowe's documentation is sparse then you should have a look at Snowman 2's. lol
re: rest... You would not be the first to do this, I myself do this with the games I release under a different pseudonym. It makes it easy to prototype the scenes and dialogue, and you can even use story variables to track stats and story elements. eg. CYOA lol