Nightinggale
Deity
- Joined
- Feb 2, 2009
- Messages
- 5,279
I keep running into players, who have issues figuring out the game contents or simply feels like not daring to try the mod due to too much new stuff at once and I have been wondering what to do about it.
I have an idea. Lock game contents from the start and unlock it with certain trigger conditions, each trigger providing a popup window telling what happened. This should be done in xml alone if possible, though a bit of python might be needed. Time will tell.
Implementation
The idea is based around 3 xml files: difficulty level (called handicap in the files), events and CivEffect. Somebody asked if CivEffects are promotions for players and that's a good way to explain it. It's something players can gain and it will have various effects. The main feature needed here is one, which is thought up for supporting techs: unlocking units, buildings etc. While it can unlock, it can also lock the same contents. It is +1 vs -1 in xml. This means code, which should be written anyway eventually if we are ever going to get techs added would work for this tutorial as well.
A new difficulty level should be added, be the easiest one and called Tutorial or something of that nature. Add that difficulty levels can grant CivEffects for human players (could add for AI players as well for completion, but strictly speaking not needed for this) and Tutorial difficulty can add a CivEffect, which disables a whole lot of contents. New players will then not be overwhelmed when starting a game.
Add a new file for event triggers, which is only used at tutorial difficulty. Allow Events to provide a CivEffect to a player and tutorial event triggers will be able to unlock some of the locked contents. Tutorial event triggers should be of the same class as the current event triggers or a child class of it. As such it can use the existing code, making the main difference that they are separate in xml and only one is looped in none-tutorial games (performance consideration). I designed CivEffects to avoid slowdowns when adding more entries.
How it should feel for the player
Starts off with very few unit types and building types. Events such as "stored 50 tobacco starts event to unlock tobacco building chain and tobacco yield". Master tobacconist could be unlocked by selling tobacco in Europe.
Colopedia should filter out everything the player can't use meaning colopedia starts mostly empty and gets populated as the game progresses. Tutorial events should unlock some tutorial message, which stays in Colopedia under a new category.
Issues with this
Time. It will take a lot of time writing all this. Programming (apart from CivEffect code) appears to be minimal and the CivEffect code will have to be written anyway if we are to get techs into the game. CivEffects can also be used together with Founding Fathers, traits and some other ways meaning adding new CivEffect features unlocks a lot of xml possibilities. As such "extra" programming hours dedicated to code exclusively used for this feature seems to be reasonable.
The main problem is that once the programming is done, somebody would have to fill out xml to get this working. I would prefer this to be somebody, who isn't already modding because that way this time consuming step won't take time off other features. There is a channel in the discord server dedicated to translations and while it's mainly used for improving English at the moment, it does allow multiple people to coordinate when working on the same task. I imagine creation of a channel dedicated to the tutorial as that will allow multiple people to coordinate creation of tutorial events.
Community feedback
Now the question is: do we have people who are able to do this?
Regardless of the outcome of this thread, nothing will happen until at least after the next release. Also I would like to hear if other people have ideas regarding how to deal with the issue of introducing new players.
I have an idea. Lock game contents from the start and unlock it with certain trigger conditions, each trigger providing a popup window telling what happened. This should be done in xml alone if possible, though a bit of python might be needed. Time will tell.
Implementation
The idea is based around 3 xml files: difficulty level (called handicap in the files), events and CivEffect. Somebody asked if CivEffects are promotions for players and that's a good way to explain it. It's something players can gain and it will have various effects. The main feature needed here is one, which is thought up for supporting techs: unlocking units, buildings etc. While it can unlock, it can also lock the same contents. It is +1 vs -1 in xml. This means code, which should be written anyway eventually if we are ever going to get techs added would work for this tutorial as well.
A new difficulty level should be added, be the easiest one and called Tutorial or something of that nature. Add that difficulty levels can grant CivEffects for human players (could add for AI players as well for completion, but strictly speaking not needed for this) and Tutorial difficulty can add a CivEffect, which disables a whole lot of contents. New players will then not be overwhelmed when starting a game.
Add a new file for event triggers, which is only used at tutorial difficulty. Allow Events to provide a CivEffect to a player and tutorial event triggers will be able to unlock some of the locked contents. Tutorial event triggers should be of the same class as the current event triggers or a child class of it. As such it can use the existing code, making the main difference that they are separate in xml and only one is looped in none-tutorial games (performance consideration). I designed CivEffects to avoid slowdowns when adding more entries.
How it should feel for the player
Starts off with very few unit types and building types. Events such as "stored 50 tobacco starts event to unlock tobacco building chain and tobacco yield". Master tobacconist could be unlocked by selling tobacco in Europe.
Colopedia should filter out everything the player can't use meaning colopedia starts mostly empty and gets populated as the game progresses. Tutorial events should unlock some tutorial message, which stays in Colopedia under a new category.
Issues with this
Time. It will take a lot of time writing all this. Programming (apart from CivEffect code) appears to be minimal and the CivEffect code will have to be written anyway if we are to get techs into the game. CivEffects can also be used together with Founding Fathers, traits and some other ways meaning adding new CivEffect features unlocks a lot of xml possibilities. As such "extra" programming hours dedicated to code exclusively used for this feature seems to be reasonable.
The main problem is that once the programming is done, somebody would have to fill out xml to get this working. I would prefer this to be somebody, who isn't already modding because that way this time consuming step won't take time off other features. There is a channel in the discord server dedicated to translations and while it's mainly used for improving English at the moment, it does allow multiple people to coordinate when working on the same task. I imagine creation of a channel dedicated to the tutorial as that will allow multiple people to coordinate creation of tutorial events.
Community feedback
Now the question is: do we have people who are able to do this?
Regardless of the outcome of this thread, nothing will happen until at least after the next release. Also I would like to hear if other people have ideas regarding how to deal with the issue of introducing new players.