A Weird Imagination

Devlog: Supply Challenge Plus (1 of 2): requirements gathering

The problem#

Factorio comes with a scenario called Supply Challenge which is a shorter, more directed experience than the standard "Freeplay" game mode. It replaces the pressure from enemies attacking your base with a series of timed requests where you have to provided a pre-defined set of items within a time limit with a new request every several minutes. This both can be good for new players to have guidance on what they should be working on next and for experienced players as getting everything done within the time limit can be, as the name suggests, a challenge. As those are two somewhat opposing goals, I wanted to add settings to make it better for both use cases.

But first was the question that precedes many coding projects: has someone already done this?1 And the related question: has anyone suggested doing it and what features did they find important that might be worth considering in the design?

Why?#

For a personal project that possibly no one else is going to use, it's not immediately obvious why I care what features other people might want. But there's a few reasons such a search can be valuable in addition to the obvious that other people might use what I create. First, finding other users wanting the same features I want is validation that those features are good ideas. Other people may have thought of features that I hadn't thought to implement but actually want. And even for features that I am not interested in implementing at the moment, keeping them in mind may affect the design.

Initial ideas#

My initial plans were that I wanted to be able to disable the time limit for new players but also have an option to leave the countdown but have it be unenforced as a practice mode for experienced players. I also wanted to adjust the display to make it easier to tell what will be requested in future levels as the display only shows one level ahead and being able to plan further than that is useful.

Past that I had ideas about possibly being able to somehow define custom challenges (either as a setting or from another mod) and use a normal map and possibly continue playing like normal freeplay after the challenges were all completed.

My findings#

Mod portal#

Nearly all user-made content for Factorio is posted to the official Mod Portal, simplifying the search for existing projects. Otherwise a general web search or maybe searching GitHub can work. Although, of course, searching depends on knowing the right keywords.

Looking for "Supply Challenge" on the mod portal, I found two results that appeared relevant.

Most similar to what I had in mind was MoreTimeSupplyChallenge, which is a modification of the Supply Challenge scenario where the only difference is all of the time limits have been multiplied by 10. This isn't quite what I wanted since it leaves the time limit in place, making it trivial by making it much longer. Note that it hasn't been updated to support the latest version of Factorio, so it only showed up when I disabled the default filter to include only up-to-date mods.

Homeworld is an overhaul mod that is described as being focused around "supplying" a homeworld. As an overhaul, it involves major changes to the gameplay, but might be what an experienced player is looking for in an more involved game with the more directed requests aspect of the Supply Challenge scenario.

Forum posts#

My next step was to look for discussions about the Supply Challenge scenario. I did do a general web search and searched official Factorio subreddit, but I did not find anything relevant. Unsurprising because a lot discussion happens on the official Factorio forums. (There's also a Discord, but those are both difficult to search and require logging in to view links.)

Minor feature requests#

I did find a request for removing the timer entirely.

This post suggested a specialized autosave mechanism to save every new level instead of every five minutes, which is an idea I hadn't thought of, which I added to my desired features list. The reply suggests it's not technically possibly as described, but the autosave API does now allow mods to assign custom names to autosaves.

This feedback suggests reworking the scoring to get rid of the bonus for ending a level early, to avoid the complication of gaming exactly when to click the "next level" button. I had never really paid attention to the score, so I wasn't thinking about that.

Different map#

There was one suggestion for a train-focused version of the scenario involving a larger map and some reason to need to use trains. The replies suggest some mods that encourage the use of trains, although the ones that have a concept of requests are overhauls. This could also possibly be satisfied by allowing the normal map generation to be used and playing on the "Rail World" preset, although even in that case the chests to deliver to should probably be far away from the starting area to encourage using a train to deliver to them. That would also require either starting with trains or giving the player enough time to develop trains before they're required to deliver anything there.

More levels#

There were multiple requests effectively asking for more levels in the supply challenge. "Supply Challenge Mode V2.0" goes into more detail suggesting a system of variant levels/maps with weekly challenges, focusing more on the challenge part than the directness part, including suggesting a practice mode.

There are multiple threads suggesting similar variants of a "demands" system where as playing the game, you're occasionally presented with a demand for a certain number of some item within some time limit, and you lose if unable to fulfill it. This is sorta like the levels in the Supply Challenge, except unlimited levels have to somehow be generated and they don't necessarily happen immediately one after the other.

Conclusions#

Looking at all of these posts gave me an idea of the variety of experiences people were looking to get out of the Supply Challenge and similar scenarios. Some people wanted just the directed play without time pressure or enemy pressure. Others wanted a set timed challenge, but with more variety in the requests and map. And finally there were those looking for the directedness to extend indefinitely into freeplay, which I had not considered.

That last part seems like a more major departure from the base concept, although it could be thought of as modifying the level list the game starts and allowing for levels with no requests ("Next Request In # Minutes").

Additionally, I got some ideas about minor features like the autosave idea and perhaps adding some options around how the score is computed.

Notably, I didn't find anyone with the same complaints I had about not being shown what was coming in the future levels. That said, there were multiple people commenting on the difficulty cliff caused by suddenly needing to supply fast transport belts, which are quite difficult to research and produce within the 10 minutes you have if you don't know that's coming. That was the impetus for me thinking about how changing information shown to the player could alleviate that artificial difficulty.


  1. Vernor Vinge's novel A Deepness in the Sky imagined a future where so much software had already been written, there was no point in writing new software, and therefore instead of programmers, they had "programmer archaeologists" who searched through the vast amounts of existing software to cobble together solutions, as described in this blog post. We may not live in that future yet, but it always good to stop and check whether you're reinventing the wheel. 

Comments

Have something to add? Post a comment by sending an email to comments@aweirdimagination.net. You may use Markdown for formatting.

There are no comments yet.