New tutorial idea/how to introduce new players

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.
 
Great idea and very ambitious. By now I feel comfortable enough with the mod but when I was new to the mod I could have done with a tutorial.

Since the game is turn-based, a savegame to be downloaded plus a YouTube video link would have been good enough for me personally. So a savegame where a few units and towns would require action and a YouTube video where these actions are performed with an explanation. You could even have a small library of savegames with different topics covered. That way you can skip whatever you now already, for example if you only wonder about the function of happiness. I personally would not have needed to unlock game content.
 
Great idea and very ambitious.
Ambitious yes. Too ambitious? Maybe. It all depends on if I end up being alone with this or if it can become a group dedicated to this task. Right now I have no way of knowing how this will turn out.

I personally would not have needed to unlock game content.
Too much new at once has been used as arguments for not even trying the mod multiple times. Obviously not an issue for people, who are into the mod and hang around the forum, but outside this subforum that is an issue.
 
Lock game contents from the start and unlock it with certain trigger conditions, ...

You really confuse me now. :confused:
What you describe is exactly what the Tech concept is supposed to do ...

Step by step the Tech System is supposed to unlock:
  • New Units and New Promotions
  • New Buildings and their Upgrades (and thus new Indoor Professions and Manufactured Goods)
  • New Civics (thus maybe new game concepts like LbD)
  • New Roads and new Improvements
  • ...
Why design and implement such a concept twice?
And how would you want to explain your concept considering game play and immersion other than social and technological progress - which is basically Techs already?

If you really want to start such a monster project than why not directly implement Techs? :dunno:
(And yes, Techs can use CivEffects.)

And as I understood, we generally all agreed that we would like Techs.
(If we will ever be motivated enough to actually design and implement it and then also find a consense for the concept is another question.)
 
What you describe is exactly what the Tech concept is supposed to do ...
[...]
Why design and implement such a concept twice?
No one time should be enough.

The concept idea for techs is that TechInfo should contain requirements, research cost, graphics, text... well whatever we need for the game to know when to unlock it. However a tech itself can't unlock anything other than a single CivEffect. This means if we have TECH_FRIGATE, it unlocks CIVEFFECT_TECH_FRIGATE, which in turn unlocks UNITCLASS_FRIGATE.

Adding the extra step of putting the unlocking, well any bonus providing effect into CivEffects means once coded for Techs, it's also available for anything else, which can provide a CivEffect, such as traits, Founding Fathers, civics... the list is rather long. Would it make sense to have all those unlocking contents? Maybe not, but CivEffects can also provide free buildings, free promotions... well anything we would like to let it provide.

This means the programming required here is to allow events to provide CivEffects as well and once they can do that, they can use code written for techs. This is why this tutorial concept isn't as farfetched as it seems at first glance. It's designed to reuse code rather than needing custom code. There is no way we would implement such a concept only for tutorials. That's way too much work.
 
But a Tutorial does not unlock.
(Tutorials just explain game content, they do not unlock or change content.)

It only triggers a tutorial pop-up for explanation when the features / Unit / Buildings / ... gets made available by Techs.
(It is a very inevasive system that does not affect actual gameplay.)

Again:
It only explains things as they become available or when the player gets in contact with them.

----

Sorry to be so exact about this definition again.
But we should take care to not mess up our concepts here and in the end confuse everybody.

----

By the way:

There is actually hardly any need for a new "Tutorial System".

The current Python Event System is the originial Tutorial System of Civ4Col only with more features.
(If you want to use it as Tutorial System it is still possible since it is still there, simply deactivated.)
  • Unit X becomse available --> Trigger pop-up to explain Unit X
  • Nation Z meets you --> Trigger pop-up to explain Diplomacy
  • King contacts you --> Trigger pop-up to explain King features
  • First Treasure --> Trigger pop-up explain what to do with Treasures
  • First Pioneer --> How to build Roads / Improvements
  • ....
It was actually not working that bad but we simply deactivated the tutorial messages because we got bored by them.
(They can easily be activated again but they are extremely outdated and do not explain any WTP content.)

----

Summary:

If you are just looking for a Tutorial System all we need is already there. :thumbsup:
(There is no need to recode anything.)

All we would need is to fill the existing Tutorial System with content for WTP. :dunno:
(Simply effort for somebody who knows the XML of the Python Event System.)

----

Otherwise am not really sure if I understand what you want to do.:dunno:
But again we would already have a tutorial system if that is what you want.

Expanding it with new functions to trigger new Tutorial-Pop-ups for specific WTP stuff will be relatively simple and probably they could also be used to trigger actual Events.
(Then we would even have a win:win situation. The Tutorial efforts would allow us to create further Events.)

----

For the Python Event System it does not really matter if:
(It is basically the same for it.)

A) You trigger a Tutorial Pop-up that just explains and executes no actions. --> Tutorial System
B) You trigger an Event Pop-up that can execute actions by your selection. --> Our Event System

Technically and conceptionally it is basically almost the same.
In both cases you will simply have a Pop-Up with text that was triggered by a certain condition that you configured in XML or by additional Python checks.

----

Maybe check the existing Tutorial System before trying to design and code something new. :thumbsup:
(It is actually not that bad. It simply got boring for us after a while.)
 
Last edited:
Top Bottom