For my first, and only, IF game so far I started with the idea of writing a sequel to H.G. Wells’ “The Time Machine” and exploring the idea of what happened to the protagonist time traveler after he disappeared into the future.
I wanted it to have a narrative feel so I realized I have to have a few characters for the player character to interact with and puzzles as gating mechanisms for the story (old school text adventure stuff).
My original idea morphed into a sprawling epic that I had no idea how to implement as I spent months, maybe years, gathering ideas. Eventually I pared it back to something more manageable, created a dependency diagram to map out the flow of a more simpler game with a minimal number of characters, and started coding in August 2020 for Parsercomp 2021.
Since it was my first time writing Inform 7 and time was tight, I was forced to pare things down even further but was please with the final entry (currently working on v2.0, sick of it, hope to release by the end of the year).
My next game has a different genesis. Tentatively titled “Muskville,” it will have a simulation back-end similar to Infocom’s “Suspended” but over the past few months I’ve realized that it needs a more “human” element to it so I’m considering the option of adding interstitial stories and vignettes using Inform 7 scenes which feed back into the simulation aspect.
I guess for me it starts out one of two ways: with an interesting technical challenge (link) or an interesting dramatic situation or scenario. Both will probably be in any IF game I create going forward but the initial Aha! seems to come initially from one of those two areas.
I do like the idea of building out from a core system like @DavidC suggested, but I just don’t have enough experience with the medium yet to do that (though, on second thought, I guess the simulation aspect of “Muskville” could be considered a core system. We’ll see.).
Update: I should also mention that I am focused right now on using Inform 7 exclusively and working within its constraints. Too often in the past have I been seduced by the latest programming language, framework, or tool instead of doing actual game development.