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

About this Mod

Discussion in 'More Naval AI Modmod' started by Tholal, Jan 3, 2013.

  1. Tholal

    Tholal Emperor

    Joined:
    May 19, 2009
    Messages:
    1,676
    Current Version: 2.63

    The original purpose of this mod was to once again get the AI sailing the high seas. It has since expanded to include numerous AI enhancements and bugfixes as well as a few game tweaks. This mod includes changes to many python and XML files, as well as a rebuilt DLL.

    WARNING: Since this is being installed as a 'patch', it will copy over the files in the assets directory. Be sure to make a backup or keep the original FFH2 installer handy. Due to XML changes, this mod is incompatible with any existing save games from FFH 0.41o.

    This mod does require Fall from Heaven II version 0.41o. The link for the installers for FFH2 0.41 and patch "o" can be found here - http://forums.civfanatics.com/showthread.php?t=308020

    To install More Naval AI (MNAI), simply download and run the latest installer. It will install over the base version of FFH2, so if you want to keep both, make a copy of the original before running the MNAI installer.

    Download link


    Overview of Changes:




    The User Interface has gotten a major upgrade via the inclusion of the B.U.G. mod (BTS Unaltered Gameplay). Hit CRTL-SHIFT-O to bring up the options menu (or use the little bug icon in the upper left). Though the sheer number of options can be overwhelming and sometimes confusing, overall this is a vast improvement to the UI. Any and all features can be easily switched on and off, so dont be afraid to try something new! And if you like mapping out where you want to plant future cities, be sure to check out the Strategy Layer (ALT-X)!

    Player AI has been changed to include jdog's Victory System from Better AI. The AI civs can now choose a specific Victory condition they are attempting to achieve and use this knowledge to influence the rest of their decisions throughout the game. Previously passive civs (such as the Infernals and Mercurians), now take an active part in the game.

    AI Tech evaluation was put through a major overhaul. Many additions were made to account for new FFH abilities as well as to include a more detailed look into what units and buildings various techs open up. The AI will also take into account its current financial situation and Victory goals when deciding which techs to pursue

    AI Unit movement has also undergone many changes. The base of this was taken from Better AI and included a noticeable improvement in the AI's ability to move troops and settlers across water. Adaptations were made to better account for some of FFH's features (Inquisitions, Feasting and Lair Exploration just to name a few) and tweaks too numerous to count to many facets of unit AI (such as promotions, upgrades and AI type selection) have been made after much playtesting and watching how the AI handles itself.

    City Production AI has also been largely modified. The AI understands about Heroes, civ-specific units and buildings, and Victory buildings. The AI should be better at adapting and reacting to its current situation when choosing what to build in its cities.

    Pretty much anything involving the AI has been improved in some way, and that will be the main continuing goal of this mod. I will continue to work on getting BUG more fully integrated with FFH and I will also be adding to and improving my two new game options (see below), but bug fixing and AI improvement will be the priorities.

    Any and all bug fixes for base FFH that have been made known to me have been fixed (to the best of my ability and/or my ability to find the fix elsewhere). There are no known crashing or hangup bugs in this mod. This mod is extremely stable and turn times are relatively quick. If anyone discovers any OOS issues during multiplayer, please report them in this thread.


    Tholal's Naval Changes



    The way ships and cargo space were handled in base FFH seemed a bit haphazard and made it difficult to mount a meaningful naval assault or invasion. I've made a few minor gameplay changes to various naval vessels to try and fix this and make water-based maps more interesting and fun.

    Cargo Holds

    Cargo space has been stripped from most ships. The only ones that have designated cargo space are the transport type ships (Galley(3), Galleon(5) and Queen of the Line(10)) and Caravels(1).

    Players can still use the Skeleton Crew and the Cargo Holds promotions to turn non-transports into transports. It just makes it a lot easier to guide the AI when each ship type has a more focused purpose.

    Tech and Resource Requirements

    Tech requirements are unaltered, but I did change some of the metal requirements. They were just way too strict and could easily hurt those who need it most (stuck on an island with no copper for example).

    • Triremes and Galleys no longer require metal, though Triremes are still tied to the Bronze Working tech
    • Frigates and Galleons can be built with any sort of metal (copper, iron or mithril)
    • Arcane Barges require Fire Mana.
    • Galleys can now cross Ocean squares once Optics has been researched (it was too long of a gap until Galleons could be created)
    • Several tweaks to stats for all Naval units

    Upgrade Paths

    Upgrade paths were also simplified:

    Code:
                 --> Frigate -> Man O' War
    Trireme <
    	     --> Privateer
     
                 --> Galleon --> Queen of the Line
    Galley <
                 -->Caravel
    
    Arcane Barge


    NEW GAME OPTIONS



    Puppet States

    This game option is a merging of the Puppet States mod.

    When a player captures the city of another civ and they have knowledge of creating Vassals, they will be given the option to set up a Puppet State rather than capturing or razing the city. This will create a new civ of the same civ type as the previous city owner. This Puppet State will be a permanent Vassal to the creating player. In addition to normal Vassal State limitations, Puppet States will not have a Palace. If a Puppet State becomes the last incarnation of its civ type, it will turn into a legitimate civ and the Palace restrictions will be removed.

    Revolutions
    This game option is a merging of the Revolutions (code extracted from RevDCM since it seemed to be more recent) mod.

    Revolutions allow for cities to become disenchanted with their current ruler creating events that the player has to react to and sometimes even spawning a rebel civilization and creating civil wars.


    Advanced Tactics

    This option incorporates various game-related tweaks that I thought would provide a different and interesting FFH experience
    • Players can pillage their own roads
    • Pillaging sometimes grants experience
    • Bombarding sometimes grants experience
    • All units have an inherent withdrawal chance
    • Mech units can be captured as a result of battle (code adopted from the War Prizes modcomp by mechaerik)
    • Great Generals generated from combat with other civs
    • Advanced Diplomacy (adapted from Advanced Diplomacy by Afforess)
    • Super Forts - (adapted from Red Key's Super Forts mod (by Red Key))


    Thanks to Kael for providing FFH2 in the first place! And thanks to the many coders from whom I have borrowed or copied code, including (but not limited to), jdog and the Better AI crew, Sephi and the Wild Mana crew, Denev, Snarko, karadoc, Terkhen, lfgr, Red Key and MagisterCultuum.

    Full lists of known bugs and feature requests. Any and all feedback and bug reports are much appreciated!


    Source code can be found at Bitbucket
     
  2. Tholal

    Tholal Emperor

    Joined:
    May 19, 2009
    Messages:
    1,676
    Testing Guide (written by Terkhen)

    This guide is meant for anyone who is interested on being able to provide more information along with bug reports, in order to help with improving More Naval AI.

    Configuration

    Civilization IV allows to enable the generation of different files that can be very helpful in order to check why a certain bug happened. To enable them, you need to modify your CivilizationIV.ini file (usually found in the "C:\Users\(USERNAME)\Documents\My Games\Beyond the Sword" folder). The following values should be set from 0 to 1:

    GenerateCrashDumps: Generates a dmp file when the game crashes to desktop. These dumps are very useful for debugging crash to desktop (CtD) errors.

    LoggingEnabled: Allows the game to create logs. This is essential for reporting all kind of bugs.

    SynchLog: Enables synchronization logging. These logs are specially important for checking errors in multiplayer games.

    OverwriteLogs: Logs are overwritten each time the game is restarted. This allows to discard old logs easily, but bear in mind that you should copy any logs related to an issue before you restart the game or they will be lost.

    RandLog: Enables random event logging. These logs are specially important for checking errors in multiplayer games.

    Additionally, the following values should be set from 1 to 0:

    HidePythonExceptions: Disabling this will allow to show python errors ingame.

    When playing with beta builds, it is strongly advised to set the following option to 0:

    FullScreen: Controls if the game will be shown on fullscreen or not. When playing with a build that will display Asserts (like beta versions), it is better to put the game in a window as sometimes Assert windows will lock the game if it is in fullscren.

    When a player enables logging and logs into a multiplayer game, other players will get a message saying "Player X has logging enabled. Verify that this is a trusted player". I don't know why the game throws this warning (logging seems harmless to me) but if you are playing with more people they should be aware of why this message is being shown. Bear in mind that in order to debug OOS issues properly all players should enable logging.

    Logs appear in the "C:\Users\(USERNAME)\Documents\My Games\Beyond the Sword\Logs" folder.

    Reporting bugs

    Bugs can be reported in either the Bug Tracker by creating a new issue and uploading all pertinent information, or directly at More Naval AI's bug reports thread. OOS errors should be reported in the bug tracker or in the OOS discussion thread. In the following sections of this document you can find more information on how to report each kind of issue.

    If you are unsure about which kind of issue you are experiencing (or it just does not fit into any of the types described below), just make a report including a description of the issue explaining what you think that went wrong along with any information you think that is relevant. Keep a backup of the "C:\Users\(USERNAME)\Documents\My Games\Beyond the Sword\Logs" folder just in case any of them is relevant of the issue (you will be asked for specific files in that case).

    Assert errors

    Asserts are warnings that may be the cause of bugs. They are only shown when playing with beta versions. Assert errors can appear either when the game is being initialized or during a game, and they appear on popup windows that look like this:



    It is possible for MapScripts to cause assert errors. These errors will happen during map generation or, in the case of using MapScriptTools, while the game is being initialized. In these cases, you can safely ignore the assert. In all other cases, assert errors should always be reported. It is usually enough information to copy the text inside of the assert error window and paste it on the bug report. If the error happened right after something specific was done, it is also helpful to know about it.

    Python errors

    When HidePythonExceptions is disabled, python errors are shown ingame in a popup like the one shown below:



    It is possible to get multiple popups on top of each other instead of a single one. In the case of a python error, it is better to provide the log files PythonDbg.log and specially PythonErr.log in the bug report than a screenshot of the error.

    AI errors

    You may notice the AI doing something weird or just wrong. In this case, the bug report should include a description of what you consider wrong, what you expected, a screenshot showing the problem (or even better, a savegame) and the "BBAILog - (PLAYERNAME).log" file.

    Crash to Desktop

    When the whole game crashes, every log (the entire contents of "C:\Users\(USERNAME)\Documents\My Games\Beyond the Sword\Logs") should be included in the bug report. If the game allows you to generate a crash dmp file, always select "generate a full dump" and attach it to the bug report too. dmp files appear after a CtD in the folder in which Civ4BeyondSword.exe is in. For complete editions of Civilization IV, this folder is: "C:\Program Files (x86)\2K Games\Firaxis Games\Sid Meier's Civilization 4 Complete\Beyond the Sword".

    OOS errors

    OOS errors happen only in multiplayer games. They are the hardest ones to reproduce and fix, and therefore any information about them is very welcome. OOS errors are very noticeable when they happen; all players will see a big notice announcing the OOS in red letters in the bottom part of their screen. To report an issue of this type, the SynchLog and the OOSLog of **EACH PLAYER** (called "SynchLog - (PLAYERNAME)" and "OOSLog - (PLAYERNAME) - Turn N.txt" respectively) are required. The "BBAILog - (PLAYERNAME).log" file should also be sent, if present, as OOS errors may sometimes be caused by errors in the logic of the AI code. An autosave from a few turns before is also very useful.
     

Share This Page