INI files are text files with the .ini extension instead of .txt. Here, the "ini" stands for initialization. These files contain properties or values that are important to programs related to them in some capacity. When a program starts, it reads the values written in its ini files in order to initialize or assign initial values to internal variables at launch time.
Unreal Engine is no different in this regard. If you were to navigate to the Config folder inside the UDKGame directory located inside your Feud installation or any UDK based game for that matter, you'll see a whole bunch of ini files. Each of these has values inside it for a different aspect of Unreal Engine. For example, DefaultInput.ini contains values such as key binds for the player's actions, which tell what'll happen when a player presses a certain button on an input device such as a keyboard.
DefaultSystemSettings.ini, on the other hand, contains values, among other things, for the visual settings. All ini files adhere, more or less, to the following pattern:
Here, "section" will contain the name of the portion of the program followed by the "variables" of that section and the "values" the user wants to assign to them.
Another thing that you might have noticed is that there are two ini files for some categories. For
example, there's a DefaultInput.ini and a UDKInput.ini. What happens is that Unreal Engine makes the ini file with the UDK prefix from the ini file with the Default prefix, and then uses it whenever the game is run. All changes to a game's settings should be made here by the user. However, if you want to customize defaults, you can change Default*.ini files as well. Just remember to delete the corresponding UDK*.ini file, so that a new one can be generated. In case something goes wrong with a UDK prefix ini file, deleting the UDK*.ini can also be used to generate a new one from the Default prefix ini file.
As an example, let's try changing key binds in DefaultInput.ini. Open in notepad, the DefaultInput.ini file located in UDKGame\Config path of your Feud installation, and search for "startswordslash". When notepad finds the text, you should see something like this.
This tells us that a binding has been created where the key with the name "V" has been bound to the command "startswordslash". Let's try changing the binding of this command. We'll change the key name to C instead of V, and right beneath it, change the name to V instead of C. This will have the
effect of binding the sword slash to C while duck will be bound to V. Save the file, delete both UDKInput.ini and UDKGame.ini and run the game. The engine will generate new UDK files and the keys should now have been changed. The reason we have to delete both is because Unreal Engine stores keybinds in both UDKInput.ini and UDKGame.ini when it generates them from DefaultInput, and if you do not want to make changes to the default, you'll have to find the appropriate binding and change it in both files. Failing to delete or make changes to both files will most probably mean that your key binds will not take effect. I learnt this the hard way, after wasting quite a few hours.
That's all from me regarding Unreal ini files. If you'd like to know more, visit the UDN link below.
Also look at other UDK prefix ini files in the config folder to see what they're about and what values they contain. Try changing some values you're interested in to see what effects your changes make. Don't worry if something goes wrong with a UDK prefix ini file. Just delete it and run the game. Unreal Engine will generate a new one from the Default ini file.