I am making a game similar to RimWorld and I am having trouble designing a good research/progression system.

In RimWorld, the player has a research tree and all technology to research is visible from the beginning. More advanced research is locked until you research simpler things first, like so:

RimWorld research system

However, a player may only research one technology at a time and does so by having a colonist sit at a research table and mindlessly wait while the technology is being researched, which seems pretty dull.

On a map that is quite limited and further exploration isn't possible (think 500x500 tiles), I want to make a progression/research system that unlocks new items (weapons, tools) and structures (furniture, production devices, turrets, etc...), that can then be crafted or built, and that is:

  • active (not having to select research and wait for it to complete over a while)
  • interactive and meaningful (brings the player into the research, making it somewhat interactive)
  • consistent and progressive (a player should know at least vaguely what they are progressing towards, but maybe not all game content should be revealed to them)
  • rewarding (research shouldn't be a chore, and every time a new technology is discovered/researched, it should be something to look forward to)

Some ideas I had (and why they're not good enough):

  • recipes/blueprints could have a chance to be dropped while mining (the initial mountains that generate would eventually run out, so this isn't sustainable)
  • killing creatures that drop clues/technology (the game has to have a limited amount of creatures, which probably isn't enough to match the required amount of technology that needs to be dropped)
  • random events happen, such as a plane crash, which results in a blueprint/recipe being left on the floor (this is a cool and exciting way to do it, but it's unpredictable and inconsistent)

Additional related questions:

  1. If the research tree were similar to the one in this question (example from Rimworld), as in, be very linear, would randomly obtained blueprints always unlock a recipe that's CURRENTLY available (one the player can see), or should it have a chance to unlock a recipe down the line which has unfulfilled requirements? (one that is locked and the player has no idea what it could be?

  2. Is a linear approach to research/progression good, or are there ways of making it less predictable and more dynamic?

How can I design a research/progression system that meets the goals described above, while avoiding the problems posed by my ideas so far?

  • 3
    \$\begingroup\$ Currently the question says "There are no wrong answers here, I'm looking for any ideas and suggestions." A.k.a this is an open discussion/opinion based question, which are grounds to close it. Currently you expose some ideas you have for the design, I suggest you point out what issues are there with those ideas that you want to fix and frame the question around that. \$\endgroup\$
    – Theraot
    May 31, 2021 at 12:44
  • \$\begingroup\$ Hey @Theraot. Indeed, this question is somewhat discussion/opinion-based, but that's because of its nature. I've edited the question to point out why my ideas aren't good enough for me. I'm looking to make those existing ideas better or for new ones that are similar in nature. \$\endgroup\$
    – caleidon
    May 31, 2021 at 13:49

2 Answers 2


Not boring

Not having to select research and wait for it to complete over a period of time

Well, science actually does take time when it comes to Research & Development in real life. Therefore, the player expects time shall pass between the beginning of a research and its final results, be it a couple of minutes or a whole day. At the same time, research isn't a linear process but it involves several steps: data gathering & analysis, experiments, testing... It usually depends on the field of study, e.g. robotics, biology, military. As a game designer, you can translate these aspects into opportunities to involve the player in the action; this leads to the next point,

Interactive and meaningful

How to bring the player into the research, making it somewhat interactive

Research, regardless of the scope (e.g. academic, industrial), needs resources: time, money, people. But also machinery, energy, materials, specimens, equipment... All these can become the first mean of interaction between players and your research system. Players can:

  • Provide resources for a research job: by providing the bare minimum (for example: 1 scientist, 1 computer, and 1 additional item), the research can start and will take a given amount of time.
  • Add more resources to a job: the player can increase the number of resources for a given job, e.g. putting more scientists to work or increasing/upgrading the current machinery in use. An upper bound is needed: an infinite workforce doesn't get the job done at a glance. Also, such resources aren't necessarily available to the player yet: if a research job is about a newly discovered mineral, more samples of such mineral are needed, and the player needs to go and harvest more.
  • Parallel tasks: a research job may consist of different tasks that can be performed independently before joining everything and move to the next step (like collecting data before analysing it or testing a scenario multiple times). If this applies, you may let multiple groups research the same technology (not different ones, as you stated) so that the player gets multiple chances (alternate "drop system") to make major discoveries and unlock that technology level.

I'm thinking about how OS threads work: a single-thread task can be improved by converting the program into a multi-threaded application (although that's not always possible, depending on the task). Different threads could need the same resources, then race conditions may arise and are to be dealt with.

Consistent and progressive

A player should probably know at least vaguely what they're progressing towards, but maybe not all game content should be revealed to them

An individual technology's description should be fine to give the player a good idea of what they are going to get when unlocking that technology. You could include both a description ("Microelectronics - Develop fine-tuned devices and controllers to create advanced utility items.") and a practical summary ("UNLOCKS: Jump packs, Brain wiring, Compact weaponry... REQUIRES: 1 scientist, 3 silicon, 10 energy.") the player can read to get information at a glance. Additionally, the research tree can be explored only up to a certain depth level, for example, the next available technologies only, or their 1st-level subsequent items too.

On the other hand, implications of owning a given technology may be explicitly hidden to the player. They may not know how to combine two technologies works until they randomly find a blueprint/recipe of some sort; BUT they could also figure out themself, in which case the game provides the blueprints automatically for ease of access. If they manage to discover tech combos by themselves rather than waiting for blueprint drops (which are a useful way of preventing players to be stuck nonetheless) they will feel smart and clever and believe they are making progress. They will feel rewarded.


Research shouldn't be a chore, and every time a new technology is discovered/researched, it should be something to look forward to

Completing researches is something to look forward to if it is needed. Any technology knowledge must have a purpose, i.e. a direct (and useful) application in your game. Why jump packs? There are high-altitude areas not directly accessible. Ground-penetrating scanner? Because stuff may be buried deep down the terrain. Gunlink? Improves efficiency on the battlefield. Every technology in your research tree shouldn't be there only to unlock more: the player may decide to explore a different branch of technologies, therefore everything available until that moment should work without making them think something is missing. If every technology can be applied in the game rather than being just a barrier towards something better, then players will exploit it until curiosity kicks in. Of course, the player will research certain fields in order to progress throughout the game, but objectives shouldn't be the only reason to do so.


Unlocking advanced blueprints may draw the player's attention and push them to explore and discover more about such items. But it may also become a distraction from the current and spoil the experience you designed because players aren't paying attention to the current game and are just focusing on upgrading that particular technology.

As you stated in the comments, you don't want players to just play around and randomly discover tech combos by themselves. Then, you could bind tech availability and blueprint ownership to prevent game-breaking experiences or "gold rushes" in one's subsequent games. In this case, no advanced blueprints shall be dropped at all, unless there's a valid reason to do so (an alien technology yet to be unveiled, for example). But, you shall be generous with other blueprints, as the player expects to progress faster in a certain field when their research is over.

A linear approach is neither good nor bad: it depends on your game. Complex systems aren't necessarily better, and simple ones can be good enough to get the job done. Remember that simple rules can create complex behaviours like in-game AI or procedural generation. Even if your player owns a handful of tech, the possibilities may be countless and even unpredictable: what if Jump packs and Gunlink make units too powerful? You shall also test and balance these scenarios.

  • \$\begingroup\$ Great stuff, very thorough. I especially like the "Rewarding" section at the end, as this has been troubling me the most. I'd just like to add that letting players combine technologies and figuring out research by themselves could be potentially game-breaking since every new playthrough they'd already know how to achieve everything from the previous playthrough. I suppose this could be a good or a bad thing. \$\endgroup\$
    – caleidon
    May 31, 2021 at 20:41
  • \$\begingroup\$ Two more questions - if the research tree would be similar to the one in my question (example from Rimworld), as in, be very linear, would randomly obtained blueprints always unlock a recipe that's CURRENTLY available (one the player can see), or should it have a chance to unlock a recipe down the line which has unfulfilled requirements? (one that is locked and the player has no idea what it could be? Secondly, do you think this linear approach to research/progression is good, or are there ways of making it less predictable and more dynamic? \$\endgroup\$
    – caleidon
    May 31, 2021 at 20:44
  • \$\begingroup\$ I think you'd better include these questions in your post so I can address them in my answer. My reply would be too long for a discussion in the comments :) \$\endgroup\$
    – liggiorgio
    May 31, 2021 at 22:49
  • \$\begingroup\$ I've edited the question :) \$\endgroup\$
    – caleidon
    Jun 1, 2021 at 5:30
  • 2
    \$\begingroup\$ In practice, most games tend to show the entire tech tree up front. If you don't you're mainly just punishing inexperienced players that don't know the progression. It won't prevent knowledge of what comes next, but will just make it harder for people who don't know offhand. I guess this could work with a randomized tech tree, but not knowing what comes next only makes your choice of what to do now less meaningful. I can't think of any game that has a hidden tech tree. \$\endgroup\$ Jun 1, 2021 at 14:31

I don't have novel ideas for you. I'll suggest some ideas lifted from other games, combined and adapted.

You could have the player discover recipes/blueprints via experimentation. You would have machines that let you transform or combine resources, and if you guess the right combination, you discover a recipe/blueprint. Thus, the recipes/blueprints you have access to are limited to the resources and machines you have access to. I'm thinking Minecraft.

Furthermore, you can make the experimentation - or the use of the machines in general - a mini-game, so you don't only need to guess the resources to use, you also need to win the mini-game. I'm thinking Spiritfarer. But don't let that limit the mini-game ideas.

Alright, so you are going to need resources. If the limited terrain is main issue (you say terrain and creatures run out), there would be some technology that allows the player to "detect" (the game can generate them on demand) previously unavailable resources, and they will be available on already existing terrain. I'm thinking Civilization.

There are other ways to make a game with limited terrain an open system. Going with the idea of events, they could range from the arrival of people (e.g. merchant) or wildlife (addressing the the limited creatures) giving you access some resources, to a meteor strike that destroy some of the terrain but also has some rare minerals. I'm thinking of some Minecraft mods.

These are things that may happen multiple times. And what resources they offer can be tailored to what the player has access to. In fact, you might have a background system that makes some events more likely or less frequent depending on the situation of the player, which would help in keeping the game interesting (not too boring, not too frustrating). I'm thinking SimCity disasters.

And sure, you might get recipes/blueprints by events too. You control multiple units, right? Perhaps an event is that a unit has an idea, and now you need to find the resources for that unit to make it, and if you manage you get a new recipe/blueprint. I'm thinking Dwarf Fortress strange mood.

There might be some argument for mini-games without the resources by the way. I'm not sure of the setting of the game, but you could have some decoding themed puzzles (Fallout hacking comes to mind) that you could just keep trying (or not). For example, you might buy some arcane book, or unearth an ancient tablet, or intercept some ciphered communication (which would be an event with the prerequisite of you having some machine for radio communication, I guess), and that triggers a mini-game, that if you win, gives you a new recipe/blueprint. I'm thinking Civilization (plus mini-games).

  • \$\begingroup\$ Thank you for the suggestions. How would you tackle the "research tree" problem, where a player should have a hint of what technology is going to be unlocked next with recipes, but shouldn't know all the end-game stuff that is yet to come? In Rimworld, you know everything that's about to come and I'd like to keep some mystery, but still have technology unlock in a predictable (possibly slightly random?) pattern. \$\endgroup\$
    – caleidon
    May 31, 2021 at 15:38
  • \$\begingroup\$ @franticabyss I don't see the trouble of only showing the next few technologies that can be unlocked instead of the full tree. For something more involved, I suppose you could also mark some technologies as "key technologies", and always show up to the next "key technology". I don't see it as big problem, just matter of tweaking what to show and what not. \$\endgroup\$
    – Theraot
    May 31, 2021 at 15:40
  • 1
    \$\begingroup\$ @franticabyss, maybe the player could chat with their scientist and ask him something like, "Any knew tech you working on?" The scientist could reply with something like, "Yeah, we've got a new jetpack design that's pretty sweet, but we need more titanium." If you expanded this, this could be a much more fun and personalized way to do a tech tree, while also adding some suspense, and telling the player what they need to do. Anyway, hope it helps. =) \$\endgroup\$
    – Millard
    Jun 5, 2021 at 3:09
  • \$\begingroup\$ @Millard That is a pretty cool idea, however in my game, you view the characters from the "god-perspective", and they don't necessarily communicate with you. Additionally, every character can be a potential scientist, so this approach would be harder for me to implement. Nonetheless, it's a cool idea, thanks! \$\endgroup\$
    – caleidon
    Jun 5, 2021 at 7:25

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .