Balancing Writing and Implementation?

Long-form: FWIW, I’m still working on my first game and it’s massive, but I didn’t realize it was going to be considered massive when I was in the early stages of putting together a quaint little puzzle chain and implementing a few scenes then utterly unconnected to any story but which it amused me to include. As in, if you took all of the possible criteria for determining game size and factored them all together (recent forum thread about that) my WIP will probably be in the top ten of all time? But that only happened by accident/naïveté/unwillingness to quit when I realized after a year’s worth of work that my undertaking wouldn’t be worth a pile of sheesh without another year’s work (and then coming to the same realization the next two years consecutively).

Room description length: I personally had a hankering to write lush descriptions, and painting a charming and whimsical fantasy world was one of my end goals right alongside providing a sufficiently entertaining series of things to tinker with or solve. But what ended up happening was testers got quickly burnt out seeing huge text blocks pop up every time they traveled to locs they’d been in before, or did a ‘look’ to refresh themselves on what else needed x-ing. At first I thought there was no help for it, because I had already labored over the descriptions for about 250 locs, 150-175 of which were unique and not just a slight variation on the desc of a certain region. However, the importance of the problem was sufficiently brought home to me by @kamineko, to whom I’m grateful, that with manifold tears and sighings, I went back through my entire game and wrote terse descs to represent all of the same locations. But since I couldn’t “bear” for the player to see the well-painted description on merely the first day they played, where they might continue to play the game for weeks or months and never see anything but the “mechanical” versions and forget what my game world actually “looks” like, I implemented some extra mechanics where the lush desc is used first and then every 7th time (whether traveling or looking), but the player can call up the full desc whenever with ‘ll’ instead of ‘l’.
Moral? Either keep your room descs to maybe (/mostly) 5-7 sentences, or prepare to write a firstDesc and a conciseDesc for every room…

7 Likes

Well, I can suggest BYOD which started as the prototype for the game mechanic that would power an epic parser cyberpunk opera prima that never came to be.

3 Likes

I don’t think you can balance writing and implementation, as every game is different, just as every author is different. Ideas come from anywhere and everywhere, so just work on what keeps you inspired. If you get tired or bored or run out of ideas, move onto something else or put it aside and come back to it later.

I don’t think I’ve heard the term ‘long form parser IF’ before. After reading the responses, it sounds like it could be either long, verbose, narrative games, or just long games in terms of playing time.

For the former, head the advice already given here. Players don’t like being bombarded by reams and reams of flowery text every time they enter the same room, especially when that text does not add to the game, requires you to repeatedly press Enter to get to the command prompt and all the noun phrases are not understood by the game. Every word is valuable. Consider rich, yet concise room descriptions where you can drill down (using EXAMINE) to get more detail.

For games that take a long time to play, they also take a long time to write. Two years or more is not unusual. There are people on here that have been working on the same game for a lifetime and have never published anything. You recognised this as a danger yourself. It’s better to write something small to get experience, rather than write something big that you get tired of and it never gets finished. You can always tackle that bigger project when you feel more comfortable with the whole design, writing and development process.

I’ve often heard the term ‘cyberpunk’, but didn’t really know what it was, other than gut feeling. So I looked it up. Now that I know, I can assure you that there are many cyberpunk games out there. A few have been mentioned here. There are also many retro games that would be considered cyberpunk and modern games written in languages other than Inform. SANTAPUNK 2076 comes to mind. This was written in Adventuron. A search for terms like punk, cyber, cyberpunk and steampunk reveals lots of potential games on CASA and IFDB.

5 Likes

I’m not a writer, but a couple things come to mind that I’ve seen people talk about…

  1. If you haven’t seen Emily Short’s Idea to Implementation it might be worth a look: it talks about a (non-exhaustive) handful of implementation approaches and there are a bunch of other IF authors in the comments going “wow, I’ve done all of these” or “this one works really well for me” or “I’ve tried this one and it doesn’t work for me at all.” So it’s a good reminder of just how different people are, and it might spark something for you.

  2. This is choice rather than parser, but I think Jon Ingold is pretty well known for wanting to separate writing from programming, and I think there’s a passing mention in his Adventures in Text talk that with 80 Days they could mostly sit down and write the narrative and then he’d come back and sprinkle stat changes through as appropriate. So I wonder… there have to be people who do something like that with parser games, right? Write the descriptions in a word processor (or even in Ink/Inky for a lightly interactive transcript?) and then come back and put them into the parser game later?

  3. If it’s less getting interrupted and more getting distracted by writing (or programming) when you’re trying to do the other: if you have a document where you jot down ideas so you don’t lose them, is that enough for you to let an idea go for now and keep on with what you’re working on? I know that works for some people. Also writer techniques like marking something with, e.g. “TK street name” (TK being a letter combination that doesn’t occur in english, so it’s easy to search for, some people think of it as “To K/Come”) and keep moving rather than searching for the perfect name…

I suspect you’ll have to experiment somewhat to find what works for you, though. Good luck!

5 Likes

Hear hear. This is also perhaps part of the reason that WIP culture hasn’t totally been embraced here. Here are some more reasons. One, standard save files typically break with game updates in most IF authoring systems unless care is taken with a custom save solution. Two, combinatorial explosion and unintended interactions become a thing for already completed and polished sections as you add more to the game. Three, the best way to get attention on a game is to enter it into a Comp or Jam, but oftentimes once it has been submitted once, it is disqualified for future entries as more content is added, possibly making update and expansion number 14 of your massive epic fall into obscurity. Four, the larger the whole game, the smaller the pool of testers willing and able to take on the project; you’ll often find folks intentionally noting a game is small in their request for testers as a way to signal a smaller commitment.

For all of these reasons and many more, people tend toward two approaches. One, they release episodic games on the same character or overarching story that are still functionally and narratively complete from each other. @dee_cooke 's Barry Basic series comes to mind. Or two, they work in silence for years compiling the whole massive endeavor before allowing the public a peek at their project, increasing the chances that economic woes, health issues, or general life bullshit will delay and/or completely derail the project.

7 Likes

Oh, and I’d like to add that, if you’re insistent on a large game that will be have multiple releases with new content, like a classic DLC or Expansion pack model, it’s best to put in the foundational work upfront to make this more feasible as you go along. Recommend you read through this short topic if you have a chance: What are your thoughts on Organisation for Sandbox Style Gaming?

2 Likes

So much good stuff here! I don’t even know where to begin answering everything in detail, so I’ll just put a few general remarks/responses up:

  1. What kind of long-form game do I want? I think optimizing for any one metric alone is probably a route to disaster and/or fluff, so I’m really aiming at a general feeling of immersion and prolonged discovery — the feeling on the player’s part that there’s a fair amount to the game and it won’t just stop short suddenly. I also care about atmosphere and love writing descriptions, so there’ll probably be a lot or prose, for sure, though. I definitely don’t intend to include a lot of dead rooms though. I want the map to be fairly small but dense with interesting landmarks and locations that the story comes back to multiple times. Thus, to make the city big enough I think I’ll take the idea I saw of making mock up rooms just to see how many moves between places feels natural. Then I’ll fill those rooms with side content — street vendors with NPCs who have some interesting conversion, shady looking black market dealers, punk venues/clubs, etc.
  2. Speaking of lots of prose: of the two routes to deal with copious prose without overwhelming the player that I saw suggested in this thread, I’m really not sure which one to choose. Putting most of the flowery, descriptive details on decorations instead of in room descriptions has the advantage of being more prose frugal, since I don’t have to write a description of each room twice; however, it has the downside of leaving much of the atmosphere broken up and in places someone might not see, instead of being a natural part of exploration. Going with first and second descriptions has the opposite issue. For now, I’m going to go with first and second descriptions, though, since when I’m building out the world I can write those less detailed descriptions as placeholders, and then when I come through to add prose I can turn rhe original sparse ones into the second descriptions. Also, @johnnywz00’s idea to bring back the long descriptions every so often is an excellent one.
  3. Mechanics were mentioned several times, and that’s one of the things I will sheepishly admit I don’t have a whole lot of ideas for unique mechanics for my game. Which is probably a very bad thing, honestly. I think the AR system everyone has built in in this world, or the fact that the protagonist starts out the game with a missing arm and has to get one and choose which one to get, might be places to start, though. Additionally, there are two big set piece puzzles that hinge on directing people with different skills to do things within a relatively limited timeframe, while avoiding discovery. I think that’s pretty good.
  4. The advice on writing sounds very good. I think switching back and forth between them depending on what inspires me at the moment is a really good idea that will help me keep my momentum.
  5. As for starting with a shorter game — I agree that would be wise. The problem is, if I’m not inspired to do it, I don’t know if I’ll be able to finish it. This game is what I’m really inspired to do. However! The idea of episodic releases is very intriguing to me. It seems like it could solve the length related issues without compromising my work as a whole, and then when I’m done I could put them together.
5 Likes

I wasn’t really considering writing a large game and then doing DLC or expansion packs later. But now that I’m considering an episodic release this might be relevant to me anyway.

1 Like

I’d be happy to post the relevant code used, but it’s not that complex if you’d rather implement it your own way…

2 Likes

I’m curious to see how you did it, but I think ot would be better at this point for me to implement as much as possible myself, so I can learn TADS well.

3 Likes

By all means! Being the amateur self-taught programmer that I am, figuring out and achieving something with code is almost as much to me as any end result to be gotten out of it… when I dabble with C++ I use SFML just to get graphics on the screen but beyond that I don’t go looking for libraries to make a game with premade 3d bodies and all that, I just ask myself, can I think through and figure out how to make a maze generator, or a billiard game etc…

2 Likes

Funnily enough, I took the same approach when I started a project using OpenGL. It was very rewarding, and I wanted to turn it into a small but fully fledged Fallout style FPS RPG before I realized I can’t draw/3d model lol. I still want to go back to OpenGL at some point…

2 Likes

Has anyone here read anything by Alistair Reynolds? Chasm City maybe? That and Cyberpunk: Edgerunners are my biggest inspirations for the IF game I’m working on now.

2 Likes

Absolution Gap was great. If that kind of SF world and that kind of writin is your inspiration, I’m certainly interested.

2 Likes

Awesome! And yeah, the Revelation Space series has long been my main source of inspiration as far as writing, tone, aesthetics, world, etc. Of course, since I’m melding it with cyberpunk for my first game, it will be far more earthbound and street level than Reynolds’ typical grand space opera, which is why I referenced Chasm City particularly, but the influence is strong nonetheless. I do have my own thematic and philosophical fish to fry, however.

3 Likes

Afterthought: I found this to be much less important for leaf node locations/dead ends where you arrive, do something and leave the way you came. Maybe provided that there’s not twenty things they’ll need to “x”, and that it’s not too long, you can probably get away without writing a separate conciseDesc for locs like that. But almost anything that connects to more than one other loc, yes…

TADS note: I defined conciseDesc to print regular desc by default, so you don’t have to override a conciseDesc on every room to keep things working…

3 Likes

Annoyingly, upon further research it doesn’t look like adv3Lite has the concept of a first and subsequent description for rooms, or anything akin to that, which means I’m going to have to implement all this a bit more manually by making every description property a method. Grrr.

2 Likes

I’ll show you my approach, unless you want the challenge…

2 Likes

image
My laptop internet’s down, so…

Sorry: for Lite actionTime should be turnsTaken. And yes, I forgot a semicolon after modify Room in pasting…

2 Likes

Here you go, @alexispurslane. I processed @johnnywz00’s code through an image-to-text reader, and then made the edits that were mentioned later:

modify Room
    interiorDesc {
        if (libGlobal.fullDescMode || !descCt || descCt && !(descCt % 7))
            desc;
        else conciseDesc;
            ++descCt;
    }
    conciseDesc = desc
    descCt = 0
;
modify libGlobal
    fullDescMode = nil
;
verbRule(FullDesc) ('fulldesc'|'fulldescs'|'full' ('room'|'location'|) ('descs' | 
    'desc'|'description'|'descriptions'))('off'l'on'|) : IAction
    execAction {
        libGlobal.fullDescMode = !libGlobal.fullDescMode;
        "Room descriptions have been toggled to <<libGlobal.fullDescMode ?
        'always display the full description' : 'only show the full description upon
        first entry and periodically thereafter'>>.";
    }
    turnsTaken = 0
;
verbRule(FullLook) 'full' 'look'|'fl'|'ll' : IAction
    execAction {
        local save = libGlobal.fullDescMode;
        try {
            libGlobal.fullDescMode = true;
            execNestedAction(true, gActor, LookAction);
        }
        finally {
            libGlobal.fullDescMode = save;
        }
    }
;
5 Likes