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

Ideas and brain storming for Europe map scenario

Discussion in 'Civ4Col - Medieval: Conquests' started by Fullerene, Aug 18, 2013.

  1. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,987
    That is usually not a major issue. If the DLL can't handle the map, the problem should be fixed in the DLL. Sometimes it might even be faster than modifying the map to cope with DLL limitations.
     
  2. Fullerene

    Fullerene Chieftain

    Joined:
    Aug 26, 2009
    Messages:
    228
    Gender:
    Male
    Hmmm, I think it would be really cool to have Europe Map scenario for the next release maybe.

    I could just work forward the map script I've posted to this thread earlier. Or maybe build real historical scenario with preset cities. Maybe crusader era scenario? Any suggestions?

    I'd really enjoy the mod even more if I was able to play on Europe shaped continent, and I guess I'm not only one.
     
  3. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    I agree, and I would be glad to assist in getting it working correctly. I just finished up making Trade Screens work off of a single Python file so it will be really simple to add new screens.

    I think you have suggested ideas where we use the whole map and there are no TradeScreens, as they are now anyway. That maybe interesting to add at some point for sure, but for now we should stick with the simpler Trade Screens.

    For a Map, I think something like this would be cool...



    With a Map like this we could actually have some on screen TradeScreens and some off. Like Constantinople could be a trading center and another on the African Coast. Anyway, Night could merge the AI_Trading back into development and you could use that branch to work from. You would just have to start working on it and then we can figure out what we need to adjust and such.
     
  4. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,987
    One very important question: the load/save code in CvInfos.cpp, are they used for scenario maps? I noticed some bugs in CvInfo::read/write meaning whatever is using that code is currently broken. My codechanges did break something (it's wip), but the majority of the issues were present before I started working on that file.

    If those read/write functions are only used for locked modified assets, then I have a simple solution: edit XML to disable that option and don't care about the code. We should disable it anyway as RaR have rejected bug reports due to being unable to load savegames due to that stupid setting.

    I'm all in favour of adding a scenario map (though I generally prefer random maps). My concern is that it could be made now and broken before next release due to DLL bugs.
     
  5. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    As far as I know the read/write in Infos isn't used, that's what I was told. At some point I even quite adding anything to read/write to save some time and have never had an issue because of it but haven't worked with scenarios before though.
     
  6. Fullerene

    Fullerene Chieftain

    Joined:
    Aug 26, 2009
    Messages:
    228
    Gender:
    Male
    Yes, it makes no sense to create scenario file if it's going to be broken very soon. But we can design what to do at least. There are some issues:

    1. Is the scenario going to be submod or 100% supported with main mod. I'd prefer it to be supported, so it can be updated with ease. Maybe somehow add support for plug-in style events too.
    2. Have to decide how to use trade screens. I think silk road could be accessed in the east around Caspian sea. Spice route has access point around Red sea. But it's long way for western civs to travel there. So maybe add some extra trade sceens like the mentioned byzantine trade screen and maybe saharan "Salt road screen"
    3. List of Nations. The good thing of scenario file is that you can rename the civilizations. But it still would be preferred to have unique civ for every nation in scenario.But first have to decide the start date of the scenario.
    ---

    As far as I understand anything I think the Scenario file loading is handled with python in the CvWBDesc.py
     
  7. Lib.Spi't

    Lib.Spi't Overlord of the Wasteland

    Joined:
    Feb 12, 2009
    Messages:
    3,671
    Location:
    UK
  8. Fullerene

    Fullerene Chieftain

    Joined:
    Aug 26, 2009
    Messages:
    228
    Gender:
    Male
    The random map game starts 476 AD. But I feel that Crusader era scenario could be nice. If the start date is set too early with just few preset cities, it's not too different from random map.
     
  9. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,987
    I'm not convinced they aren't used. They are not used for normal savegames, but that will not rule out some other case. I strongly suspect either scenarios and/or games with locked assets. It took quite some time to code them for vanilla. It makes little sense if they are never called.

    Maybe somebody should add a false assert in load and save and then make a scenario and see if the assert triggers.

    If they are never used, then we might as well delete them, or most of them. The way they are now, the compiler treats them like they are in use.
     
  10. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    1. I'd help with a 100% supported

    2. The Trade Screens shouldn't be that big of a deal and we can play test to see what's best

    3. I like the idea of starting in the Crusade era, then we can look to history for the Civs that we start with with. The time frame could be from the Crusades 11th century the 16 th century or what ever works.
     
  11. Fullerene

    Fullerene Chieftain

    Joined:
    Aug 26, 2009
    Messages:
    228
    Gender:
    Male
    I made quick search in the forums and I think that the read/write in the CivInfos.cpp are for "lock modified assets" option. Didn't test it though.
     
  12. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,987
    I ran some tests and it turns out that neither scenario maps or games with locked assets tries to save the XML data. I consider that great for us, but it leaves the question why the code is written in the first place :confused:

    I merged Kailric's AI trader and trade screen code into develop. That branch should now be completely up to date regarding savegames. AFAIK we don't have anything planned, which would ruin savegame compatibility meaning anything made with the develop branch should work with next release.
     
  13. Fullerene

    Fullerene Chieftain

    Joined:
    Aug 26, 2009
    Messages:
    228
    Gender:
    Male
    Hmm is there any new features that you can't code in the scenario file? Civics, Trade perks, techs and censures etc are all civics in the terms of game engine? I'm not sure how the scenario file loading handles them, guess I have to test it.

    I'm wondering whether it would be possible to have a check if the game being played is a scenario game. This could allow modding python events without disturbing the random map games. Maybe just add a bool value m_bScenarioGame in the CvGame class?
    Or actually, events should be tied to the specific scenario, so different scenarios could have different events. Not sure how would I do that...

    And what is the current state of the unplayable nations like Byzantines and Mongols? Why aren't they playable?
     
  14. Fullerene

    Fullerene Chieftain

    Joined:
    Aug 26, 2009
    Messages:
    228
    Gender:
    Male
    I think scenario could be split into 2 files, map and events. Map is normal scenario file and events is a python file that is imported into CvEventManager.py somehow... Both files share the name so you can identify the different scenarios. Hmmm the implementation into CvEventManager.py requires some thinking....In CvEventInterface.py you could do check which is the name of the scenario played and pass the corresponding events.py to the AppInterface as CvEventManager. I guess this might be the easiest way if you want to have multiple scenarios with events.
     
  15. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    I would think, for a 100% supported scenario dll, that we need to add a Civ4ScenarioInfos.xml and from their we can add all the different types of info we need for each Scenario, then Events could then be assigned to a ScenarioType. Then we just need either a Button that appears in WorldBuilder, or in Cheat Mode, or a Control hotkey that brings up the Scenario Menu that lets you choose which Scenario and all its attributes is saved.

    The Byzantines and Mongols are not set to playable basically because they don't fit with the default Historical Theme for M:C. The Mongols didn't appear what, until the 1200s, and Byzantium was already a thriving society at 476. I have plans to add Byzantium to the mod as a NationState just like the Pope and Rome is now, but I am still in the testing mod with Rome to see how it is working out. But any of the Civs can be configured in the XML to be playable.

    Do Scenarios just use all the default xml values? Like if you placed Byzantine on the map and wanted the Player to be able to play them, would you then have to create a separate mod with separate xmls so you can set them as Playable? If so, then in the proposed ScenarioInfos we could have a "PlayableCiv" option where the dll would over ride certain settings for the Scenario, and likewise with other settings as well. The dll would check for Scenario and then automatically override certain settings.
     
  16. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,987
    I tried following this guide:

    That works ok, but if I edit the file with a text editor, I notice that there is no place for starting techs. We need to figure out how to solve that in order to get proper scenario support.

    Other than that, ColonizationWBSave looks pretty robust compared to DLL changes. I'm no longer that concerned that it will break.
     
  17. Fullerene

    Fullerene Chieftain

    Joined:
    Aug 26, 2009
    Messages:
    228
    Gender:
    Male
    I think Scenario file already has PlayableCiv tag that overrides xml.No need for separate mod for that. But if I set Byzantium to be playable will the game be stable?
     
  18. Fullerene

    Fullerene Chieftain

    Joined:
    Aug 26, 2009
    Messages:
    228
    Gender:
    Male
    Techs are civics, right? Well anyway, it's possible to add all starting techs with python event at game start.
     
  19. Kailric

    Kailric Jack of All Trades

    Joined:
    Mar 25, 2008
    Messages:
    3,094
    Location:
    Marooned, Y'isrumgone
    Byzantium isn't used in M:C at the moment so you can just set them up like the other playable civs and you would have no worries. In fact for the scenario you could then add what ever Civs you want and just have them noneplayable for random games.

    I'd like to add a better interface for adding techs to any player. I've never tried modding world builder but it would be good if we can use the same system as Civ4 for adding techs.
     
  20. Nightinggale

    Nightinggale Chieftain Supporter

    Joined:
    Feb 2, 2009
    Messages:
    3,987
    It loops all civic types and stores the selected one for each. The type for inventions is currently -1, which is why it's skipped.

    It would be interesting to know where the read/write function for scenario files is as this might not be the only data we would like to add.

    Good point. However it would still be preferred if we could figure out how to actually save techs rather than relying on a python extension.
     

Share This Page