Results 1 to 18 of 18

Thread: Modding Support

  1. #1
    Join Date
    Feb 2010
    Posts
    15

    Modding Support

    I'm sure Civ5 will have excellent modding support, but is there a chance we can get some early access to the APIs? Is the code-based modding going to be similar (C++ for the game rules in a DLL and Python for the interface) to Civ4?

    As the author of one of Civ4's most popular mods (BUG Mod), I'd love to get my hands on a beta to start poking around and getting a feel for where we'll be able to have the biggest impact.

    Good luck with the release. I'm very excited to see this next version.

    Hex tiles FTW!

  2. #2
    Join Date
    Feb 2010
    Posts
    7
    Hex tiles are lovely

    Well, as it comes for mods, the xml thing was really nice. Though, for new people, it can be a little messy and annoying (specially for the ones who want immediae results). It would be nice that the game itself had a tutorial on civ creations.

    This idea might sound crazy at the moment, but a leaderhead editor could be nice too. You know, like the editor from the sims 2. It would bring more modders to the field.

  3. #3
    Join Date
    Feb 2010
    Location
    Olympia, WA
    Posts
    1
    An early look would help the modding community get mods out more quickly.

    I work on the Realism mod, which is an older mod that has loads of art content. We'd love to port our mod to Civ V.

    Probably the most important question for us is: Will the Civ IV art assets be compatible with or portable to Civ V? It looks to us like Civ V is still using a version of the Gamebryo engine, so we're hopeful that our assets can be ported.


    Also, for the record: we and numerous others rely on the BUG mod for its interface improvements. If there is anyone that Firaxis should give a beta to it's EmporerFool.

    But, if you wanted to send us a beta we'd put it to good use too

    -Josh
    Last edited by Sjodster; 02-18-2010 at 04:02 PM.

  4. #4
    Join Date
    Feb 2010
    Posts
    4
    I agree, hopefully modding support will be implemented and made available (for example in a good documentation prior to the release) rather early.
    Would be great to implement stuff I miss in Civ5 ;-)

  5. #5
    Join Date
    Feb 2010
    Posts
    5

    Magic lamp for modders

    I suggest for all modders to use this thread as genie's “magic lamp”. Basically we put here our wishes about modding possibilities in Civ 5, developers read them and implement them. Easy, huh? No long discussions (except maybe about some elaborations), no offtopic, no trolling and all that.

    1. I would really like it to have support for text variables in ingame messages. For example, imagine some quest about, well, harbor building. It is obvious that number of harbors required is linked to map size and it is, naturally, variable. But I am asking for text variables. I want to make it possible to grab some bits of text from carefully built data array and to put them in basically same quest. This feature would increase replayability factor, because quests will seem new and fresh for a while.

  6. #6
    I wonder if they'll have any sort of actual development kit. Of course it wouldn't be anything like the UDK or a full-fledged engine access, but some simpler tools.

    Generally I fail at all aspects of development (except design but that's the easy one ), but I can see from an artists perspective, rather than have to worry about managing all those resources with code trying to put their fun-stuff in, it'd be much easier to manage it through a toolset.

  7. #7
    Join Date
    Jun 2008
    Location
    Yorkshire, England
    Posts
    869
    It would be nice if we could host a mod in multiplayer from the main game lobby or if people could at least see a list of mod games from the main game lobby as is now not many people play multiplayer mods due to the fact they cant see the games from the main lobby!

  8. #8
    Join Date
    Feb 2010
    Posts
    8

    Modding for non-programmers

    It would be great if there was an event creation interface, so modding could be done without having to be a programmer. I realize that to make it as moddable as possible, you open it up at the most basic level. But it would be nice to have an interface for those of us who don't want to have to learn python or C++.

    Something with "if...then" scripting, where we could use specific units, or unitclasses as variables. Remember Civ2? Its been a while, and the functionality was limited, but was relatively simple, easy to fix, and I didn't have to take night classes to do it.

    Anyway, that would be a good thing to include. Other games do it... its been done before in the Civ series, and it would be welcome here.

  9. #9
    Join Date
    Sep 2008
    Location
    Melbourne
    Posts
    652
    Quote Originally Posted by EmperorFool View Post
    I'm sure Civ5 will have excellent modding support, but is there a chance we can get some early access to the APIs? Is the code-based modding going to be similar (C++ for the game rules in a DLL and Python for the interface) to Civ4?

    As the author of one of Civ4's most popular mods (BUG Mod), I'd love to get my hands on a beta to start poking around and getting a feel for where we'll be able to have the biggest impact.

    Good luck with the release. I'm very excited to see this next version.

    Hex tiles FTW!
    Just a question, but how can they release the modding components when the code is still being worked on? Seems like a pipedream to me. Though it might be possible to see some docos.

  10. #10
    Join Date
    Feb 2010
    Posts
    15
    Quote Originally Posted by Dale View Post
    Just a question, but how can they release the modding components when the code is still being worked on?
    I would hope that by this point they have finalized at least some of the core APIs. If not, I don't see how they can possibly release in the Fall. The QA and release cycles are not short.

    Regardless, I'm only requesting that they release it when they have it; if that's now, great. But it's more likely a request for future action. I'd love to hear any design decisions they made, though. Even something like "Civ5 will use the same Boost::Python layer with a similar EntryPoints structure using UI framework X." would be awesome.

    Apparently Civ4 used an off-the-shelf UI framework (GFC), but I have been unable to find any information about what framework that is so I could get API documentation. Sure, we all have the list of functions in the API, but no description of how to use it. What I know about it I gleaned from tweaking calls in the existing screens. If they didn't use a function it's useless to me, but it could be very helpful if I knew how to use it.

    As for documentation, there wasn't any with the original game so I'm not holding my breath on actual technical documentation. It's probably hard to justify spending developer time on it to the people holding the purse strings.

  11. #11
    Join Date
    Sep 2008
    Location
    Melbourne
    Posts
    652
    Quote Originally Posted by EmperorFool View Post
    I would hope that by this point they have finalized at least some of the core APIs. If not, I don't see how they can possibly release in the Fall. The QA and release cycles are not short.
    The code will be changing right up to release date, and even then afterwards. If they do release an API then there is no guarantee that it won't change before release. Safer to just wait for release.

  12. #12
    Join Date
    Feb 2010
    Posts
    3

    Modding for dummies

    Why can't Civ5 just have an expanded World Bilder with the ability to save as scenario and change unit characteristics, like the one found in Civ3. That would be just right for me at least.

  13. #13
    Join Date
    Feb 2010
    Posts
    15
    In case any Firaxians are reading this thread I would like to request that more basic game information be exposed to Python. For example, in BUG I use this hack to find the name of the mod's folder:

    Code:
    try:
      replay = CyReplayInfo()
      replay.createInfo(0)
      modDir = replay.getModName().replace('\\', r'/')
    except:
      # game isn't fully initialized yet, try again later
    Instead it should be as easy as this:

    Code:
    modFolder = CyGame().getModFolder()
    Same for the EXE and INI folders. BUG has a hack where I have a CvAltRoot.py module that the user must modify and stick into their Python folder when they use the /altroot command-line option. That means a lot of explaining to users that aren't familiar with Windows or Notepad. A simple

    Code:
    iniFolder = os.path.basename(CyGame().getIniFile())
    would do wonders to make things easier for modders and players alike. I have added these things to BULL (the BUG DLL), but not everyone uses it so BUG must handle both cases.

    Also, the bootstrap/initialization sequence is rather complicated and differs depending on whether the user starts a new game--CvAppInterface.preGameStart()--or loads a saved game--OnLoad event. The Python layer is not fully initialized during the OnInit event that is fired before both of the above. For example, during onInit the code at the top of this post raises a C++ exception.

    Finally, I would like the ability to add folders outside of the Python folder hierarchy dynamically to the Python search path and add folders that act s EntryPoints in that the DLL can call functions within the Python modules inside them. Right now you can only call Python modules that exist in the core game's EntryPoints folders (or a mod's). New files in CustomAssets/Python/EntryPoints are not accessible from the DLL, requiring BUG to include modified versions of those modules which I like to avoid.

    Thanks, and I really cannot wait to get my hands on Civ5!

  14. #14
    Join Date
    Feb 2010
    Posts
    15
    Quote Originally Posted by Dale View Post
    The code will be changing right up to release date, and even then afterwards. If they do release an API then there is no guarantee that it won't change before release. Safer to just wait for release.
    I agree that the casual modder might be confused or upset if the API changes before release, but I'm a big boy. I can handle API changes and do so in my day job all the time. I would prefer to have information that might change rather than no information at all.

    Sure, I might be a little perplexed if they provide a Python API and at release switch to Ruby, but I think they are smart enough to find a happy median. And honestly that would give me a great excuse to learn Ruby!

  15. #15
    Join Date
    Sep 2008
    Location
    Melbourne
    Posts
    652
    Quote Originally Posted by EmperorFool View Post
    I agree that the casual modder might be confused or upset if the API changes before release, but I'm a big boy. I can handle API changes and do so in my day job all the time. I would prefer to have information that might change rather than no information at all.

    Sure, I might be a little perplexed if they provide a Python API and at release switch to Ruby, but I think they are smart enough to find a happy median. And honestly that would give me a great excuse to learn Ruby!
    No doubt, and I'm a big boy too and could handle it.

    But the legal issue is probably more of a factor here than a code one. Let's say they release the SDK early so we could look at it. We find code for concept X in there. We start discussing it on the forums and how we can make it better. On release day we all update to the release version and wham, concept X is removed along with all the code.

    I bet there would be massive complaining on the fan forums, "Why was concept X in a month before release, which was ultimately cool, and now it's gone! I hate you Firaxis, you suck I'll never buy another game from you".

    You get the point.

  16. #16
    Join Date
    Feb 2010
    Posts
    15
    How is that any different than what happens already with each patch? I think we're in agreement about the whole thing being suboptimal due to societal constraints and norms. Very boring.

    Sooo, let's turn to the topic of what would make a good modding platform, eh? What pain points did you find when modding Civ4. Did you dive straight into the SDK or did you do any Python modding at first?
    Last edited by EmperorFool; 03-21-2010 at 07:31 AM.

  17. #17
    Join Date
    Sep 2008
    Location
    Melbourne
    Posts
    652
    Quote Originally Posted by EmperorFool View Post
    How is that any different than what happens already with each patch? I think we're in agreement about the whole thing being suboptimal due to societal constraints and norms. Very boring.

    Sooo, let's turn to the topic of what would make a good modding platform, eh? What pain points did you find when modding Civ4. Did you dive straight into the SDK or did you do any Python modding at first?
    We didn't get the SDK for a few months after release remember.

    But my first mod was Ranged Bombardment. A composite SDK and python mod.

  18. #18
    Join Date
    Feb 2010
    Posts
    15
    I didn't get into the modding scene until just before BTS came out so I wasn't around for the initial SDK release. I assume the SDK will be released with the game this time as Firaxis does seem to learn from their past.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •