Machines WFW Community Patch 1.5 for GNU/Linux users - Final notes from martin
----------------------------------------------------------------------------------------
This patch is complete rewrite of game engine parts from its original source code, it is intended to run the game
on majority of modern and a bit old platforms without any additional specific problems touching dated software. 
It introduces improved graphics and drawing distances in shaders pipeline, some bug fixes and high performance 
networking - now all four players can compete on mayhem maps without any glitches or lags! Please use game assets 
data provided with path, not from the retail version! 
Look here for game manual: http://wiredforwar.org/topic/15/machines-the-manual/2 

At first try launching the game from terminal window to ensure that no errors are thrown. When you got something like:
./machines: error while loading shared libraries: libSDL2-2.0.so.0: cannot open shared object file: No such file or directory
make sure you got all the required packages in correct versions (including architecture 32 or 64 bit depending on your platform). 
Try installing them with suitable package manager, example: 
    sudo apt-get install libsdl2-2.0-0
    (for specific 32-bit architecture: sudo apt-get install libsdl2-2.0-0:i386)
Other dependencies:
sudo apt-get install libglew1.13 libenet7 libsdl2-image-2.0-0
If package is not not available for your distro in requested version try searching it somewhere (https://debian.pkgs.org/)
or build it from sources. In case of 32-bit architecture remember about setting it up, for cmake it can be done with extra flags: 
cmake -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_SHARED_LINKER_FLAGS=-m32 

CUSTOM SCENARIOS
----------------------------------------------------------------------------------------
By editing several text files you can define your own environment and missions. All those scenarios are accessible 
in skirmish screen under custom game type. Any new scenario needs to be defined inside data/customscen.dat, 
check how this file is structured - there are some examples with comments included. All the associated files 
are wanted in data directory, those files are same as described in modding guide (.scn - scenery, buildings machines
.arf - artefacts, trees destructible walls .spl - strategy production list for ai, .rsi - research tree).
Some of the files can be loaded and edited with planet editor, follow its documentation for more info. 
Game will create <scenario name>.bin file in pdata dir, remove it when updating the scenario descriptions 
and names to request an update.

Q&A
----------------------------------------------------------------------------------------
- How to get started with multiplayer?
    For computers connected in LAN it is very simple, players should note the local IP address for the computer
    which will became a game host. To create a game go into multiplayer screen -> OK for default selected protocol 
    -> click on "new game" text, type some name and click Create button - from this point game is being hosted. 
    To join a game other players have to navigate multiplayer screen -> OK -> Type noted host IP into box in left bottom
    corner then click Show games, select a "game" and -> Join button should successfully connect you with the hosted game. 
    Game server uses port 1234, make sure it is accessible and non blocked by firewalls or such a things,
    add a proper exception or turn them off. Please note that in current architecture the host is obligated to run for the whole
    game to keep the connections - even if he loose before the end of game, it can be terminated by holding CTRL key. 
    Procedures required to play over the internet are similar except host needs to setup a NAT rules on his router to make
    port 1234 visible in public WAN address. Other option is to setup a VPN connections with tools like Hamachi or OpenVPN.
    Of course peers have to use public/VPN address then, it is preferred when host machine has the fastest internet connection.
    Make sure if all the players are using same latest game version to avoid problems.

- I'm using HD monitor and all the gui/fonts are so small, barely visible.
    Game was designed in times where 4K or 2K was a far future and not considered, so scaling of user interface 
    is not present at the moment. Try choosing any lower resolution mode in game settings.

- Got an error message of unsupported OpenGL 2.1 when starting the game.
    Again check for newest GPU drivers, otherwise you are probably using too old computer with/or Intel graphics. 
    You might also try open instead of proprietary drivers which can support higher version of GL than latest official releases. 

- It is possible to run game in window instead of full screen?
    Yes, open config.xml and add somewhere between <keys></keys> tags a following line: <key name="Screen Resolution\Windowed">1</key>
    
- How to force the game to render its models with full details and complexity all the time?
    Again, edit config.xml and add the line: <key name="Options\Graphics Complexity\LOD\Value">1</key>

- Audio is sometimes noisy and bad when playing video shorts.
    It is because of super simple implementation of the smack video player to save my development time - not a priority on this moment.

- It is possible to add some custom maps or scenarios?
    Possibly in the future releases, however old modding tools are still applicable.

- Can I load a game saves from retail version?
    No, the compatibility of the binary format is broken.

To ask a question, problem or find another players check out our Discord IM server: https://discord.gg/J6e9MsY  
...and forums http://wiredforwar.org/

CHANGE LOG
----------------------------------------------------------------------------------------
08.2020 - 1.5.0.2-dev:
    Fixed long map loading time issue.
    Fixed improper rendering of polygons with transparent textures key color.
    Custom skirmish scenarios feature.
    3D sound fix.
    Texture mip-map levels.
    Error message pop-ups.
03.2020 - 1.5.0.1:
    64-bit executables.
    Networking code improvements for cross-platform compatibility.
    Changed textures size limit to 2048x2048 px.
    Added option to disable models Level Of Detail.
    Faster game loading.
    Fixed some of random crashes.
08.2019 - 1.5.0.0: 
    Initial release.

CREDITS
----------------------------------------------------------------------------------------
Patch uses following cross-platform libraries or tools, thanks to all the maintainers: 
SDL2 SDL2_image, Freetype, OpenAL, Alure, ENet, GLEW, OpenGL.

libsmacker - A tiny C library for decoding .smk Smacker Video files by Greg Kennedy.
rapidxml   - A tiny xml parser by Marcin Kalicinski.
assimp     - Open Asset Import Library by assimp team, used *.X files parser part.
libaudio   - Network Audio System wave loader part.
valgrind   - free and great memory problems detector
