I’ve done most of the basics of the ritual UI now – there’s a lot of extra work that needs to be done, but I can save that for when I need a quick win. Next I want to make a new ritual of a different type to the previous ones, so today I’m going to talk about a specific ritual: The Ritual of Keen Sight.
The aim here is to make a ritual that has a specific purpose early in the game but might not be used later in the game (or may have a different use later in the game). I also want to make a temporary modification which can be repeated, which will add to the amount of possible user interaction.
The purpose of this ritual will be to make foraging do more. In particular, I want to make it faster to explore using the Ritual of Keen Sight, although thematically it would probably give slightly more resources too. So the ritual needs the following design:
- Make the ritual quick to complete
- We don’t want to spend a lot of time on performing the ritual; this is more about the effect as the benefit is temporary.
- 10 cycles seems reasonably quick, but is enough for it to be observable.
- The ritual must have a low cost.
- This needs to be resources available from the start, so some of herbs and wood. Note that currently there are more available initially, but later on this may be changed.
- It would be reasonable to be able to cast this very early on, after a small amount of foraging.
- A quick experiment (and some code inspection of foraging) shows that we should be able to get 30 herbs and 10 wood within 60 seconds of the game start, so that seems a good start point. If the foraging balance changes, we will need to revisit this.
- When the ritual is complete, a temporary boost is applied to player forage actions.
- The benefit must outweigh the cost, but not be excessive.
- The benefit needs to include exploration more than increased gathering.
- If we have 30 minutes of effect, and it takes 2.5 seconds to forage, we get 720 forages. Our cost is 40 items, so if we give a 0.2 chance of an extra item, we’ll get 144 items back. This is a small profit, but useful in the early stages.
- The main benefit is exploration, so we should provide a major boost – the exploration is going to be eclipsed by real exploration actions later, so we can have a big benefit. This ritual will give 2 times the effect of exploration.
- After a reasonably long period of time, the ritual effect wears off.
- This is intended to be used for a game session such that usually you won’t need to recast this unless you’re playing for a long time.
- 30 minutes seems an appropriate start point.
There’s a few observations about this that might be interesting to point out…
This ritual with its low cost and high desirability makes for a good early tutorial level ritual. I’m not sure how I can introduce it yet, but there might be something about it in the house, so if I use a passive exploration based tutorial, you’ll find this ritual easily.
I considered making this a instantly complete ritual , but there are two reasons I didn’t:
- Rituals should take time; it’s thematic that they would and normally they will, and, especially if it is a tutorial, it might be misleading if this one was instant.
- If rituals are often completed immediately, we will end up with a situation like in Realm Grinder where the game consists of clicking madly to set up everything in a few seconds and then closing the game. Having rituals take time means that there is an active decision as to which rituals you are going to perform in this session as there is a tangible cost in player time.
The ritual implementation is done as “research” internally, which doesn’t quite fit this model. However, there’s no reason why “research” can’t be a temporary thing as well, but I’ll need to rework the internals a bit.
We’ll need to do the following – hopefully this is everything!
- Add the fields to mark research rules as for temporary research, which is just duration.
- When research is complete, if the research rules indicate this is a temporary research object, add it to the temporary list instead of the permanent list and add it’s start time in ticks.
- Add modifiers as for the permanent research model.
- Save temporary research in the save game.
- Restore and reapply temporary research modifiers on load game.
- Add an update function to the Research Manager to time out the temporary research.
- When temporary research expires, remove all modifiers that were applied, and notify the player of relevant changes.
This has some attributes that are interesting
- If we change the rules, when we next load the game the modifier will be reapplied as only the fact that the research was applied is saved.
- If we change the duration of a temporary ritual, the fact we store start time means it will expire appropriately.
- Research without a duration is assumed to be permanent.
Also, for this particular ritual we will need to do the following:
- Create a new research type for this ritual and add the basic definitions to our research rules object.
- Create a new modifier type to modify the gather action
- As this is a fairly complex action, we will use a custom modifier, so that will need creating. As we don’t have any custom modifiers, that system might need creating too, although I don’t want to overengineer it.
I still have the implementation to actually do, although that shouldn’t take too long now I have a clear idea of what I’m trying to achieve.
This research brings some new UI jobs too – for a while I have known I need a notification system, and this is yet another example, as I need a way to say when a temporary effect is complete. It would also be good to give some feedback as to when the ritual expires, and since we can now explore a bit faster, it might be good to give a proper overview of how our exploration is going.
With this temporary boost in place, I can think about a few other boosts to offer, such as temporary boosts to building production. It might also be time to think about working a bit more on the buildings as at the moment they are a bit lacking, and now I have wood and rocks there could be non-garden buildings that would be appropriate.
Once I have a few more rituals in place I think it’ll be time to tidy up the loose ends and put another build out on this site.