• Civilization 7 has been announced. For more info please check the forum here .

A Fantasy Mod Planning/Recruitment

What happened to the other thread that was set up? I can't find it anymore.

So we've all got the files and the to-do list. How are we going to divvy up the labour?
Well, I decided to hold off on creating another thread. You can still find PawelS's original threadhere.
 
rocklikeafool said:
Can everyone access the mod yet? First open it in Modbuddy, then post it to the Steam Workshop (make sure only you can see it) and then subscribe to it. Then, open CivV and let it download in the Mod menu. Finally, set up a game and let it load. You should then be able to see everything that PawelS has implemented. Note that I'll be posting the "Alpha To-Do List" after PawelS checks it over.

I don't think you need to do all this - have you tried the method I described earlier?

me said:
Copy it to your Mods folder and build using ModBuddy.

rocklikeafool said:
Just so everyone knows, to be eligible for a Project subforum, we will need the following:
A published file -- Meaning, we'll have to post a file in a thread in the modpacks subforum.
Once we have that file in that modpacks thread, we'll have to generate enough interest.
That's the word down from The_J, one of the moderators.

OK, so it seems we need to create the alpha version first, using only this thread. I'll post the necessary information here.
 
I don't think you need to do all this - have you tried the method I described earlier?

It wouldn't run that way for me. Maybe others can get it to work your way. I may just be thinking too much. /shrug





OK, so it seems we need to create the alpha version first, using only this thread. I'll post the necessary information here.
Mhmmm.
 
Here is an updated list of planned Great People (including heroes) and what they do (I posted a list in the EoM thread, but it has changed since then):

  • Great Bard
    • Can start a Golden Age
    • Can give you a free policy (not in the alpha)

  • Great Engineer
    • Can hurry production
    • Can find a new mineral resource (not in the alpha)

  • Great Merchant
    • Can conduct a trade mission
    • Can find a new animal or plant resource (not in the alpha)

  • Great Sage
    • Can discover a technology
    • Can search for ancient secrets, which will create an improvement like the ones that are placed on the map at the start of the game - Ancient Ruins, Ancient Temple etc. (not in the alpha)

  • Pioneer
    • Can found a Town (improvement), and claim all tiles around it.

  • Great Prophet
    • Can found, enhance and spread religion (there are no missionaries or inquisitors in the game)
    • Can construct the Altar of the Gods building in a city (not sure if it will be in alpha)

  • Great General (different types depending on civ, in case of Orcs can be called Warlord, for example)
    • Combat unit (melee or mounted, depending on civ)
    • Provides a strength bonus to nearby land units

  • Hero (different types depending on civ - for example the Elves should get an Archer hero; generated by buildings like Taverns and Inns)
    • Combat unit
    • Should be good at things like quests and lair exploration (not in the alpha)

  • Great Mage (generated by Mage specialists; some civs can have UU replacements like Great Shaman or Great Druid)
    • Combat unit
    • Should play an important role in the magic system (not in the alpha), perhaps should be able to find new magical nodes

  • Great Admiral
    • Combat unit (ranged naval)
    • Provides a strength bonus to nearby naval units
    • Can repair fleet
    • Can find a new water resource (not in the alpha)

All heroes (last 4 on the list) gain experience faster than normal units, and get random "heroic traits" when generated. To maintain the balance, they should be weaker at start, and upgradable to stronger versions at some point of the game.

As always, ideas how to improve the system are welcome.

Edit: Combined two Pioneer actions into one, renamed Great Artist to Great Bard.
 
Will the GPs get randomly generated names? I'm just thinking that generic names like "Great Mage" are...well, boring. :lol:

Also, maybe there's some way that the Hero units would randomly be male or female (with race and gender specific art to accompany them).
 
[*]Pioneer
  • Can found a Town (improvement)
  • Can claim territory (like the Artist culture bomb in vanilla civ5)

Maybe it can be combined? I mean like a citadel in vanilla game, so you form a town on your borders outskirts and get tiles around the town.

Here is small idea how to make this improvement unique:
After making a town, all the tiles around the town stop generating any yields at all, while the town gets the half of those yields combined. This will make it look like people from the town collect all the food, ore and etc, and then give half to the city, which works on the town's tile.
 
Yeah, we can give all the GPs names. That will really flesh out the mod. It gives it a bit of lore.
Yeah, although naming them won't be in the Alpha, I'm thinking.
 
rocklikeafool said:
Will the GPs get randomly generated names? I'm just thinking that generic names like "Great Mage" are...well, boring.

Yes, they should have names. I'm not good at making up names, so I'm counting on the other team members here :)

Also, maybe there's some way that the Hero units would randomly be male or female (with race and gender specific art to accompany them).

That's something we can think about later, especially if we have appropriate unit models.

Yeah, although naming them won't be in the Alpha, I'm thinking.

That's not a hard thing to do, we just need to populate the Unit_UniqueNames table. So I think we can add the names to the alpha. Or you mean the ability for the player to change the names?

magzhi said:
Maybe it can be combined? I mean like a citadel in vanilla game, so you form a town on your borders outskirts and get tiles around the town.

It's a good idea, although I think all types of GP should have at least two possible actions to choose from... but maybe the Pioneer will be an exception, or we add another action... for now I edited the list so the Pioneer has only one action.

Here is small idea how to make this improvement unique:
After making a town, all the tiles around the town stop generating any yields at all, while the town gets the half of those yields combined. This will make it look like people from the town collect all the food, ore and etc, and then give half to the city, which works on the town's tile.

I like this idea, it will make the town something like a mini-city... it's too complex change for the alpha, but definitely something to consider in later stages of development.
 
That's not a hard thing to do, we just need to populate the Unit_UniqueNames table. So I think we can add the names to the alpha. Or you mean the ability for the player to change the names?
I just mean it's not top priority. If it gets in there, cool. If not, we'll do it later. /shrug
 
An idea for great peoples names:
What about introducing an actual random name generator. I liked how unique names for great people gave some story aspect to the FFH, but the problem was that they always run out at some point. Moreover, it was boring to see exactly same names game after game. I think it is possible with DLL, to name them by using name generator. It would work by getting a name from the list (eg: Gord), then adding a random prefix or suffix from prefix/suffix lists (eg: the Illusionist) and get a Gord the Illusionist for your great artist. In this system, if we are going to have big lists of names, surnames and prefixes/suffixes, the chance to get exactly same great person in two games in a row would be almost impossible. This will also help to all story tellers in story telling forum, who directly give free advertisement to the mod ^^ so more people would play it.
(huh, I hate those brainwashing business studies lessons)
 
An idea for great peoples names:
What about introducing an actual random name generator. I liked how unique names for great people gave some story aspect to the FFH, but the problem was that they always run out at some point. Moreover, it was boring to see exactly same names game after game. I think it is possible with DLL, to name them by using name generator. It would work by getting a name from the list (eg: Gord), then adding a random prefix or suffix from prefix/suffix lists (eg: the Illusionist) and get a Gord the Illusionist for your great artist. In this system, if we are going to have big lists of names, surnames and prefixes/suffixes, the chance to get exactly same great person in two games in a row would be almost impossible. This will also help to all story tellers in story telling forum, who directly give free advertisement to the mod ^^ so more people would play it.
I agree this is a cool way to add some flavor/replayability. Actually, I had developed a random name generator like this for the WHFB mod which is already in working order, you're very welcome to use it if you want so it won't go to waste. :king: It's based on an adaptation of Marnoks namegen from FfH, and includes multiple settings for all of the Warhammer civs, so it can create random names from a variety of nations / races, and also allows for random titles by alignment and religion. You can preview some of its output here, the listed names were randomly generated & will be different every time: :cool:

http://forums.civfanatics.com/showthread.php?t=340448

edit: ok, I found the original namegen code! :) unfortunately it's written in python and I don't know any lua, but the code is one fairly short block at the end, plus some arrays of name fragments, so I'm hoping it could be easy for someone who knows lua to port it to Civ5.
Spoiler :
Code:
import random

# change these variables to choose name settings
pCiv = ('CIVILIZATION_KURGAN')
pReligion = ('RELIGION_CHAOS')
pAlign = ('ALIGNMENT_EVIL')

for z in range (1, 20):

        lPre=["ta","go","da","bar","arc","ken","an","ad","mi","kon","kar","mar","wal","he", "ha", "re", "ar", "bal", "bel", "bo", "bri", "car","dag","dan","ma","ja","co","be","ga","qui","sa"]
        lMid=["ad","z","the","and","tha","ent","ion","tio","for","tis","oft","che","gan","an","en","wen","on","d","n","g","t","ow","dal"]
        lEnd=["ar","sta","na","is","el","es","ie","us","un","th", "er","on","an","re","in","ed","nd","at","en","le","man","ck","ton","nok","git","us","or","a","da","u","cha","ir"]
                
        lEpithet=["red","black","grey","white","proud","elder","younger","lesser","renowned","great","bold","wanderer","wayfarer","clever"]
        lNoun=["Longshanks","Foehammer","Widowmaker","Longstaff","Longknife","Winterborn","Autumnborn","Wintersun","Undermoon","Redblade","Morningstar","Oathtaker","Greymantle","Redmantle","Bluemantle","Greycloak","Redcloak","Longtooth","Hammerhand","of the Tower","Mountainkin","Stonehand","Longblade","Quickblade","Nimblefingers","Nimbleshins","Quickfingers"]
        lSchema=["CPME","CPMESCPME","CPESCPE","CPE","CPMME","CPMDCME","CPMAME","KCPMESCUM","CPMME[ the ]CX", "CPMESCXN", "CPMME[ of ]CPMME", "CNNSCXN"]

        if pCiv == ('CIVILIZATION_BRETONNIA'):
                lPre = ["baron","duc","comte","vicomte","chevalier","marquis","seneschal"]
                lMid = ["Abelard","Guillaume","Jean","François","Luc","Renard","Hugues","Ghislain","Henri","Guy","Thibaut","Etienne","Guillemin","Bernart","Gervais","Archimbaud","Aubert","Yves","Olivier","Païen","Alain","Guillemot","Charles","Didier","Blaise","Aymeric"]
                lEnd = ["Sanzier","Couronne","Artois","Lyonesse","Mousillon","Gisoreaux","Montfort","Bastonne","Dahaut","Bordeleaux","Aquitaine","Brionne","Quenelles","Carcassonne","Chimay","Vergerac","Ganet","Chalons","Naizon","la Tour","Soubeyrand","Montmorency","Gaön","Hauterive"]
                lEpithet = lEpithet + ["bald","fair","chaste","pure","lionhearted"]
                lSchema = ["CP[ de ]E","[Sieur ]CM[ de ]E","CM[ de ]E","[Jean-]CM[ de ]E","CM[ the ]CX"]

        if pCiv == ('CIVILIZATION_EMPIRE'):
                lPre = ["Berzelius","Heinrich","Hermann","Heinz","Wilhelm","Werner","Albertus","Dietmar","Hartmut","Wiegand","Rudiger","Friedrich","Theodoric","Gerhard","Eberhard","Johan","Johannes","Ludwig","Dietrich","Hans","Konrad","Klaus","Klausius","Ulrich","Kaspar","Melchior","Balthazar","Ambrosius","Stefan","Jurgen","Albrecht","Justus","Engelbert","Hanskristian","Sebastian","Henning","Erasmus","Anselm","Benedict","Bonifacius","Klement","Benno","Sigismund","Gottlieb","Siegfried","Theodosius","Leopold","Joachim","Uwe"]
                lMid = ["weiss","feuer","gelt","heim","pfalz","stein","kriegs","krausz","silber","schwartz","hammer","reich","gesang","holtz","brecht","faust","licht","breit","vogel","zwei","krupp","kampf","berg"]
                lEnd = ["Altdorf","Wissenland","Hochland","Stirland","Middenland","Nordland","Ostermark","Middenheim","Lüdenhof","Leitdorf","Talabecland","Freistadt","Krieglitz","Helmgart","Ubersreik","Feuerbach","Klingelfuss","Schultheiß","Breitbach","Nuln","Salzenmund","Weissbrück","Carroburg","Kleindorf"]
                lEpithet = lEpithet + ["bald","elector","fat","hammer","rich"]
                lNoun = lNoun + ["Heldenhammer"]
                lSchema = ["CP[ von ]E","CPSE[er]","CPSCMM","CPSCMM[en]","CP[ the ]CX","[Count ]CP[ von ]E","[Herr ]CPSCM[en]","CPSCM"]

        if pCiv == ('CIVILIZATION_ESTALIA'):
                lPre = ["Caballero","Conde","Vizconde","Marqués","Hidalgo","Duque"]		
                lMid = ["Pedro","César","Severino","Heitor","Pablo","Juanpablo","Diosdado","Rafael","Sancho","Diego","Hernán","Ruy","Lope","Álvaro","Salvador","Gaspar","Rodrigo","Luis","Cristóbal","Santiago","Juan"]	
                lEnd = ["Arcas","Paez","Oros","Pascual","Miraflores","Malagrima","Rivarios","Saavedra","Tejeda","Santillán","Merced","Calatrava","Alquezaro","Barboza","Muros","Magritta","Bilbali","Borgas","Zaragoz","Moleno","Almagora","Solsona"]
                lEpithet = lEpithet + ["Pious","Navigator","Inquisitor","Witchkiller","Conquistador"]
                lSchema = ["CP[ de ]E","CP[ de ]E[ y ]E","CM[ de ]E","[Don ]CM[ de ]E","CM[ the ]CX","CM[ de ]E[ y ]E","[Don ]CM[ the ]CX"]

        if pCiv == ('CIVILIZATION_TILEA'):
                lPre = ["Lorenzo","Piero","Francesco","Iacopo","Bartolomeo","Niccolo","Domenico","Andrea","Giovanni","Alessandro","Daniele","Piero","Federico","Corrado","Giuliano","Enzio","Furio","Donato","Giustiniano","Marco","Michele","Taddeo","Perugino","Dandolo","Cosimo","Gianni","Marioluigi"]
                lEnd = ["cavalcant","stracc","perugin","sforzat","tobar","amargh","chiar","luccin","lucan","remas","sartos","miraglian","pavon","trant","verezz","montecastell","loropian"]
                lEpithet = lEpithet + ["magnificent","rich","wealthy","courtier","sycophant","openhanded","serene","poisoner","usurper","sellsword"]
                lSchema = ["CPSCE[etto]","CPSCE[ino]","CPSCE[ese]","CP[ di ]CE[i]","CP[ dei ]CE[e]","CP[ della ]CE[a]","CP[ the ]CX","[Doge dio ]CE[o]"]

        if pCiv == ('CIVILIZATION_KISLEV'):
                lPre = ["Aleksandr","Boris","Grigor","Mikhail","Feodor","Aleksey","Pavel","Ivan","Iakov","Kyril","Leonid","Ygor","Yevgeny","Stjepan","Taras","Roman"]
                lMid = ["Slava","Pyotr","Sasha","Mstislav","Boleslav","Alyosha","Lev","Stanislav","Dmitri","Ruslan","Pavel","Oleg","Yuri","Dima"]
                lEnd = ["Ilych","Drubetskoi","Drubin","Kalugin","Chenchik","Orodoy","Ilyets","Orov","Dorodenko","Erengradskiy","Preslavskiy","Bolgasgradiy","Omenskiy","Ursunov","Tchorniy","Medvedev","Tomortovo"]
                lEpithet = lEpithet + ["trollslayer","terrible","fierce","proud","wolf","bear"]
                lSchema = ["CMSCP[evich]","CMSCP[ovich]SCP[ov]","CPSCE","CMSCE","CMSCP[ovich ]CE","CP[ the ]CX","[Count ]CPSCE"]

        if pCiv == ('CIVILIZATION_NIPPON'):
                lPre = ["Susano","Hideo","Morimoto","Minamoto","Taisho","Naruhito","Hiro","Tadataka","Yamato","Shouhei","Daisuke","Ichiro","Jiro","Nobu","Ryu","Taro","Takashi","Nobunaga","Ito","Takotsubo","Shoyu"]
                lMid = ["yoshi","yumi","kami","nori","yashi","kara","tori","masu","naga","shima","shide","mura","taka","wara","shige","nobu"]
                lEnd = ["mikoto","arima","hirobumi","takotsubo","aeyama","yamato"]
                lEpithet = lEpithet + ["calligrapher","calm","serene","devoted","oathbearer","honorable"]
                lSchema = ["CP[ o no ]CE","CP[ o no ]CM[moto]","CP[ no ]CMM","CP[ o ]CMM","CMM[ ]CMM","CM[ the ]CX","CEM[-sama]","CMM[ no ]CMM"]

        if pCiv == ('CIVILIZATION_CATHAY'):
                lPre = ["wu","yin","xie","xi","xu","jiang","li","liu","tsou","jing","yan","min","mian","chou","chu","chen","wang","yang","ming","tze","zhe","liou","chiang","wen","jing","gong","guan"]
                lEpithet = lEpithet + ["calligrapher","calm","serene","magistrate","highborn","warlord","learned","mandarin","steadfast","honorable"]
                lSchema = ["CPSCPP","CPPSCP","CP[ the ]CX","CPP[ the ]CX"]

        if pCiv == ('CIVILIZATION_IND'):
                lPre = ["krishan","krishna","desh","pradesh","hari","srinivas","dinesh","indra","anand","inder","ravi","jehan","arun","raj","rama","lakshman","govind","arvind","ahilan","das","kaushal","rajesh"]
                lMid = ["svara","rama","gopal","svati","mantra","krishna","jaira","gupta","kumar","chira","swami","raja","pandhya","bhartiya"]
                lEnd = ["ndasi","pinder","ya","bhat","vinder","vasan","i","vishnu","nandra"]
                lSchema = ["CPSCME","CPSCMM","[Maharaja ]CMM","CMM[ Khan]","[Raja ]CPSCME","CP[ Singh Khalsa]"]

        if pCiv == ('CIVILIZATION_ARABY'):
                lPre = ["Haji","Hashem","Ahmad","Yasin","Fahmy","Hamid","Farid","Jubayr","Jafar","Kamal","Yusuf","Idris","Husayn","Zahir","Zuhayr","Yaqub","Ridwan","Nasr","Daoud","Ali","Musa","Hasan","Nur","Abbas","Yahya","Asad","Amr","Akbar"]
                lMid = ["malik","razaq","rahman","aziz","azim","jalil","qadr","masr","salam","samad","hafiz","sabah","nur","bakr","shafi","karim","latif","malik"]
                lEpithet = lEpithet + ["calligrapher","calm","serene","devout","bedouin","oathbearer","honorable"]
                lSchema = ["CP[ al-]CM","CP[ Abdul]M","[Sheik ]CP[ al-]CM","[Abdul]M[ Pasha]","[Abdul]M[ Khan]","CP[ ibn ]CP[ al-]CM","CP[ ibn ]CP","CP[ the ]CX","CP[ al-]CM[ Abu]M","[Emir ]CP[ Abdul]M"]


        if pCiv == ('CIVILIZATION_HUNG'):
                lPre = ["wu","yin","xie","xi","xu","jiang","li","liu","tsou","jing","yan","min","mian","chou","chu","chen","wang","yang","ming","tze","zhe","liou","chiang","wen","jing","gong","guan"]
                lEpithet = lEpithet + ["horselord","scalptaker","ravener","raider","warlord"]
                lSchema = ["CPSCPP","CPPSCP","CP[ the ]CX","CPP[ the ]CX"]

        if pCiv == ('CIVILIZATION_NORSCA'):
                lPre = ["snorri","skorri","yngvar","yngve","sölveig","styrkár","snæbjörn","grímm","svein","skjöldr","hjalmar","hákon","geir","grímr","karl","grettir","kjetil","björn","jørund","leif","einar","thor","torbjörn","torvald","ulf","asgeir","grímnir","skeggi","Øyvind","hróald","gunnar","finn","olaf","dagmær","erling","halvard","harald"]
                lEpithet = lEpithet + ["crow","shiptaker","terrible","seafarer","fierce","raven","wolf","scalptaker"]
                lNoun = lNoun + ["Fjordling","Northling","Longship","Skaeling","Sortsvinær","Redbeard"]
                lSchema = ["CPSCP[sson]","CPSCP[sen]","CP[ the ]CX","CPSN"]

        if pCiv == ('CIVILIZATION_KURGAN'):
                lPre = ["ar","grom","khar","shar","khal","zhak","phaal","amar","crom"]
                lMid = ["gha","zha","kho","a","o","u","va","zho","kumar","chira"]
                lEnd = ["tai","dar","tar","shar","phaan","i","l","kai","kar","ghai"]
                lEpithet = lEpithet + ["scalptaker","ravener","raider","warlord"]
                lSchema = ["CPMESN","CPME[ the ]CX","CPME[ Khan]","CMME[ the ]CX","CPMPE"]


        if pCiv == ('CIVILIZATION_ASUR'):
                lPre = ["yl","amar","anar","anad","ilith","el","celad","llor","loth","teth","ulth","asur"]
                lMid = ["ar","el","sil","uor","il","or","ann","wë","tor","cor","eth"]
                lEnd = ["iel","ion","ien","ieth","anann","uan","wë","iendel","anar","uel","andis","ian"]
                lEpithet = lEpithet + ["navigator","seafarer","arbiter","pure","princeling","fair","wise","steadfast","knowing","archer","seafarer"]
                lNoun = ["Fairhair","Silverhair","Starbrow","Brightwine","Clearwine","Heartywine","Starmantle","Starcrown","Brightmantle","Silvermantle","Silverblade","Tallwain","Tallhelm","Silverhelm","Brighthelm","Shiningblade","Quickblade","Warwain","of the White Tower","Evenstar"]
                lSchema = ["CPE[ the ]CX","CPESN","CPME[ the ]CX","CPMMESN","CPMESN","[Bel-]CPE[ the ]CX","[Prince ]CPMSN"]

        if pCiv == ('CIVILIZATION_ASRAI'):
                lPre = ["yl","amar","anar","anad","ilith","el","celad","llor","loth","teth","athel"]
                lMid = ["ar","el","sil","uor","il","or","ann","wë","tor","cor","eth"]
                lEnd = ["iel","ion","ien","ieth","anann","uan","wë","iendel","anar","uel","loren","athel","andis","wen"]
                lEpithet = lEpithet + ["archer","gladewarden","wardancer","watcher","preserver","steadfast","silent","strider","forester"]
                lNoun = ["Thornbrow","Vinecrown","Thornmantle","Vinemantle","Ashenleaves","Thorngarland","Shiningsap","Silverleaf","Shiningleaf","Autumnwine","Treefriend","Thornmantle","Thistlecrown","Leafmantle","Silverblade","Tallwain","Gladerider","Oakenstaff","Longbow","Meadowmeet","of the Oak","Warwain","of the Aspens","of the Yews","of the Pines","Greencloak"]
                lSchema = ["CPE[ the ]CX","CPESN","CPME[ the ]CX","CPMESN"]

        if pCiv == ('CIVILIZATION_DRUCHII'):
                lPre = ["mal","shar","khain","shab","mor","akh","ar","nar","klar","khan","shaar","ith","loth","teth"]
                lMid = ["ar","el","sil","e","i","or","an","tor","khor","ka","ak"]
                lEnd = ["kath","reth","wen","kath","sharr","ath","sheth","sith","khain","aal","shaan","xarr","tar","khan","khal","loth","beth","karond","khor"]
                lEpithet = lEpithet + ["seafarer","slaver","slavedriver","lizardtamer","beastmaster","cruel","vigilant","ruthless","merciless","glorious","rich","black","dark","kinslayer"]
                lSchema = ["CPE[ the ]CX","CPME[ the ]CX","CPE[i the ]CX","CPESCPME","CPMESN"]


        if pCiv == ('CIVILIZATION_AMAZON'):
                lPre = ["arist","nik","aret","strat","leon","iph","desm","eus","sok","petr","dem","th","eud","fot","soph","athen"]
                lMid = ["a","e","i","ei","o"]
                lEnd = ["geneia","kleia","kleïs","phane","ia","i","na","axa","konda","ena","thena","zoë","mache","loga","keï"]
                lSchema = ["CPME","CPEE","CPMPM","CPE[ the ]CX","CPMESN"]


        if pCiv == ('CIVILIZATION_ORK'):
                lPre = ["gaz","jaz","mak","daz","skar","gral","grim","shaz","baz","grack","gob","ork","snik","grish"]
                lMid = ["raz","waz","zik","nik","z","raz","za","snak"]
                lEnd = ["za","dak","snik","snak","dik","lik","lok","claw","blak","drok","zak","zik"]
                lEpithet = ["howla","yowla","smasha","grabba","gulpa","killa","twista","toofless","shiv","boss","bigboss","snagga","bagga","pounda","grinda","sneaka","snappa","cracka","cruncha","masha","muncha","chewa","spitta","belcha","WAAAGHa","nobbla","gobbla","scalpa","twist","shank","knife","paunch"]
                lNoun = ["Nubnose","Fathead","Yellowtooth","Snagtooth","Elfiebones","Fatfingaz","Yellowspit","Slobberfangs","Bonebreff","Rattlebags","Humiebones","Elfkilla","Stuntiesmasha","Goldgrabba","Shinyfings","Cragclaw","Jibjabba","Longnose","Twoteef","Twentyteef"]
                lSchema = ["CP[ da ]CX","CPMESCN","CPE[ da ]CX","CPESCPME","CPME[ da ]CX"]

        if pCiv == ('CIVILIZATION_GOBLIN'):
                lPre = ["gaz","jaz","mak","daz","skar","gral","grim","shaz","baz","grack","gob","snik","grish","gob"]
                lMid = ["raz","waz","zik","nik","z","raz","za","snak","gob"]
                lEnd = ["za","dak","snik","snak","dik","lik","lok","claw","blak","drok","zak","zik","gob"]
                lEpithet = ["howla","yowla","smasha","grabba","gulpa","killa","twista","toofless","shiv","boss","bigboss","snagga","bagga","pounda","grinda","sneaka","snappa","cracka","cruncha","masha","muncha","chewa","spitta","belcha","WAAAGHa","nobbla","gobbla","scalpa","twist","shank","knife","paunch"]
                lNoun = ["Nubnose","Fathead","Yellowtooth","Snagtooth","Elfiebones","Fatfingaz","Yellowspit","Slobberfangs","Bonebreff","Rattlebags","Humiebones","Elfkilla","Stuntiesmasha","Goldgrabba","Shinyfings","Cragclaw","Jibjabba","Spiderskin","Longnose","Twoteef","Twentyteef"]
                lSchema = ["CP[ da ]CX","CPMESCN","CPE[ da ]CX","CPESCPME","CPME[ da ]CX"]

        if pCiv == ('CIVILIZATION_HOBGOB'):
                lPre = ["hob","gaz","jaz","mak","daz","skar","gral","grim","shaz","baz","grack","gob","snik","grish"]
                lMid = ["rab","wab","bik","hob","bakh","z","baz","zba","snak"]
                lEnd = ["bai","ba","za","dak","snik","snak","dik","bik","bok","claw","blak","drok","bak","zik"]
                lEpithet = ["howla","yowla","smasha","grabba","gulpa","killa","twista","toofless","shiv","boss","bigboss","snagga","bagga","pounda","grinda","sneaka","snappa","cracka","cruncha","masha","muncha","chewa","spitta","belcha","WAAAGHa","nobbla","gobbla","scalpa","twist","shank","knife","paunch"]
                lNoun = ["Nubnose","Fathead","Yellowtooth","Snagtooth","Elfiebones","Fatfingaz","Yellowspit","Slobberfangs","Bonebreff","Rattlebags","Humiebones","Elfkilla","Stuntiesmasha","Goldgrabba","Shinyfings","Cragclaw","Jibjabba","Spiderskin","Longnose","Twoteef","Twentyteef"]
                lSchema = ["CP[ da ]CX","CPMESCN","CPE[ da ]CX","CPESCPME","CPME[ da ]CX","CPME[ Khan]","CPME[ Pasha]"]

        if pCiv == ('CIVILIZATION_OGRE'):
                lPre = ["hob","gaz","jaz","mak","daz","skar","gral","grim","shaz","baz","grack","gob","snik","grish"]
                lMid = ["rab","wab","bik","hob","bakh","z","baz","zba","snak"]
                lEnd = ["bai","ba","za","dak","snik","snak","dik","bik","bok","claw","blak","drok","bak","zik"]
                lEpithet = ["howla","yowla","smasha","grabba","gulpa","killa","twista","toofless","shiv","boss","bigboss","snagga","bagga","pounda","grinda","sneaka","snappa","cracka","cruncha","masha","muncha","chewa","spitta","belcha","WAAAGHa","nobbla","gobbla","scalpa","twist","shank","knife","paunch"]
                lNoun = ["Nubnose","Fathead","Yellowtooth","Snagtooth","Elfiebones","Fatfingaz","Yellowspit","Slobberfangs","Bonebreff","Rattlebags","Humiebones","Elfkilla","Stuntiesmasha","Goldgrabba","Shinyfings","Cragclaw","Jibjabba","Spiderskin","Longnose","Twoteef","Twentyteef"]
                lSchema = ["CP[ da ]CX","CPMESCN","CPE[ da ]CX","CPESCPME","CPME[ da ]CX","CPME[ Khan]","CPME[ Pasha]"]


        if pCiv == ('CIVILIZATION_LIZ'):
                lPre = ["apoc","zoch","coua","nahua","ich","ix","chal","chan","huitz","poch"]
                lMid = ["tli","tla","tep","tec","chac","xo"]
                lEnd = ["tepec","tl","tli","tlique","que","lotl","itl","tlan","mictlan","huatl","ualti","cuhtli","loc","temoc"]
                lEpithet = ["astronomer","astrologer","mathematician","mystic","greenscaled","redscaled","bluescaled","iridescent","mottled","piebald","lustrous","shining","yellow"]
                lSchema = ["CPM[ the ]CX","CPME","CPE[ the ]CX","CPMPE"]


        if pAlign == ('ALIGNMENT_EVIL'):
                lNoun = lNoun + ["Illwinter","Illwind","Kinslayer","Maneater","Suneater","Souleater","Oathbreaker","Falsefriend","Iceblood"]
                lEpithet = lEpithet + ["dark","black","white","cruel","foul","merciless","curseling","unbending","cold","cunning","vile","kinslayer","oathbreaker","faithless","despised","treacherous","infamous","dreaded","unavoidable","assassin","usurper"]

        if pAlign == ('ALIGNMENT_GOOD'):
                lNoun = lNoun + ["Lawbringer","Daemonbane"]
                lEpithet = lEpithet + ["just","lawbringer","white","pure"]


        if pReligion == ('RELIGION_CHAOS'):
                lEpithet = lEpithet + ["fallen","leechlord","debauched","profane","cannibal","pustulent","fetid","tainted","boneless","bloody","sanguine","forsaken","changer","magnificent","unearthly","glorious","beast","beautiful","twisted","everchanging","unbound","ravener","diseased","bloody","sanguine"]
                lNoun = lNoun + ["Manyfaces","Ninehands","Blackblood","Slackmaw","Manyfavored","Maneater","Undivided","Spindleshanks","of the Raven","of the Eight Ways"]

        if pReligion == ('RELIGION_IMMORTALITY'):
                lEpithet = lEpithet + ["deathless","white","calm","reborn","serene","gaunt","undying","deathless","pallid","pale","ancient","bloodless","graverobber","returned","morbid","immortal","ashen","unearthly","endless","bonepicker","reaper","silent","Infinitely Prolonged"]
                lNoun = lNoun + ["Ashenhand","Nineskulls","of the Bones","Undying","Graveborn","ap Mortis","Deathbringer","Corpsedust","Skullface","Bonemaw"]

        if pReligion == ('RELIGION_SPIRITUALITY'):
                lEpithet = lEpithet + ["calm","transcendent","serene","wise","philosopher","pious","calligrapher","hermit","abstemious","venerable","inscrutable","ascetic","silent","distant","enlightened","breatharian"]
                lNoun = lNoun + ["Orangerobes","of the Monastery"]

        if pReligion == ('RELIGION_SALVATION'):
                lEpithet = lEpithet + ["bold","pious","magnanimous","dauntless","great","brave","orkslayer","proud","witchkiller"]
                lNoun = lNoun + ["Lawgiver","Hardhand"]
                
        # # #
        # Pick a Schema
        sSchema = random.choice(lSchema)
        sFull = ""
        sKeep = ""
        iUpper = 0
        iKeep = 0
        iSkip = 0
                
        # Run through each character in schema to generate name
        for iCount in range (0,len(sSchema)):
                sAdd=""
                iDone = 0
                sAction = sSchema[iCount]
                if iSkip == 1:
                        if sAction == "]":
                                iSkip = 0
                        else:
                                sAdd = sAction
                                iDone = 1		
                else:					# MAIN SECTION
                        if sAction == "P": 	# Pre 	: beginnings of names
                                sAdd = random.choice(lPre)
                                iDone = 1
                        if sAction == "M":	# Mid 	: middle syllables
                                sAdd = random.choice(lMid)	
                                iDone = 1	
                        if sAction == "E":	# End	: end of names
                                sAdd = random.choice(lEnd)
                                iDone = 1
                        if sAction == "X":	# Epithet	: epithet word part
                                #epithets ("e" was taken!)
                                sAdd = random.choice(lEpithet)
                                iDone = 1
                        if sAction == "N":	# Noun	: noun word part
                                #noun
                                sAdd = random.choice(lNoun)	
                                iDone = 1
                        if sAction == "S":	# Space	: a space character. (Introduced before [ ] was possible )
                                sAdd =  " "
                                iDone = 1
                        if sAction == "D":	# Dash	: a - character. Thought to be common and useful enough to warrant inclusion : Introduced before [-] was possible 
                                sAdd =  "-"
                                iDone = 1
                        if sAction == "A":	# '		: a ' character - as for -, introduced early
                                sAdd = "'" 
                                iDone = 1
                        if sAction == "C":	# Caps	: capitalizes first letter of next phrase generated. No effect on non-letters.
                                iUpper = 1
                        if sAction == "K":	# Keep	: stores the next phrase generated for re-use with U
                                iKeep = 1
                        if sAction == "U":	# Use	: re-uses a stored phrase.
                                sAdd = sKeep
                                iDone = 1
                        if sAction == "[":	# Print	: anything between [] is added to the final phrase "as is". Useful for [ the ] and [ of ] among others.
                                iSkip = 1
                # capitalizes phrase once.	
                if iUpper == 1 and iDone == 1:
                        sAdd = sAdd.capitalize()
                        iUpper = 0
                # stores the next phrase generated.	
                if iKeep == 1 and iDone == 1:
                        sKeep = sAdd
                        iKeep = 0
                # only adds the phrase if a new bit was actally created.
                if iDone == 1:
                        sFull = sFull + sAdd

        # trim name length			
#        if len(sFull) > 25:
#                sFull = sFull[:25]		
        print sFull
 
I agree this is a cool way to add some flavor/replayability. Actually, I had developed a random name generator like this for the WHFB mod which is already in working order, you're very welcome to use it if you want so it won't go to waste. :king: It's based on an adaptation of Marnoks namegen from FfH, and includes multiple settings for all of the Warhammer civs, so it can create random names from a variety of nations / races, and also allows for random titles by alignment and religion. You can preview some of its output here, the listed names were randomly generated & will be different every time: :cool:

http://forums.civfanatics.com/showthread.php?t=340448&highlight=generator

edit: ok, I found the original namegen code! :) unfortunately it's written in python and I don't know any lua, but the code is fairly short & simple plus some arrays of name fragments, so I'm hoping it could be easy for someone who knows lua to port it to Civ5.
Spoiler :
Code:
import random

# change these variables to choose name settings
pCiv = ('CIVILIZATION_KURGAN')
pReligion = ('RELIGION_CHAOS')
pAlign = ('ALIGNMENT_EVIL')

for z in range (1, 20):

        lPre=["ta","go","da","bar","arc","ken","an","ad","mi","kon","kar","mar","wal","he", "ha", "re", "ar", "bal", "bel", "bo", "bri", "car","dag","dan","ma","ja","co","be","ga","qui","sa"]
        lMid=["ad","z","the","and","tha","ent","ion","tio","for","tis","oft","che","gan","an","en","wen","on","d","n","g","t","ow","dal"]
        lEnd=["ar","sta","na","is","el","es","ie","us","un","th", "er","on","an","re","in","ed","nd","at","en","le","man","ck","ton","nok","git","us","or","a","da","u","cha","ir"]
                
        lEpithet=["red","black","grey","white","proud","elder","younger","lesser","renowned","great","bold","wanderer","wayfarer","clever"]
        lNoun=["Longshanks","Foehammer","Widowmaker","Longstaff","Longknife","Winterborn","Autumnborn","Wintersun","Undermoon","Redblade","Morningstar","Oathtaker","Greymantle","Redmantle","Bluemantle","Greycloak","Redcloak","Longtooth","Hammerhand","of the Tower","Mountainkin","Stonehand","Longblade","Quickblade","Nimblefingers","Nimbleshins","Quickfingers"]
        lSchema=["CPME","CPMESCPME","CPESCPE","CPE","CPMME","CPMDCME","CPMAME","KCPMESCUM","CPMME[ the ]CX", "CPMESCXN", "CPMME[ of ]CPMME", "CNNSCXN"]

        if pCiv == ('CIVILIZATION_BRETONNIA'):
                lPre = ["baron","duc","comte","vicomte","chevalier","marquis","seneschal"]
                lMid = ["Abelard","Guillaume","Jean","François","Luc","Renard","Hugues","Ghislain","Henri","Guy","Thibaut","Etienne","Guillemin","Bernart","Gervais","Archimbaud","Aubert","Yves","Olivier","Païen","Alain","Guillemot","Charles","Didier","Blaise","Aymeric"]
                lEnd = ["Sanzier","Couronne","Artois","Lyonesse","Mousillon","Gisoreaux","Montfort","Bastonne","Dahaut","Bordeleaux","Aquitaine","Brionne","Quenelles","Carcassonne","Chimay","Vergerac","Ganet","Chalons","Naizon","la Tour","Soubeyrand","Montmorency","Gaön","Hauterive"]
                lEpithet = lEpithet + ["bald","fair","chaste","pure","lionhearted"]
                lSchema = ["CP[ de ]E","[Sieur ]CM[ de ]E","CM[ de ]E","[Jean-]CM[ de ]E","CM[ the ]CX"]

        if pCiv == ('CIVILIZATION_EMPIRE'):
                lPre = ["Berzelius","Heinrich","Hermann","Heinz","Wilhelm","Werner","Albertus","Dietmar","Hartmut","Wiegand","Rudiger","Friedrich","Theodoric","Gerhard","Eberhard","Johan","Johannes","Ludwig","Dietrich","Hans","Konrad","Klaus","Klausius","Ulrich","Kaspar","Melchior","Balthazar","Ambrosius","Stefan","Jurgen","Albrecht","Justus","Engelbert","Hanskristian","Sebastian","Henning","Erasmus","Anselm","Benedict","Bonifacius","Klement","Benno","Sigismund","Gottlieb","Siegfried","Theodosius","Leopold","Joachim","Uwe"]
                lMid = ["weiss","feuer","gelt","heim","pfalz","stein","kriegs","krausz","silber","schwartz","hammer","reich","gesang","holtz","brecht","faust","licht","breit","vogel","zwei","krupp","kampf","berg"]
                lEnd = ["Altdorf","Wissenland","Hochland","Stirland","Middenland","Nordland","Ostermark","Middenheim","Lüdenhof","Leitdorf","Talabecland","Freistadt","Krieglitz","Helmgart","Ubersreik","Feuerbach","Klingelfuss","Schultheiß","Breitbach","Nuln","Salzenmund","Weissbrück","Carroburg","Kleindorf"]
                lEpithet = lEpithet + ["bald","elector","fat","hammer","rich"]
                lNoun = lNoun + ["Heldenhammer"]
                lSchema = ["CP[ von ]E","CPSE[er]","CPSCMM","CPSCMM[en]","CP[ the ]CX","[Count ]CP[ von ]E","[Herr ]CPSCM[en]","CPSCM"]

        if pCiv == ('CIVILIZATION_ESTALIA'):
                lPre = ["Caballero","Conde","Vizconde","Marqués","Hidalgo","Duque"]		
                lMid = ["Pedro","César","Severino","Heitor","Pablo","Juanpablo","Diosdado","Rafael","Sancho","Diego","Hernán","Ruy","Lope","Álvaro","Salvador","Gaspar","Rodrigo","Luis","Cristóbal","Santiago","Juan"]	
                lEnd = ["Arcas","Paez","Oros","Pascual","Miraflores","Malagrima","Rivarios","Saavedra","Tejeda","Santillán","Merced","Calatrava","Alquezaro","Barboza","Muros","Magritta","Bilbali","Borgas","Zaragoz","Moleno","Almagora","Solsona"]
                lEpithet = lEpithet + ["Pious","Navigator","Inquisitor","Witchkiller","Conquistador"]
                lSchema = ["CP[ de ]E","CP[ de ]E[ y ]E","CM[ de ]E","[Don ]CM[ de ]E","CM[ the ]CX","CM[ de ]E[ y ]E","[Don ]CM[ the ]CX"]

        if pCiv == ('CIVILIZATION_TILEA'):
                lPre = ["Lorenzo","Piero","Francesco","Iacopo","Bartolomeo","Niccolo","Domenico","Andrea","Giovanni","Alessandro","Daniele","Piero","Federico","Corrado","Giuliano","Enzio","Furio","Donato","Giustiniano","Marco","Michele","Taddeo","Perugino","Dandolo","Cosimo","Gianni","Marioluigi"]
                lEnd = ["cavalcant","stracc","perugin","sforzat","tobar","amargh","chiar","luccin","lucan","remas","sartos","miraglian","pavon","trant","verezz","montecastell","loropian"]
                lEpithet = lEpithet + ["magnificent","rich","wealthy","courtier","sycophant","openhanded","serene","poisoner","usurper","sellsword"]
                lSchema = ["CPSCE[etto]","CPSCE[ino]","CPSCE[ese]","CP[ di ]CE[i]","CP[ dei ]CE[e]","CP[ della ]CE[a]","CP[ the ]CX","[Doge dio ]CE[o]"]

        if pCiv == ('CIVILIZATION_KISLEV'):
                lPre = ["Aleksandr","Boris","Grigor","Mikhail","Feodor","Aleksey","Pavel","Ivan","Iakov","Kyril","Leonid","Ygor","Yevgeny","Stjepan","Taras","Roman"]
                lMid = ["Slava","Pyotr","Sasha","Mstislav","Boleslav","Alyosha","Lev","Stanislav","Dmitri","Ruslan","Pavel","Oleg","Yuri","Dima"]
                lEnd = ["Ilych","Drubetskoi","Drubin","Kalugin","Chenchik","Orodoy","Ilyets","Orov","Dorodenko","Erengradskiy","Preslavskiy","Bolgasgradiy","Omenskiy","Ursunov","Tchorniy","Medvedev","Tomortovo"]
                lEpithet = lEpithet + ["trollslayer","terrible","fierce","proud","wolf","bear"]
                lSchema = ["CMSCP[evich]","CMSCP[ovich]SCP[ov]","CPSCE","CMSCE","CMSCP[ovich ]CE","CP[ the ]CX","[Count ]CPSCE"]

        if pCiv == ('CIVILIZATION_NIPPON'):
                lPre = ["Susano","Hideo","Morimoto","Minamoto","Taisho","Naruhito","Hiro","Tadataka","Yamato","Shouhei","Daisuke","Ichiro","Jiro","Nobu","Ryu","Taro","Takashi","Nobunaga","Ito","Takotsubo","Shoyu"]
                lMid = ["yoshi","yumi","kami","nori","yashi","kara","tori","masu","naga","shima","shide","mura","taka","wara","shige","nobu"]
                lEnd = ["mikoto","arima","hirobumi","takotsubo","aeyama","yamato"]
                lEpithet = lEpithet + ["calligrapher","calm","serene","devoted","oathbearer","honorable"]
                lSchema = ["CP[ o no ]CE","CP[ o no ]CM[moto]","CP[ no ]CMM","CP[ o ]CMM","CMM[ ]CMM","CM[ the ]CX","CEM[-sama]","CMM[ no ]CMM"]

        if pCiv == ('CIVILIZATION_CATHAY'):
                lPre = ["wu","yin","xie","xi","xu","jiang","li","liu","tsou","jing","yan","min","mian","chou","chu","chen","wang","yang","ming","tze","zhe","liou","chiang","wen","jing","gong","guan"]
                lEpithet = lEpithet + ["calligrapher","calm","serene","magistrate","highborn","warlord","learned","mandarin","steadfast","honorable"]
                lSchema = ["CPSCPP","CPPSCP","CP[ the ]CX","CPP[ the ]CX"]

        if pCiv == ('CIVILIZATION_IND'):
                lPre = ["krishan","krishna","desh","pradesh","hari","srinivas","dinesh","indra","anand","inder","ravi","jehan","arun","raj","rama","lakshman","govind","arvind","ahilan","das","kaushal","rajesh"]
                lMid = ["svara","rama","gopal","svati","mantra","krishna","jaira","gupta","kumar","chira","swami","raja","pandhya","bhartiya"]
                lEnd = ["ndasi","pinder","ya","bhat","vinder","vasan","i","vishnu","nandra"]
                lSchema = ["CPSCME","CPSCMM","[Maharaja ]CMM","CMM[ Khan]","[Raja ]CPSCME","CP[ Singh Khalsa]"]

        if pCiv == ('CIVILIZATION_ARABY'):
                lPre = ["Haji","Hashem","Ahmad","Yasin","Fahmy","Hamid","Farid","Jubayr","Jafar","Kamal","Yusuf","Idris","Husayn","Zahir","Zuhayr","Yaqub","Ridwan","Nasr","Daoud","Ali","Musa","Hasan","Nur","Abbas","Yahya","Asad","Amr","Akbar"]
                lMid = ["malik","razaq","rahman","aziz","azim","jalil","qadr","masr","salam","samad","hafiz","sabah","nur","bakr","shafi","karim","latif","malik"]
                lEpithet = lEpithet + ["calligrapher","calm","serene","devout","bedouin","oathbearer","honorable"]
                lSchema = ["CP[ al-]CM","CP[ Abdul]M","[Sheik ]CP[ al-]CM","[Abdul]M[ Pasha]","[Abdul]M[ Khan]","CP[ ibn ]CP[ al-]CM","CP[ ibn ]CP","CP[ the ]CX","CP[ al-]CM[ Abu]M","[Emir ]CP[ Abdul]M"]


        if pCiv == ('CIVILIZATION_HUNG'):
                lPre = ["wu","yin","xie","xi","xu","jiang","li","liu","tsou","jing","yan","min","mian","chou","chu","chen","wang","yang","ming","tze","zhe","liou","chiang","wen","jing","gong","guan"]
                lEpithet = lEpithet + ["horselord","scalptaker","ravener","raider","warlord"]
                lSchema = ["CPSCPP","CPPSCP","CP[ the ]CX","CPP[ the ]CX"]

        if pCiv == ('CIVILIZATION_NORSCA'):
                lPre = ["snorri","skorri","yngvar","yngve","sölveig","styrkár","snæbjörn","grímm","svein","skjöldr","hjalmar","hákon","geir","grímr","karl","grettir","kjetil","björn","jørund","leif","einar","thor","torbjörn","torvald","ulf","asgeir","grímnir","skeggi","Øyvind","hróald","gunnar","finn","olaf","dagmær","erling","halvard","harald"]
                lEpithet = lEpithet + ["crow","shiptaker","terrible","seafarer","fierce","raven","wolf","scalptaker"]
                lNoun = lNoun + ["Fjordling","Northling","Longship","Skaeling","Sortsvinær","Redbeard"]
                lSchema = ["CPSCP[sson]","CPSCP[sen]","CP[ the ]CX","CPSN"]

        if pCiv == ('CIVILIZATION_KURGAN'):
                lPre = ["ar","grom","khar","shar","khal","zhak","phaal","amar","crom"]
                lMid = ["gha","zha","kho","a","o","u","va","zho","kumar","chira"]
                lEnd = ["tai","dar","tar","shar","phaan","i","l","kai","kar","ghai"]
                lEpithet = lEpithet + ["scalptaker","ravener","raider","warlord"]
                lSchema = ["CPMESN","CPME[ the ]CX","CPME[ Khan]","CMME[ the ]CX","CPMPE"]


        if pCiv == ('CIVILIZATION_ASUR'):
                lPre = ["yl","amar","anar","anad","ilith","el","celad","llor","loth","teth","ulth","asur"]
                lMid = ["ar","el","sil","uor","il","or","ann","wë","tor","cor","eth"]
                lEnd = ["iel","ion","ien","ieth","anann","uan","wë","iendel","anar","uel","andis","ian"]
                lEpithet = lEpithet + ["navigator","seafarer","arbiter","pure","princeling","fair","wise","steadfast","knowing","archer","seafarer"]
                lNoun = ["Fairhair","Silverhair","Starbrow","Brightwine","Clearwine","Heartywine","Starmantle","Starcrown","Brightmantle","Silvermantle","Silverblade","Tallwain","Tallhelm","Silverhelm","Brighthelm","Shiningblade","Quickblade","Warwain","of the White Tower","Evenstar"]
                lSchema = ["CPE[ the ]CX","CPESN","CPME[ the ]CX","CPMMESN","CPMESN","[Bel-]CPE[ the ]CX","[Prince ]CPMSN"]

        if pCiv == ('CIVILIZATION_ASRAI'):
                lPre = ["yl","amar","anar","anad","ilith","el","celad","llor","loth","teth","athel"]
                lMid = ["ar","el","sil","uor","il","or","ann","wë","tor","cor","eth"]
                lEnd = ["iel","ion","ien","ieth","anann","uan","wë","iendel","anar","uel","loren","athel","andis","wen"]
                lEpithet = lEpithet + ["archer","gladewarden","wardancer","watcher","preserver","steadfast","silent","strider","forester"]
                lNoun = ["Thornbrow","Vinecrown","Thornmantle","Vinemantle","Ashenleaves","Thorngarland","Shiningsap","Silverleaf","Shiningleaf","Autumnwine","Treefriend","Thornmantle","Thistlecrown","Leafmantle","Silverblade","Tallwain","Gladerider","Oakenstaff","Longbow","Meadowmeet","of the Oak","Warwain","of the Aspens","of the Yews","of the Pines","Greencloak"]
                lSchema = ["CPE[ the ]CX","CPESN","CPME[ the ]CX","CPMESN"]

        if pCiv == ('CIVILIZATION_DRUCHII'):
                lPre = ["mal","shar","khain","shab","mor","akh","ar","nar","klar","khan","shaar","ith","loth","teth"]
                lMid = ["ar","el","sil","e","i","or","an","tor","khor","ka","ak"]
                lEnd = ["kath","reth","wen","kath","sharr","ath","sheth","sith","khain","aal","shaan","xarr","tar","khan","khal","loth","beth","karond","khor"]
                lEpithet = lEpithet + ["seafarer","slaver","slavedriver","lizardtamer","beastmaster","cruel","vigilant","ruthless","merciless","glorious","rich","black","dark","kinslayer"]
                lSchema = ["CPE[ the ]CX","CPME[ the ]CX","CPE[i the ]CX","CPESCPME","CPMESN"]


        if pCiv == ('CIVILIZATION_AMAZON'):
                lPre = ["arist","nik","aret","strat","leon","iph","desm","eus","sok","petr","dem","th","eud","fot","soph","athen"]
                lMid = ["a","e","i","ei","o"]
                lEnd = ["geneia","kleia","kleïs","phane","ia","i","na","axa","konda","ena","thena","zoë","mache","loga","keï"]
                lSchema = ["CPME","CPEE","CPMPM","CPE[ the ]CX","CPMESN"]


        if pCiv == ('CIVILIZATION_ORK'):
                lPre = ["gaz","jaz","mak","daz","skar","gral","grim","shaz","baz","grack","gob","ork","snik","grish"]
                lMid = ["raz","waz","zik","nik","z","raz","za","snak"]
                lEnd = ["za","dak","snik","snak","dik","lik","lok","claw","blak","drok","zak","zik"]
                lEpithet = ["howla","yowla","smasha","grabba","gulpa","killa","twista","toofless","shiv","boss","bigboss","snagga","bagga","pounda","grinda","sneaka","snappa","cracka","cruncha","masha","muncha","chewa","spitta","belcha","WAAAGHa","nobbla","gobbla","scalpa","twist","shank","knife","paunch"]
                lNoun = ["Nubnose","Fathead","Yellowtooth","Snagtooth","Elfiebones","Fatfingaz","Yellowspit","Slobberfangs","Bonebreff","Rattlebags","Humiebones","Elfkilla","Stuntiesmasha","Goldgrabba","Shinyfings","Cragclaw","Jibjabba","Longnose","Twoteef","Twentyteef"]
                lSchema = ["CP[ da ]CX","CPMESCN","CPE[ da ]CX","CPESCPME","CPME[ da ]CX"]

        if pCiv == ('CIVILIZATION_GOBLIN'):
                lPre = ["gaz","jaz","mak","daz","skar","gral","grim","shaz","baz","grack","gob","snik","grish","gob"]
                lMid = ["raz","waz","zik","nik","z","raz","za","snak","gob"]
                lEnd = ["za","dak","snik","snak","dik","lik","lok","claw","blak","drok","zak","zik","gob"]
                lEpithet = ["howla","yowla","smasha","grabba","gulpa","killa","twista","toofless","shiv","boss","bigboss","snagga","bagga","pounda","grinda","sneaka","snappa","cracka","cruncha","masha","muncha","chewa","spitta","belcha","WAAAGHa","nobbla","gobbla","scalpa","twist","shank","knife","paunch"]
                lNoun = ["Nubnose","Fathead","Yellowtooth","Snagtooth","Elfiebones","Fatfingaz","Yellowspit","Slobberfangs","Bonebreff","Rattlebags","Humiebones","Elfkilla","Stuntiesmasha","Goldgrabba","Shinyfings","Cragclaw","Jibjabba","Spiderskin","Longnose","Twoteef","Twentyteef"]
                lSchema = ["CP[ da ]CX","CPMESCN","CPE[ da ]CX","CPESCPME","CPME[ da ]CX"]

        if pCiv == ('CIVILIZATION_HOBGOB'):
                lPre = ["hob","gaz","jaz","mak","daz","skar","gral","grim","shaz","baz","grack","gob","snik","grish"]
                lMid = ["rab","wab","bik","hob","bakh","z","baz","zba","snak"]
                lEnd = ["bai","ba","za","dak","snik","snak","dik","bik","bok","claw","blak","drok","bak","zik"]
                lEpithet = ["howla","yowla","smasha","grabba","gulpa","killa","twista","toofless","shiv","boss","bigboss","snagga","bagga","pounda","grinda","sneaka","snappa","cracka","cruncha","masha","muncha","chewa","spitta","belcha","WAAAGHa","nobbla","gobbla","scalpa","twist","shank","knife","paunch"]
                lNoun = ["Nubnose","Fathead","Yellowtooth","Snagtooth","Elfiebones","Fatfingaz","Yellowspit","Slobberfangs","Bonebreff","Rattlebags","Humiebones","Elfkilla","Stuntiesmasha","Goldgrabba","Shinyfings","Cragclaw","Jibjabba","Spiderskin","Longnose","Twoteef","Twentyteef"]
                lSchema = ["CP[ da ]CX","CPMESCN","CPE[ da ]CX","CPESCPME","CPME[ da ]CX","CPME[ Khan]","CPME[ Pasha]"]

        if pCiv == ('CIVILIZATION_OGRE'):
                lPre = ["hob","gaz","jaz","mak","daz","skar","gral","grim","shaz","baz","grack","gob","snik","grish"]
                lMid = ["rab","wab","bik","hob","bakh","z","baz","zba","snak"]
                lEnd = ["bai","ba","za","dak","snik","snak","dik","bik","bok","claw","blak","drok","bak","zik"]
                lEpithet = ["howla","yowla","smasha","grabba","gulpa","killa","twista","toofless","shiv","boss","bigboss","snagga","bagga","pounda","grinda","sneaka","snappa","cracka","cruncha","masha","muncha","chewa","spitta","belcha","WAAAGHa","nobbla","gobbla","scalpa","twist","shank","knife","paunch"]
                lNoun = ["Nubnose","Fathead","Yellowtooth","Snagtooth","Elfiebones","Fatfingaz","Yellowspit","Slobberfangs","Bonebreff","Rattlebags","Humiebones","Elfkilla","Stuntiesmasha","Goldgrabba","Shinyfings","Cragclaw","Jibjabba","Spiderskin","Longnose","Twoteef","Twentyteef"]
                lSchema = ["CP[ da ]CX","CPMESCN","CPE[ da ]CX","CPESCPME","CPME[ da ]CX","CPME[ Khan]","CPME[ Pasha]"]


        if pCiv == ('CIVILIZATION_LIZ'):
                lPre = ["apoc","zoch","coua","nahua","ich","ix","chal","chan","huitz","poch"]
                lMid = ["tli","tla","tep","tec","chac","xo"]
                lEnd = ["tepec","tl","tli","tlique","que","lotl","itl","tlan","mictlan","huatl","ualti","cuhtli","loc","temoc"]
                lEpithet = ["astronomer","astrologer","mathematician","mystic","greenscaled","redscaled","bluescaled","iridescent","mottled","piebald","lustrous","shining","yellow"]
                lSchema = ["CPM[ the ]CX","CPME","CPE[ the ]CX","CPMPE"]


        if pAlign == ('ALIGNMENT_EVIL'):
                lNoun = lNoun + ["Illwinter","Illwind","Kinslayer","Maneater","Suneater","Souleater","Oathbreaker","Falsefriend","Iceblood"]
                lEpithet = lEpithet + ["dark","black","white","cruel","foul","merciless","curseling","unbending","cold","cunning","vile","kinslayer","oathbreaker","faithless","despised","treacherous","infamous","dreaded","unavoidable","assassin","usurper"]

        if pAlign == ('ALIGNMENT_GOOD'):
                lNoun = lNoun + ["Lawbringer","Daemonbane"]
                lEpithet = lEpithet + ["just","lawbringer","white","pure"]


        if pReligion == ('RELIGION_CHAOS'):
                lEpithet = lEpithet + ["fallen","leechlord","debauched","profane","cannibal","pustulent","fetid","tainted","boneless","bloody","sanguine","forsaken","changer","magnificent","unearthly","glorious","beast","beautiful","twisted","everchanging","unbound","ravener","diseased","bloody","sanguine"]
                lNoun = lNoun + ["Manyfaces","Ninehands","Blackblood","Slackmaw","Manyfavored","Maneater","Undivided","Spindleshanks","of the Raven","of the Eight Ways"]

        if pReligion == ('RELIGION_IMMORTALITY'):
                lEpithet = lEpithet + ["deathless","white","calm","reborn","serene","gaunt","undying","deathless","pallid","pale","ancient","bloodless","graverobber","returned","morbid","immortal","ashen","unearthly","endless","bonepicker","reaper","silent","Infinitely Prolonged"]
                lNoun = lNoun + ["Ashenhand","Nineskulls","of the Bones","Undying","Graveborn","ap Mortis","Deathbringer","Corpsedust","Skullface","Bonemaw"]

        if pReligion == ('RELIGION_SPIRITUALITY'):
                lEpithet = lEpithet + ["calm","transcendent","serene","wise","philosopher","pious","calligrapher","hermit","abstemious","venerable","inscrutable","ascetic","silent","distant","enlightened","breatharian"]
                lNoun = lNoun + ["Orangerobes","of the Monastery"]

        if pReligion == ('RELIGION_SALVATION'):
                lEpithet = lEpithet + ["bold","pious","magnanimous","dauntless","great","brave","orkslayer","proud","witchkiller"]
                lNoun = lNoun + ["Lawgiver","Hardhand"]
                
        # # #
        # Pick a Schema
        sSchema = random.choice(lSchema)
        sFull = ""
        sKeep = ""
        iUpper = 0
        iKeep = 0
        iSkip = 0
                
        # Run through each character in schema to generate name
        for iCount in range (0,len(sSchema)):
                sAdd=""
                iDone = 0
                sAction = sSchema[iCount]
                if iSkip == 1:
                        if sAction == "]":
                                iSkip = 0
                        else:
                                sAdd = sAction
                                iDone = 1		
                else:					# MAIN SECTION
                        if sAction == "P": 	# Pre 	: beginnings of names
                                sAdd = random.choice(lPre)
                                iDone = 1
                        if sAction == "M":	# Mid 	: middle syllables
                                sAdd = random.choice(lMid)	
                                iDone = 1	
                        if sAction == "E":	# End	: end of names
                                sAdd = random.choice(lEnd)
                                iDone = 1
                        if sAction == "X":	# Epithet	: epithet word part
                                #epithets ("e" was taken!)
                                sAdd = random.choice(lEpithet)
                                iDone = 1
                        if sAction == "N":	# Noun	: noun word part
                                #noun
                                sAdd = random.choice(lNoun)	
                                iDone = 1
                        if sAction == "S":	# Space	: a space character. (Introduced before [ ] was possible )
                                sAdd =  " "
                                iDone = 1
                        if sAction == "D":	# Dash	: a - character. Thought to be common and useful enough to warrant inclusion : Introduced before [-] was possible 
                                sAdd =  "-"
                                iDone = 1
                        if sAction == "A":	# '		: a ' character - as for -, introduced early
                                sAdd = "'" 
                                iDone = 1
                        if sAction == "C":	# Caps	: capitalizes first letter of next phrase generated. No effect on non-letters.
                                iUpper = 1
                        if sAction == "K":	# Keep	: stores the next phrase generated for re-use with U
                                iKeep = 1
                        if sAction == "U":	# Use	: re-uses a stored phrase.
                                sAdd = sKeep
                                iDone = 1
                        if sAction == "[":	# Print	: anything between [] is added to the final phrase "as is". Useful for [ the ] and [ of ] among others.
                                iSkip = 1
                # capitalizes phrase once.	
                if iUpper == 1 and iDone == 1:
                        sAdd = sAdd.capitalize()
                        iUpper = 0
                # stores the next phrase generated.	
                if iKeep == 1 and iDone == 1:
                        sKeep = sAdd
                        iKeep = 0
                # only adds the phrase if a new bit was actally created.
                if iDone == 1:
                        sFull = sFull + sAdd

        # trim name length			
#        if len(sFull) > 25:
#                sFull = sFull[:25]		
        print sFull
Well, just looking at that, the "pseudo-code" concepts should transfer over. It doesn't look too complex. You just give it a bunch of letter values and then tell it, "generate a name using the 'Pre' list, the 'Mid' list, & the 'End' list". Then, you tell it, "now generate an epithet or a last name using the 'Epithet' list or the 'Noun' list". Then, it generates several lists (each of which is for a certain Civ) and spits them out.

In theory, we should be able to do that in lua, right?
 
So, here's the basic tasks we have to do before we can release the alpha. If someone thinks of more, I'll add it here as well.

Spoiler :
1. Policies
PawelS has a list of these.
Replace the G&K policies with EoM policies.
2. Tech Tree -- Already mostly done.
The techs themselves are probably ok. Endgame techs aren't going to be in yet.
3. Civilizations: -- This is partially done.
The 12 Alpha Civs -- Dreamers, Griffites, Archons, Vodniks, Snobar, Azracs, Lemuria, Elves, Dwarves, Orcs (Red Horde), Demon Cultists, & Beastmen
UUs/UBs -- Min. of 5 Uniques per Civ.
Civ Traits -- Should probably add a Trait for each civ, even if a few are just placeholders.
4. Settlers Mechanic -- Already done.
5. Resources -- Partially done. PawelS wants to complete himself.
Need to attach to improvements.
Need to determine and add yields.
6. Food Per Citizen -- Already done.
7. Promotions -- Partially done. PawelS wants to complete himself.
Random Promotion Lua Code -- Adds random promotions to certain units (does not include machines, ships, and civilian units). Some of them should be mutually exclusive (like "lowlander" and "highlander").
Negative Promotions -- Adds a negative effect, such as "XPromotion gives -10% defense".
8. Beliefs
Will replace standard CivV G&K religion system with EoM beliefs.
Need to think of a names for gods/goddess.
9. Great People
(See list here.)
10. Specialists
PawelS is going to post a list of these guys, when he's able.
Then, need to add them all.
11. Mana
Rename "Faith" Yield to the "Mana" Yield.
Is used to purchase Summons, city enchantments, and Great Prophets.
Need to come up with some Summons.
Need to come up with some city


Basically, everything -- except for Resources and Promotions (both of which PawelS is going to work on); and Food Per Citizen, Settlers, and the Tech Tree (all of which are done) -- NEEDS to be done.

So, if there's anything on that list that sounds good to you, then state that you'd like to do that.

Edit:
I will start on Policies, btw.
 
Here's how Summoning will work.

Summoning:
Spoiler :

One must have enough Mana to purchase a Summon. What one can summon depends upon which god/goddess one follows (what belief one has chosen). Summoning through this method will cost a moderate amount of Mana.

For example, if one follows the “Nature God”, then one could summon a “Treant” (not necessarily a valid summon, just an example).




Here's how Arcane Magic will work. (Will NOT be in alpha.)

Arcane Magic:
Spoiler :

Arcane Magic will be divided into "Spheres of Magic". Each Sphere will give Mages 3 Promotions, which will give you access to spells (a la Magic in FfH). This system uses "Magic Power" as its strategic resource.

Spheres of Magic:
  • Fire (Pyromancy) -- Fire consumes all! Includes Fire spells, such as "Fireball" (damages enemy units by x%; has fireball animation).
  • Water (Aquamancy) -- Water drowns! Includes Water spells, such as "Water Walking" (allows non-water units to walk on water, has x% chance to wear off per turn).
  • Air (Aeromancy) -- Unleash the power of wind! Includes Air spells, such as "Flying" (allows units to cross impassable terrain, has x% chance to wear off per turn).
  • Earth (Terramancy) -- Earth remains steadfast! Includes Earth spells, such as "Earthquake" (damages enemy units by x%; has earthquake animation).
  • Nature (Sylvamancy) -- Nature is primal! Includes Nature spells, such as "Blight" (damages enemies in surrounding tiles x%).
  • Alteration (Mutomancy) -- Reality can be altered! Includes protection spells, such as "Wall of Force" (increases defense by x%), and body spells, such as "Haste" (increases movement, has x% chance to wear off each turn).
  • Illusion (Umbramancy) -- The mind is easily tricked! Includes mind spells such as "Phantasm" (gives “Fear” promotion [has x% chance to force enemy units to be unable to attack, has (high)% chance to wear off per turn]) & "Charm" (has x% chance to stun enemy units; has (high)% chance to wear off per turn).
  • Entropy (Destructomancy) -- Everything decays! Includes demonic spells, such as “Desecrate” (damages enemy units by x%, has (high)% chance to wear off each turn; has an animation showing “rot” [maybe the tile turns brown for a bit and stink lines come off of it]).
  • Metamagic (Primomancy) -- The basic elements of magic! Includes Metamagic spells, such as "Dispel" (strips magical effects from surrounding enemies for x turns).
Having access to a specific Sphere of Magic will allow you to select specific Magic Promotions. For example, if you have access to the Sphere of Entropy, you can give your 1st-tier Mage (more on Mages below) the promotion "Entropy I", which will allow you to cast a few Entropy spells.

To gain access to the Spheres of Magic:
  • First, you need to generate a "Great Sage" (replacement for Great Scientist).
  • Then, use your Great Sage to found a "Arcane Lyceum" (in other words, a Magic School), which is a national wonder. (This action will consume your Great Sage.) You will be able to choose your first Sphere.
  • Later on, you will be able to use a “Great Mage” (Mage hero unit) to expand your Arcane Lyceum, giving you access to more Spheres of Magic (one more Sphere each time you expand). Expanding your Arcane Lyceum will NOT consume your Great Mage.
  • After the first expansion of the Arcane Lyceum, there will be certain XP requirements of your Great Mage before they can expand it again.

Mages will be in 3 tiers.
  • 1st-tier Mages are built in cities with the "Mage Guild" building*. They will have access to 1st-tier Arcane spells, via means of means of Magic Promotions.
  • 2nd-tier Mages are promoted from 1st-tier Mages with the right amount of XP (a la Adepts being promoted to Mages in FfH). They will have access to 2nd-tier Arcane spells.
  • 3rd-tier Mages are promoted from 2nd-tier Mages with the right amount of XP (a la Mages being promoted to Archmages in FfH). They will have access to 3rd-tier Arcane spells. Will be a limit on how many 3rd-tier mages a civ can have.
Mages will generally have access to more than one Sphere of Magic, thus making them versatile casters.

*Some Civs may have a Mage Guild UB (such as “Wizard Tower” or “Mage Command” or “Warlock Enclave”).





Here's how Divine Magic will work. (Will NOT be in alpha.)

Divine Magic:
Spoiler :

Divine Magic comes directly from the gods/goddess. Therefore, before you can consider using Divine Magic, you will need to be following any of the beliefs. All beliefs will give access to Divine Magic. What spells you receive depend upon what belief you have chosen to follow.
Your Clerics will cast Divine Magic Spells. Casting Divine Magic spells uses the "Divine Power" resource.

How it works:
  • Lower level spells would be few small spells (that cost no Divine Power) meant to inspire (read: give a small buff to) your units. These will vary by god/goddess.
  • Upper level spells would be a few big, very damaging spells (that would cost Divine Power). These would be very powerful and would also vary by god/goddess.

Civs will always only have access to one god/goddess, meaning they will have access to only those spells specific to that god/goddess. (It will be possible to switch beliefs, remember.) As a result, Priests will be powerful but specialized casters.
 
Basically, everything -- except for Resources and Promotions (both of which PawelS is going to work on); and Food Per Citizen, Settlers, and the Tech Tree (all of which are done) -- NEEDS to be done.

So, if there's anything on that list that sounds good to you, then state that you'd like to do that.

I'd like to work on the civilopedia, actually. The tech trees that we have right now, are they going to change? (I know we are going to add in more later, I just mean if anything that is in now is going to be removed). If not, I can start writing entries for those techs.

Otherwise, if this is low priority, I can start work on the civs.
 
By the way, I've been looking at the source code and it looks like we can change CvPlot::CanHaveImprovement so we can have civs that have a unique improvement on mountains and ice and such stuff.
 
I'd like to work on the civilopedia, actually. The tech trees that we have right now, are they going to change? (I know we are going to add in more later, I just mean if anything that is in now is going to be removed). If not, I can start writing entries for those techs.

Otherwise, if this is low priority, I can start work on the civs.

It's unlikely that the current techs will be removed (perhaps "Upper Class", which doesn't do anything atm), adding new ones is more likely. But text descriptions are low priority, so it's better if you work on the civs, I will post my detailed plans about them soon.

rlaf is willing to work on the policies, my current plans for them will be posted here too.

(Of course everything I post here is open for discussion, I'm counting on the creativity of the team members.)

By the way, I've been looking at the source code and it looks like we can change CvPlot::CanHaveImprovement so we can have civs that have a unique improvement on mountains and ice and such stuff.

My current idea is that mines will generate +1 production per nearby mountain, so there's no need to create improvements on mountains for now, but we can have different ideas later...
 
I downloaded and built the mod file, but it turns out I have nowhere near all of the eight paid DLC dependencies required to even load this mod :( :sad:

It says that it requires: G&K, Genghis Khan, Denmark, Spain/Incas, Polynesia, Babylon, Korea, Wonders of the Ancient World :eek:

Depending on so many Firaxis DLC packs will vastly limit the amount of people that can use this to probably less than 5 to 10 percent of potential Civ5 players; and the content of those DLCs is not nearly interesting enough to warrant excluding the large majority of potential users. Many people feel that these small paid DLCs by Firaxis are a big step backwards from user-created mods that are free and open source, and seeing how these create barriers in this case really made me realize the legitimacy of this point. It may be justified to require G&K for the Faith system, but I'd really favor removing all other DLC dependencies to allow more people to be able to use this mod.
 
Top Bottom