[WTP] Modding Academy - Training new Modders

Should we introduce the WTP Modding Academy to teach new modders?

  • No, it is a waste of time and effort. Nobody will care.

    Votes: 0 0.0%

  • Total voters
    18
I would like to add that xml files are loaded by the DLL file. This means we can mod what tags each file has, how to load them into memory when loading xml files and how both DLL and python can access tags. Events and event triggers are also handled by the DLL, meaning we can mod that part too.

This means proposals for making something new possible or something easier to do is mainly a question of coding difficulty and time rather than if it's possible. One thing I noticed is
PHP:
<PlotType>1</PlotType>
It would make sense to allow typing in the string of the plottype instead, like
PHP:
<PlotType>PLOT_HILLS</PlotType>
Tiny detail, but it makes the xml file more readable. It also makes it less prone to bugs if the type is something, which might change in the future. Not likely for plot types, but there are many types, which might.
 
Sounds good, but let us not discuss changes to the Python Event System in another thread. :)
(That is not the purpose of a "Training Announcment Thread".)
 
Sounds good, but let us not discuss changes to the Python Event System in another thread. :)
(That is not the purpose of a "Training Announcment Thread".)
Agreed, but it was just an example related to yesterday. My main point is that such changes can be made and that everybody can point out details, which could be better. The xml interface isn't "fixed", which is the main message.
 
So ok guys, there are new modders that request to be trained.
But to do so, these new modders need to answer specific questions.

---------

Like
  • "Is it possible to ...?"
  • "Who knoes how to ...?"
  • "How do I change ...?"
  • "In which file can I find ...?"
  • "How do I edit files with ... extensions?"
  • "Could somebody tell me why ... does not work?"
  • "I wrote this code, but it does not work. Please help."
  • "Could somebody give me an advice on ...?"
  • "Is there a good tutorial for ...?"
  • ....
---------

Summary:

First try yourself and then start asking specific questions.
If you just lean back and say "teach me", nothing will happen.

Post samples like screenshots, files or code as a base for discussion.
Show that you actually try to do something interesting others may want as well.
 
Hello! I'm new here :)

I have a couple threads that ray has identified as good things for a beginner

https://forums.civfanatics.com/threads/quest-idea-corrupt-foreign-noble.672205/
https://forums.civfanatics.com/threads/more-storage.670585/page-3

I know the source is located here on git (The plains branch has the newest)
https://github.com/We-the-People-civ4col-mod/Mod/tree/Plains

I'm an experienced data analyst, so I mostly work in SQL/Oracle but I should be able to handle XML and Python. I've never had an occasion to edit / compile DLL before

In case and point, I can't even find a file named CvYieldInfo on git! Which to me is a sign that it's not a file, which in turn to me tells me I don't know what I'm doing! :crazyeye:

Last thing I want to do is cause issues for y'all and slow things down!
 
CvYieldInfo:: functions are contained in this file:

...\Project Files\DLLSources\CvInfos.cpp
(Header File is of course CvInfo.h)

Generally it could have been a file of its own. :dunno:
(But it would only have had a few variables and a few "read" methods.)

Last thing I want to do is cause issues for y'all and slow things down!
See, every beginner needs time to learn. Thus it is normal that he or she asks for help and advice. :dunno:
But in the end if he or she is sincere this may pay out and he may one day become an experienced modder as well.

A modding community can not be "experts only".
Because all experts are / were beginners at first.

I've never had an occasion to edit / compile DLL before
It is easier than you may think once you invested the first 2 weeks to learn the basics to really get started on your own.
After that you simply continue learning and learning with every small piece of code.

--------

Say "Yes" and get started.
Ask for help and advice wherever needed.

Or say "No" and give up.
Then you never had enough motivation to become an experienced modder anyways.

Nobody will answer this except yourself. :dunno:

-------

Enter the secret temple of modding and learn all its myserious arts yourself.
Or stay outside the door and stare at it in fear and awe and one day regret your decision.

You need to make the first steps yourself and thus deciding to start the real journey.
You will stumble many times but get help from others to get up again.

Many times it will be frustrating and you may sometimes simply think you will fail.
But if you have enough perseverance and motivation you will succeed in the end.

There are the grandmasters of "programming", "graphics", "historical research", "game design", ... all willing to teach their wisdom.
But they can only teach if you are willing to invest the effort to learn and practice and practice and practice and ...

-------

Summary:

Either you want to become a modder or you do not.
Forget all "maybes" and all weak excuses.
 
Last edited:
CvYieldInfo:: methods are contained in this file:
It's called functions and when they are in a class or struct, they are called member functions. Likewise variables in a class or struct are called member variables. Methods is the word used for functions in some other programming languages such as C#.

This isn't about being pedantic. It's more about knowing the right words makes it a whole lot easier to google whatever problem you have run into.
 
Anybody interested in a "graphical modding introduction for beginners"?
I would try to teach you guys the basics of graphical modding in Civ4Col / WTP.
  • Most important XMLs for graphical configuration and their specific details in WTP
  • Overview / quick introduction to important file formats used in graphical modding
  • Overview / quick introduction to WTP specific additions for graphical debugging
  • Overview / quick introduction to important tools for 2D modding to create 2D files
  • Overview / quick introduction to important tools for 3D modding to create 3D files
As context:
I am not a "pro graphical modder", so others could show you a lot of that stuff better than me.
But I have acquired a broad knowledge and experience base over the last 13 years and can mostly help myself.

@Schmiddie , @Zeta Nexus , @Moandor , @vissercsp , @MightyToad

Would you guys like to join as well?
Some of you guys could give myself a few useful tips and maybe you guys could hear some new stuff as well.
It would thus also be a learning experience and knowledge exchange for all of us. :)

If there is interest I will organize another session of our "WTP Academy". :thumbsup:

Summary:
Let me know if there is interest.
If there is enough interest, I will organize it.
 
Last edited:
Ok guys, here is the appointment finder to find a suitable date for the training:
"Graphical Modding Civ4BTS / Civ4Col".

Please sing in if you want to participate. (Also please read below.)

Spoiler :


Hi guys,

as I said, I would offer a training for "Graphical Modding Civ4BTS / Civ4Col".
It is kind of an "intro" for beginners, but more detailled questions and discussions will also be possible.

I am not a "professional graphical developer / top graphical modder" but I should be able to give a good overview of these topics.

  • Most important XMLs for graphical configuration and their specific details in WTP
  • Overview / quick introduction to important file formats used in graphical modding
  • Overview / quick introduction to WTP specific additions for graphical debugging
  • Overview / quick introduction to important tools for 2D modding to create 2D files
  • Overview / quick introduction to important tools for 3D modding to create 3D files

So for anybody interested, lets us see if we find a suitable time slot for most of us.

Please pay attention that all time slots suggested are CET !
(So please check for yourself what time it is in your time zone.)

Duration of the session will be about 2 hours.
So I really can not give a real deep dive, it should give a good starting point though.

In the poll do NOT leave your real name and do NOT post your eMail.
Do not post such private data in these polls !

All that is needed is either your nickname / your avatar of either CivFanatics foru, or discord.
(If you have questions, contact me at CivFanatics or discord.)

Best regards
raystuttgart
(WTP team member)

 
Last edited:
**<<<---- TRAINING Date Announcement ---->**

Ok guys, the next training fo the WTP Academy has been scheduled.

Topic: Graphical Modding Civ4BTS / Civ4Col
Conference Platform: Zoom
(all you need to do is just login on that day - it is free and no installation required)

Date: Saturday, October 30th (next week)
Start Time: **6 PM** CET
End Time: **8 PM** CET

So if you want to join the training that day, all you need to do is click the link (on next Saturday, 30th of October)
https://us05web.zoom.us/j/88484780385?pwd=dnQ4S1FFaTdXU1BGbXZERUtkejJ3QT09
 
I have done some modding of XML, but I never really considered it to be true modding. Stuff like changing the game from a yearly basis to a monthly basis or reducing the effects of culture on border growth.

I would be lost when it comes to creating new content.
Hi Norian (and other part-time modders),

Could someone elaborate on how the effect of culture on border growth is reduced? I also prefer slower-expanding borders!

I tried finding the values in various XML files, but couldn't figure out which one controls the city border growth.

Best regards,

HM
 
some buildings in the colony generate culture (it is she who expands the borders of your colonies). hovering over a building on the colony screen will show it. or you can look at the list of buildings in Pedia.
 
Could someone elaborate on how the effect of culture on border growth is reduced? I also prefer slower-expanding borders!

Take a look at CIV4CultureLevelInfo.xml.
You can simply increase the numbers of iThreashold so the borders will expand more slowly.

Spoiler :

Code:
<Civ4CultureLevelInfo xmlns="x-schema:CIV4GameInfoSchema.xml">
    <CultureLevelInfos>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_NONE</Type>
            <Description>TXT_KEY_CULTURELEVEL_NONE</Description>
            <iThreshold>0</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_POOR</Type>
            <Description>TXT_KEY_CULTURELEVEL_POOR</Description>
            <iThreshold>0</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_FLEDGLING</Type>
            <Description>TXT_KEY_CULTURELEVEL_FLEDGLING</Description>
            <iThreshold>100</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_DEVELOPING</Type>
            <Description>TXT_KEY_CULTURELEVEL_DEVELOPING</Description>
            <iThreshold>300</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_REFINED</Type>
            <Description>TXT_KEY_CULTURELEVEL_REFINED</Description>
            <iThreshold>1000</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_INFLUENTIAL</Type>
            <Description>TXT_KEY_CULTURELEVEL_INFLUENTIAL</Description>
            <iThreshold>10000</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_LEGENDARY</Type>
            <Description>TXT_KEY_CULTURELEVEL_LEGENDARY</Description>
            <iThreshold>100000</iThreshold>
        </CultureLevelInfo>
    </CultureLevelInfos>
</Civ4CultureLevelInfo>

 
Take a look at CIV4CultureLevelInfo.xml.
You can simply increase the numbers of iThreashold so the borders will expand more slowly.

Spoiler :

Code:
<Civ4CultureLevelInfo xmlns="x-schema:CIV4GameInfoSchema.xml">
    <CultureLevelInfos>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_NONE</Type>
            <Description>TXT_KEY_CULTURELEVEL_NONE</Description>
            <iThreshold>0</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_POOR</Type>
            <Description>TXT_KEY_CULTURELEVEL_POOR</Description>
            <iThreshold>0</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_FLEDGLING</Type>
            <Description>TXT_KEY_CULTURELEVEL_FLEDGLING</Description>
            <iThreshold>100</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_DEVELOPING</Type>
            <Description>TXT_KEY_CULTURELEVEL_DEVELOPING</Description>
            <iThreshold>300</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_REFINED</Type>
            <Description>TXT_KEY_CULTURELEVEL_REFINED</Description>
            <iThreshold>1000</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_INFLUENTIAL</Type>
            <Description>TXT_KEY_CULTURELEVEL_INFLUENTIAL</Description>
            <iThreshold>10000</iThreshold>
        </CultureLevelInfo>
        <CultureLevelInfo>
            <Type>CULTURELEVEL_LEGENDARY</Type>
            <Description>TXT_KEY_CULTURELEVEL_LEGENDARY</Description>
            <iThreshold>100000</iThreshold>
        </CultureLevelInfo>
    </CultureLevelInfos>
</Civ4CultureLevelInfo>

Great! This is exactly what I was looking for. Thank you Ray (and Mr.ZorG) for the quick response.

Best regards,

HM
 
Top Bottom