1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Civilization 5 Modding Dead.

Discussion in 'Civ5 - Creation & Customization' started by Afforess, Apr 11, 2011.

  1. bitula

    bitula Prince

    Joined:
    Nov 15, 2010
    Messages:
    438
    Well if you interprete a DLC as no more than new maps, new civs and new graphics, then yes. But point is that you are severly restricted in making changes to game mechanics without the DLL, so you cant really create a unique module like for example FFH. As far as I understand, you cant even add new events (callback functions), and scripting with what they currently make available in Luna or whatever is quite lame.
     
  2. ShahJahanII

    ShahJahanII Homesick Alien

    Joined:
    Jul 19, 2011
    Messages:
    1,895
    Location:
    Austin, Texas
    Just wait till they release the DLL code...
    You will see.
     
  3. Gedemon

    Gedemon Modder Super Moderator

    Joined:
    Oct 4, 2004
    Messages:
    9,823
    Location:
    France
    I misread then, I've understood "DLC-like mods" by "mods looking like currently released DLC", not by "mods looking like an expansion pack", sorry.

    And I don't know for FFH, but I'm pretty sure RFC could be made without the DLL sdk.
     
  4. Spatzimaus

    Spatzimaus Mad Scientist

    Joined:
    Sep 21, 2005
    Messages:
    3,063
    Location:
    Los Angeles, CA
    You understand poorly.

    A LOT can be done with the current Lua environment. There are still a few event types that I'd like to see them add, but the existing events cover the most common ones (when a unit is created, when a combat starts, when a combat ends, when a turn starts, when a turn ends). For many of the rest, you can create functions that leverage the save/load functionality to approximate the effects. For instance, there's no actual "on building created" event, and yet the Building Resources mod has allowed us to mimic that by using the save/load features to check if a building has just been completed in the previous turn. And that was done back in October-ish.

    Scripting in Lua is the same as programming in any other language; once you get the hang of the syntax, an experienced programmer can do a lot of different things. There are a few areas where the functions are a bit sparse (mainly anything involving the AI's decision processes), but pretty much anything related to yields, culture, etc. are there.

    So don't overstate the need for the DLL. It may be the last piece needed for some of the truly great designs to be possible, but it's not like we're helpless without it.
     
  5. deanej

    deanej Deity

    Joined:
    Apr 8, 2006
    Messages:
    4,859
    Location:
    New York State
    There's a big difference between tacking on something with scripts and actually changing the way the game works in the DLL. There's and even bigger difference between using functionality designed for something and workarounds to achieve a similar effect. But maybe that's because I'm a civ4 modder; civ3 and civ5 (and probably civ2) modders swear by workarounds while their use is frowned upon by civ4 modders.
     
  6. President

    President Chieftain

    Joined:
    Mar 9, 2010
    Messages:
    57
    Now, I'm not a modder. I'm very from it, but I still hope I can contribute to the discussion with my viewpoint here. I'm a civ'ver, like anyone else for Civilization Revolution, Civilization IV, and Civilization V. I love the concept, and it's probably the top franchise in its niche, which is historical gaming. I probably play the game different from most other players, though, in that I really apply the games in the historical perspective.

    I used World Builder a lot to create scenarios based on history, and each game I like roleplaying as a country, like the United States after the revolution or a colonial England. Now, obviously, Civilization Revolution didn't allow that, but that game got me interested enough to buy the already out Civilization IV and get me fully interested into this franchise. With Civilization IV, I just couldn't roleplay. The civics system was too simple, the tech tree was far too small and shallow, etc.

    However, I found mods like something I believe is called New Realism, Rise of Mankind, and ultimately a New Dawn to satisfy the complexity I needed with Civilization to fit my particular style of gaming. The civics were complex enough, the tech tree made for more realism with how much depth there was, *there was a revolutions system*, etc. I had great fun with it. However, when Civilization V came out, it seemed much prettier at least, but I doubted it would fit my roleplaying style of gameplay.

    As it turned out, though, after World Builder was released, I was surprised to see that, unlike Civilization IV, Civilization V had sufficient sophistication to play really as a historical game. The civics system is the primary reason, because there really isn't much that a mod could improve with it philosophically, unlike that incredibly simple civics system for Civilization IV. The Civ V civics system covers the variations and deviations there are in political science, like differing Liberty and Freedom, showing that the first societies had three pathways in kingdoms (Tradition), republics (Liberty), and simply being a warring state (Honor), etc. I would simply just add some more trees and more variations for titles when civic trees are mixed, since presently the titles for a leader, like Lord or Doge, are only for the civic tree last purchased. However, of course, the tech tree was as lackluster in Civilization IV.

    Generally, Civilization V, I would say, is better off than Civilization IV was vanilla, but it will never be able to reach the quality or capacity, at least for me, as I had with my general Civilization IV experience, if it does not allow mods more leverage and liberty to design mods that can be the best fit for the civilization fans, because not everyone plays the game the same way, and you can't please everyone. Therefore, why not support the means to allow people to please themselves as much as possible?
     
  7. deanej

    deanej Deity

    Joined:
    Apr 8, 2006
    Messages:
    4,859
    Location:
    New York State
    An archer firing over the English Channel or units transmorgifying into boats doesn't break historical feel for you?

    There are plenty of examples of civ4's civics system in history. The French Revolution, for one.
     
  8. Valkrionn

    Valkrionn The Hamster King

    Joined:
    May 23, 2008
    Messages:
    14,450
    Location:
    Crestview FL
    The second one is nit-picking. They build rafts, boats, whatever. Each turn can be several months to centuries, it's not like it takes that long to build a boat.
     
  9. deanej

    deanej Deity

    Joined:
    Apr 8, 2006
    Messages:
    4,859
    Location:
    New York State
    D-day wasn't fought with marines who floated in on a few logs tied together. The Romans didn't defeat Carthage with guys sitting helplessly on dead trees hoping the current would take them where they need to go. Both used these things called navies.

    Besides, it's no more nit-picky than those who claimed that civ4 features horses transmorgifying into helicopters. Plus I refuse to believe that the year display can be mapped onto unit movements (or anything, for that matter). That's just too unrealistic, and the year display doesn't affect anything (unless you're playing RFC), so who cares?
     
  10. Valkrionn

    Valkrionn The Hamster King

    Joined:
    May 23, 2008
    Messages:
    14,450
    Location:
    Crestview FL
    You glossed over my point, I think. So let me make it rather clearer...

    It's a game. It's always going to be a game. No matter which iteration you look at, there are going to be gamey elements that detract from historical immersion; It is simple fact.

    You may find the elements of Civ5 break immersion more than those of Civ4, but others will find the opposite.
     
  11. bitula

    bitula Prince

    Joined:
    Nov 15, 2010
    Messages:
    438
    Well you said it yourself: There are still a few event types that I'd like to see. So what do I understand poorly? So as you see, you can not add your own callbacks or general function calls. As deanej said, there is a big difference between sripting using tricks and workarounds and actual coding. Im not sure, but I think that the dll source is the game itsel excluding the graphical engine, and probably some other propriatery modules. So having the source you can for example make "civ 5 civ 4 -like", for example bring back unit stacking, create new dimensions (like spell casting in FFH) - note, Im just speculating. So actually the dll code is the most important, major comoponent for modding, so I am not overstating anything, there really is a huge need for the DLL, otherwise there is no hope that civ5 will ever surpass civ4.
     
  12. Gedemon

    Gedemon Modder Super Moderator

    Joined:
    Oct 4, 2004
    Messages:
    9,823
    Location:
    France
    What civ5 mods have tried if I may ask ? What make you think you can't already made a civ4-like version of civ5 ?

    And is it because I'm not a programmer that I don't see so much difference between adding a function in C++ for opensource game or adding a function in Lua for civ5 ?
     
  13. Valkrionn

    Valkrionn The Hamster King

    Joined:
    May 23, 2008
    Messages:
    14,450
    Location:
    Crestview FL
    The only true difference is that in the C++ you can teach the function to the AI.
     
  14. Spatzimaus

    Spatzimaus Mad Scientist

    Joined:
    Sep 21, 2005
    Messages:
    3,063
    Location:
    Los Angeles, CA
    Well, that and the ability to add some robustness to the existing triggers. For instance, the start-of-combat event (RunCombatSim) has a few quirks:
    > It won't trigger if you use Quick Combat
    > It won't trigger if you're in Strategic View
    > If one of the two participants is a city (either unit attacking city or city attacking unit) you'll have the player ID of the city's owner but no way to tell which city it is
    > If the attacking unit is a nuke (which targets a hex instead of a city or unit), there'll be no positional information passed to the function to let you figure out which hex is being attacked or which players are being affected.

    Outside of those limitations there's a tremendous amount you can do with Lua. But access to the C++ might allow us to fix some or all of the above issues, which'll make things a bit less problematic.

    There are also just a few other little things that should be possible with the SDK. For instance, right now all units have the same max HP (10, by default), but with C++ you should be able to make it so that some units have 5 HP, some have 10, some have 15, and so on. These aren't the sorts of things that'll make or break a mod, but adding them will make things that much better.
     
  15. deanej

    deanej Deity

    Joined:
    Apr 8, 2006
    Messages:
    4,859
    Location:
    New York State
    I was also responding to stuff like this:
    There's also the fact that doing something in Lua is tacking on your code to how the game works, while using the DLL actually changes the way the game works. While there's no difference to to end user in either of these, both make the code inelegant, which is important to a programmer.
     
  16. NightKev

    NightKev Chieftain

    Joined:
    Nov 8, 2010
    Messages:
    31
    I would assume there's also performance penalties from abusing the lua like that, rather than altering the "low level" C/++ code.
     
  17. deanej

    deanej Deity

    Joined:
    Apr 8, 2006
    Messages:
    4,859
    Location:
    New York State
    Probably. There were a couple scenarios to my Star Trek mod that were unplayable beyond the first few turns until most of the Python code was moved to C++ due to turn lag.
     
  18. Gedemon

    Gedemon Modder Super Moderator

    Joined:
    Oct 4, 2004
    Messages:
    9,823
    Location:
    France
    ok, thanks for the clarification, still there is a difference between making something inelegantly and can't make something at all, like what was implying bitula.

    but I get your point, I was trying to make some code for my WW2 mod to add the function described by Spatzimaus for different units maxHP, and I can tell you that even for a non programmer it feels inelegant :D

    (not counting the fact that I get stuck at the number of unit figures shown based on the global MaxHP, not the "custom" one)

    and maybe it's a false impression, because I wasn't using python much with civ4, but isn't lua interpreter for civ5 faster than python for civ4 ?
     
  19. bitula

    bitula Prince

    Joined:
    Nov 15, 2010
    Messages:
    438
    Look, what I think, and correct me if I am mistaken, that the C++ source is the game itself excluding the graphical engine (gameboy or whatever ) - so for example you cant change hexes into squares therein. But it directly interfaces with the engine, and for example it contains full AI code, so you can completly rewrite the AI. It also creates an interface for LUA, so LUA is nothing else but the exposed interface functions and callbacks, so you, as a scripter, are severly restricted to what and how is exposed to you. So how is this not a HUGE difference? And I dont believe you can make Civ5 Civ4 like with LUA. Or are you telling me, you can add corporations, religion, unit stackig, great generals etc via LUA? No, you cant, but I bet you can do it with the dll source. But correct me, if I am wrong.
     
  20. smellymummy

    smellymummy King

    Joined:
    Jul 31, 2002
    Messages:
    705
    for the most part yes you can do those things via lua scripts.

    besides isn't stacking enabled by a row value in the db?

    i'm guessing though that with the dll, things should be easier to implement, instead of having to use the lua API provided. i never saw how it worked with the civ4 dll so this last bit mostly speculation

    ETA:
    as it stood when things first came out, it was very possible to teach AI with lua. it was just a matter of how much work someone would want to put into scripting such a thing. i don't see how it will be all that much easier with source, i mean when it comes to teaching AI you'd imagine a lot of conditions to monitor and base decisions off of, logically it wouldnt be all that much different than with lua to add new things

    of course editing, changing, copying bits to make something new, all from the source could help speed things up
     

Share This Page