We-the-People-civ4col-mod / Mod

This is the repository where the mod resides.
89 stars 37 forks source link

(Mis)Education issues #122

Open devolution79 opened 5 years ago

devolution79 commented 5 years ago

There's been a number of discussions concerning this in the forum over the years. My main issues with this system is the following:

Of course the AI already has a number of problems with this system already but that is another discussion...

Nightinggale commented 5 years ago

We could scrap the education system and integrate it into learning by doing. Set a colonist to work as a fisherman and he will progress his education level by 1 point each turn. Assign a colonist to a school and he will progress with x points each turn, x being a number from BuildingInfo (xml) of the school building. We could also consider working providing 10 points/turn because then we can make a school building give 15 or 25 etc. It also supports that we could assign something like +10% education speed in the future, though due to int rounding, change of education speed like that should ideally apply to the number of points required to gain the expert status. 1 +10% = 1 while a goal of 20 - 10% = 18.

Using the learning by doing system requires learning by doing to get an overhaul as well. See #77

civplayer commented 5 years ago

I am concerned that a 'slave' could just become a 'free colonist' while this sometimes happened this could be portraying history in an inaccurate way as most slave individuals did not receive freedom in colonial times. Maybe a slave could become more skilled, or if engaged in a job like statesman or a preacher become free.

Perhaps if a slave was to get experience by doing the player could have a chance to free the slave by paying manumission (even though in reality slaves sometimes paid for their own manumission). For the player this could be a benefit by giving bonus liberty bells and removing all escape chance.

If player did not want to pay manumission the slave becomes skilled (but cannot become statesman because that does not make sense). Any skilled slave will actually have an INCREASED escape chance because they are now more familiar with the New World. If it could be implemented the slave could join a colonial or native faction.

Nightinggale commented 5 years ago

I would say educating slaves and gameplay considerations are too complex to just add them into the discussion about the education system and how to implement it.

This means for the purpose here, any mention of slaves should be related to how the engine could handle slaves and which options the various solutions would provide. If we should actually implement education of slaves and how it should work related to gameplay should be a debate in a different ticket.

abmpicoli commented 5 years ago

I like the idea of adding school learning to learn by doing: let me get if I understood well... The player would set the profession the colonist will actively learn, right?

So, a colonist wants to become a fisherman: while he is working in the fisherman profession, it will gain 1 learning point per turn. If he is at a school, it will gain, say, 3 learning points per turn? Maybe we could add an extra if there are experts in the same city, say, 5 learning points if there is a fisherman in the city... And , even more interesting, allow assignment of both student and professors to school jobs... Say, if there is both a fisherman and a colonist at the same school, the colonist would get, say, 10 learning points per turn...

orlanth commented 5 years ago

I had actually not planned on using the learning by doing system from RaR; mainly because I’d like players to make a conscious strategic choice in deciding to invest in focused education/training that will decrease production now, but eventually pay off with particular educated/specialized units they may want in the future. The LBD system may be nice as a separate feature, but really seems like a separate concept in that it does not force any strategic choice between prioritizing near term output now versus an investment in productivity in future.

The 2071 mod did not use RaR Slaves units, but does have several somewhat analogous unitclasses that start out with specific limitations, and need Education to unlock other possibilities (e.g. Refugees and Proletarians, which need to be educated to a Free Colonist in order to even begin some of the more scientific professions). Because many of these unitclasses do not map 1-to-1 to a particular Yield or Profession, their upgrades could not really work with LBD, but they could potentially use the vanilla Education system.

Nightinggale commented 5 years ago

Disabling LBD can be done in xml and I think it's enough to set the ExpertUnit tag to NONE in ProfessionInfo (or at least it can be made that way).

The other part also has something to think about. What about units, which can be taught a school, but not gained through LBD. Units like soldiers.

Maybe it would be best to store experience points in UnitClass rather than professions. Students can then be assigned a UnitClass while studying and gain experience in that one. That should allow a school system, which can teach experts, which aren't LBD compatible.

Also everything should be possible to access from xml, like we shouldn't enable teaching governors in school buildings. In fact how do we handle the school building level when using the new system? Some units require a certain level. That should still be present and configurable in xml.

abmpicoli commented 5 years ago

Was the feature of units becoming veteran soldiers removed?? If I remember well, the original civ4col had something like criminals becoming indentured servants after some combats, and free colonists becoming veteran soldiers...

Nightinggale commented 5 years ago

Soldiers get better after a number of combats through promotions. Classic Colonization didn't have promotions and changed the unittypes instead. In short: yes units can't change through combat experience, though they can gain experience instead.

I certainly wouldn't mind if we upgrade LBD to upgrade soldiers as well. In fact ideally it should affect all units. However we still have the issue of what to do about units where LBD becomes problematic.

abmpicoli commented 5 years ago

Focused training and learn by doing can be made complementary. it is just a matter of having the option of specify what the unit "wants" to learn... Maybe provide a "specify learn path" option for the units. This would make the unit gains "learning points" by working at the task specified, but not with any other profession. This will also solve the problem of bug #77 .

As for the learning buildings, we could have that schoolhouses "increase learning points for the professions X,Y,Z"... while colleges "increase learning points for professions X,Y,Z,A,B,C" ....

Alignn commented 5 years ago

Assigning a colonist to the school could make them a Teacher instead of Student. They'd generate a certain number of LBD experience points, which get evenly distributed among the (non-expert) units in the colony, thus integrating the two systems. Better schools just means more experience points, as well as more space for Teachers.

This would however mean a colony with only one non-expert colonist and a high level school would quite quickly turn that colonist into an expert, but perhaps that's fine as it does require an initial investment.

Nightinggale commented 5 years ago

Somehow it doesn't sound right to work as a full time miner and then become expert faster because there is an expert somewhere else. If you work full time you don't also go to a school to learn stuff. Also it doesn't sound right that the expert prospectors should work at the school while free colonists work in the mines. Your output will suffer so greatly that you lose interest in educating more expert prospectors.

We can let the imagination run wild regarding what to do. We can mod xml, GUI, data containers and game logic as much as we like, meaning we can leave the vanilla thinking entirely if we like. We can give schools two rows of slots, one for teachers and one for students if that is the approach we prefer.

In short: we shouldn't try to fix the current system, which is a hacked addon to vanilla, which itself wasn't great to begin with. Instead we should figure out how we would like the system to work if we are to write it from scratch and not be limited by vanilla thinking.

Alignn commented 5 years ago

Sorry, I meant that the Teacher profession increases the experience gain for all colonists regardless of profession, and the expertise of the Teacher doesn't matter (unless they're an Expert Teacher) - the way I imagine it is the teachers go around and help the colonists figure out how to improve their skills.

dcrookston commented 5 years ago

If I were starting from scratch I'd do it like this:

A new school is a blank slate. You add to the list of professions that can be learned there by placing someone of that profession in the school for X turns, maybe 2. Then that school can teach that profession forever. "Teachers" get their own slots separate from students so you don't have to choose between adding a profession and training a student.

Keep the requirements of school, college, and university for educating progressively more valuable units.

Also increase the required time for an expert to dwell in the school by a factor of 2 for each more difficult level. So college level experts need to stay in the college for 4 turns before the college gains the ability to train that expert type, and university level experts require 6 turns to unlock their profession.

I would also restrict the number of profession slots to force players to make choices about what can be taught where. For example, a schoolhouse might get 4 slots, a college might get 8, and a university might get an additional 2, for 14 total professions that can be taught in that city. There are a LOT of college-level professions but not many at the university level which is why I would add fewer slots for the last upgrade.

Have the player choose what profession the student will learn when they're placed in the school. Require a different number of "books" for different profession levels. This means that if you train a farmer in a university they will graduate much faster than a farmer at a schoolhouse because universities produce more "books" per turn than a schoolhouse.

I would also separate out military training from the school entirely and require a barracks to train military units. You could name them "Training Yard," "Barracks," "Military Academy," and then have a National Wonder called "West Point" or just "Military College." Training yards can train settler militias and scouts, barracks can train infantry, and academies can train cavalry and dragoons.

You could also throw in the ability to put new units into the barracks for a few turns to get their first 5 exp if they don't already have any, but restrict it to non-veteran troops since veterans already start with some promotions.

Finally, for learning by doing: I would make it a tremendously slow process, but boost it if your untrained person is working in the same city as an expert. So a carpenter working in the same lumber mill with someone untrained will show them the ropes and they learn faster. This creates an incentive to spread out your experts. I would also maintain the three tiered education cost suggested earlier in this post, so learning to farm by doing is much quicker than learning to be an expert statesman by doing.

Nightinggale commented 5 years ago

"Teachers" get their own slots separate from students so you don't have to choose between adding a profession and training a student.

Technically doable. However rather than hardcoding this, it would be nice if we could figure out some way of generic adding two types of slots. Maybe adding something like having two rows of slots and if a colonist is added in one row, remove a slot in the other row. That way we can have one slot->one profession even if two professions can use the same building. There are some concepts there to consider.

Learning from teachers from some certain slots will make doTurn faster because it will not look through all units each turn in order to look for new expert units for the school. It's questionable if you will be able to tell the difference though as it's not super slow right now.

Have the player choose what profession the student will learn when they're placed in the school. Require a different number of "books" for different profession levels. This means that if you train a farmer in a university they will graduate much faster than a farmer at a schoolhouse because universities produce more "books" per turn than a schoolhouse.

Pretty much how the current education system works, except for the different learning time for different education levels. Sounds good to me.

I would also restrict the number of profession slots to force players to make choices about what can be taught where. For example, a schoolhouse might get 4 slots, a college might get 8, and a university might get an additional 2, for 14 total professions that can be taught in that city.

This however sounds like it could become annoying really fast. It requires you to plan ahead quite a lot and it will punish players even more for not having many colonies. This limitation means 2 colonies will be more than twice as good as one colony and as a result the player ahead will move even further ahead. Games become boring if you are so far ahead that you feel like you can't lose. Adding more limitations, which favors many colonies will only make it more likely to get so far ahead that you become untouchable. You have to remember that it is possible to play with 2 plot catchment, which means players can get fairly far with a really low number of colonies, particularly on small maps.


Finally, for learning by doing: I would make it a tremendously slow process, but boost it if your untrained person is working in the same city as an expert. So a carpenter working in the same lumber mill with someone untrained will show them the ropes and they learn faster. This creates an incentive to spread out your experts. I would also maintain the three tiered education cost suggested earlier in this post, so learning to farm by doing is much quicker than learning to be an expert statesman by doing.

One thing I would like to point out is that luck plays a major role when starting a game. If you just happen to get expert farmers/lumberjacks/carpenters etc early on, you get productive fast. If you happen to say never get farmers or fishermen and can't train them at the nearby natives, you fall behind. Learning by doing compensates for this as it delivers sometimes much needed experts, which you could otherwise have problems getting.

In the interest of game balance, we might have to consider giving (possibly big) discounts based on the owned number of units by that player as well as the number of experts of the type in question. This means if you just happen to not get expert farmers by pure unluck, the game will let you train your first farmer fast while the next will take longer. Perhaps check competitors like if player A has 10 farmers and B has 0-1, B can get farmers faster with LbD.

Sure it might not be the most realistic approach to getting experts, but in the interest of game balance and keeping the game interesting, something like this should be considered.

LibSpit commented 5 years ago

I don't think your balancing concept is outside of realism, it would just be like certain nations having a glutton of farmers and so their population begin moving to other countries for those opportunities offered by a desperate nation in need of a certain skilled labour. Being an 'under the hood thing' no one will really know anyway, it jsut keeps them going at a similar pace.