diff --git a/CHANGES.txt b/CHANGES.txt index c4c168136..e48cfad28 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,55 +1,76 @@ Dune Dynasty ============ -Version 1.6.4, 2022-05-19 -------------------------- - - Ctrl + RMB sets rally points for all similar buildings - - Ctrl shows rally points for all similar buildings - - Fix action panel scrolling bug which triggers error sound - - Ctrl + LMB selects all units of the same type - - Fix AI bug: sandworm wakes AI if seen by AI - - Gameplay fix: update the unit's vision every time it moves - - Capture the mouse if the game is not paused - -Version 1.6.3, 2022-04-28 -------------------------- - - New Action Panel mode: Interactive unit list - - Shift + click removes clicked unit from list - - Shift + Ctrl + click removes clicked unit type from list - - Ctrl + click removes all units except clicked type - - Click removes all units except clicked unit - - New hotkey: select next building of the same type (Tab key) - - New hotkey: focus viewport on selected structure (Space key) - - Draw health bars for all visible units in "All units" mode - - Fix save/load bug: fix fog data loss in saved games - - Fix pathfinder freeze in case if destination is out of map - -Version 1.6.2, 2022-04-14 -------------------------- - - - Action Panel title text no longer reacts to mouse clicks - - Action Panel title click behavior moved to the portrait - - Add old style status button to action panel - - Remove Send Order button from Starport menu (uses status button) - - Add new status button for Palace menu - - Pause/Cancel factory task by pressing ESC - - Pause/Cancel factory task by rmb click on status button - -Version 1.6.1, 2022-04-07 -------------------------- - - - Fix critical saveload bug which breaks the behavior of starports - - Fix attempts to spawn Fremen outside the map - - Unbind hotkey H - - Add hotkeys for each type of unit/structure - - Bind unit/structure hotkeys to action panel - - Add hotkey hints to action panel - -Version 1.6.0, 2015-02-03 +Version 1.6.0 ------------------------- + - Many unreleased changes (incl. multiplayer!) + that were added from 2013-2015 in SourceForge SVN + (https://sourceforge.net/projects/dunedynasty/) + mainly by David Wang, the original Dune Dynasty creator. + (See commits by "dwang" in this timeframe for details.) + - Merge fixes and improvements from https://github.com/1oom-fork/dunedynasty + o Ctrl + RMB sets rally points for all similar buildings + o Ctrl shows rally points for all similar buildings + o Ctrl + LMB selects all units of the same type + o Fix AI bug: sandworm wakes AI if seen by AI + o Gameplay fix: update the unit's vision every time it moves + o Capture the mouse if the game is not paused + o New hotkey: select next building of the same type (Tab key) + o New hotkey: focus viewport on selected structure (Space key) + o Draw health bars for all visible units in "All units" mode + o Fix save/load bug: fix fog data loss in saved games + o Fix pathfinder freeze in case if destination is out of map + o Action Panel title text no longer reacts to mouse clicks + o Action Panel title click behavior moved to the portrait + o Add old style status button to action panel + o Remove Send Order button from Starport menu (uses status button) + o Add new status button for Palace menu + o Pause/Cancel factory task by pressing ESC + o Pause/Cancel factory task by rmb click on status button + o Fix critical saveload bug which breaks the behavior of starports + o Fix attempts to spawn Fremen outside the map + o Bind hotkey H to Harvest and F4 to select construction yard + o Add hotkeys for each type of unit/structure + o Bind unit/structure hotkeys to action panel + o Add hotkey hints to action panel + - Merge changes by neg3ntropy and kvr000 (https://github.com/neg3ntropy/dunedynasty) + o Fix compiler errors due to outdated code. + o Fix many compiler warnings. + - Add higher-res icon for executable. + - Add scaling options from 1-8 (merged from https://github.com/YuriyGuts/dunedynasty-macos). + - Add sliders for menubar/sidebar/viewport scaling to in-game control menu. + - LMB double click selects all units of the same type. + - Select units of the same type only in current viewport (as this is pretty standard in modern RTS). + - Fix scroll buttons disappearing on high sidepanel scalings. + - Fix error sound not playing on "Unable to create more" + - Fix another critical saveload bug which breaks the behavior of starports. + - Always display unit/structure hotkeys within picture (to avoid obfuscation by queue-count). + - Change default window mode to fullscreenwindow. + - Set monitor resolution as default screen_width/screen_height. + - Add further default scales for high resolutions. + - Fix Sardaukar Troopers showing up as Raider Trikes in Dune 2 eXtended. + - Display custom campaign name as title in options window. + - Main menu improvements: + o Reintroduce "Replay Introduction" to main menu. + o Add arrows to change campaign in main menu. + o Rename "Skirmish" to "Skirmish & Multiplayer" in main menu. + - Rework Extras and Options: + o Add video options (window mode, resolution, hardware cursor). + o Add music options (enable/disable and show available/unavailable music sets). + o Change menu layout. + - Multiplayer fixes and improvements: + o Add lose condition setting to multiplayer and skirmish (either structures only [default] or structures + ground-units). + o Fix 2nd construction yard (rocket tower) upgrade not working for non-host players in multiplayer. + o Fix multiplayer match ending for all players, if host is defeated. + Now host will lose all units/structures, become observer and will be kicked to lobby, once other players finish the game. + o Fix blinking of targeted unit to only be visible for player issuing command. + - Add support for new music packs (with songs sorted into attack/idle music): + o Dune (1992) game (by Cryo) - Adlib + o Dune (1992) game (by Cryo) - Spice Opera + o Dune (1984) Original Motion Picture Soundtrack + o Dune: Part One (2021) Original Motion Picture Soundtrack + o Dune: Part One (2021) Sketchbook Soundtrack - - Version changed to 1.6.0 to reflect all those undocumented changes - that were added for 2013-2015 Version 1.5.7, 2013-08-18 ------------------------- diff --git a/README.md b/README.md index 1a0d86e55..2f48f21e2 100644 --- a/README.md +++ b/README.md @@ -1,90 +1,108 @@ # Dune Dynasty -Classic Dune. Modern Controls. +[![Latest Release](https://img.shields.io/github/v/release/gameflorist/duneflorist?display_name=tag&label=Download%20Latest%20Release&style=flat-square)](https://github.com/gameflorist/dunedynasty/releases) +[![Windows Build Status](https://img.shields.io/github/actions/workflow/status/gameflorist/dunedynasty/windows-build.yml?label=Windows%20Build%20Status&style=flat-square)](https://github.com/gameflorist/dunedynasty/actions/workflows/windows-build.yml) +[![Linux Build Status](https://img.shields.io/github/actions/workflow/status/gameflorist/dunedynasty/linux-build.yml?label=Linux%20Build%20Status&style=flat-square)](https://github.com/gameflorist/dunedynasty/actions/workflows/linux-build.yml) -## About - -Dune Dynasty is a continuation of the classic real-time strategy game -Dune II by Westwood Studios. It is not a remake. It builds upon the -original game engine as reverse-engineered by the [OpenDUNE] project. +![Dune Dynasty](/docs/banner.jpg) -Dune Dynasty features these modern enhancements: +## About - - Runs natively on Linux and Windows (OpenGL or Direct3D) - - High-resolution graphics, including zooming - - Multiple unit selection with control groups - - New build queue interface - - Rally points +_Dune Dynasty_ is an enhancement of the classic real-time strategy game +_Dune II_ by Westwood Studios. It is not a remake. It builds upon the +original game engine as reverse-engineered by the [OpenDUNE](https://github.com/OpenDUNE/OpenDUNE) project. + +_Dune Dynasty_ features these modern enhancements for _Dune II_: + +- __Runs natively on Linux and Windows (OpenGL or Direct3D)__ + (for MacOS see [this port](https://github.com/YuriyGuts/dunedynasty-macos)) +- __Graphics Enhancements:__ + - High-resolution widescreen graphics + - Separate customizable scaling of menubar, sidebar and map/viewport for HiDPI displays + - Smoother unit animation (optional) + - High-res overlay (optional) +- __Control Enhancements (Command & Conquer style):__ + - Build/order units and structures in scrollable sidepanel + - Queue building of multiple items + - Select and command multiple units by drawing a rectangle + - Select all units of same type in viewport via double-click (or CTRL-LMB) + - Save/load unit control groups via keyboard hotkeys + - Set rally points for buildings + - [Windows Touchscreen Support](#touchscreen-support) +- __Skirmish and Multiplayer:__ + - With 3 additional factions: Fremen, Sardaukar and Mercenaries + - For up to 6 players/AI + - Alliances (skirmish only) + - Random maps (or enter fixed map seed) + - Settings for starting credits, amount of spice fields and lose condition +- __Sound and Music Enhancements:__ + - Emulated AdLib sound and music playback + - [General MIDI playback via FluidSynth](#general-midi-music) (supporting SoundFonts) + - [Support for external music sets](#external-music-sets): + - Recorded AdLib, MT-32 and SC-55 packs + - Sega Mega Drive soundtrack (mostly different songs, but also ___very___ good!) + - _Dune 2000_ game soundtrack + - _Dune_ (1992) game by Cryo (an excellent, award winning, much more chill soundtrack of _Dune II_'s predecessor both as AdLib Gold recording and the remastered _Spice Opera_ soundtrack by Exxos) + - _Dune_ (1984) Original Motion Picture Soundtrack + - _Dune: Part One_ (2021) Original Motion Picture Soundtrack and "_The Dune Sketchbook_" soundtrack + - ...with many options for randomly combining them during gameplay + - ...all playable in in-game jukebox - Multiple sound channels - -Plus: - - - Emulated Ad-Lib sound and music playback - - General MIDI playback - - Custom campaigns - - Fog of war option - - Smoother unit animation +- __Gameplay Enhancements (optional):__ + - Health bars + - Fog of war - Brutal AI mode - - Skirmish mode - - Jukebox - - Bug fixes - -Dune Dynasty is licensed under the GNU General Public License version -2.0. For more information, see the `COPYING` file included with every -release and source download of the game. - -[![Screenshot]][Screenshot] - + - Infantry squad corpses + - Raise scenario unit cap + - Start level selection +- __[Support for Custom campaigns](#custom-campaigns):__ + - [Dune 2 eXtended](http://forum.dune2k.com/topic/18360-dune-2-extended-project/) + - [MrFlibble's Alternate Scenarios](https://www.mediafire.com/file/9vs75nukou8o3wq/Dune2-MrFlibble%2527sAlternateScenarios.zip/file) + - [Stefan Henriks' Atreides campaign](http://arrakis.dune2k.com/downloads.html) + - [Super Dune II](http://forum.dune2k.com/topic/20065-super-dune-ii-classic/) +- __Various bug fixes__ -## Download +A more detailed list of changes by _Dune Dynasty_ and OpenDUNE from the original Dune II can be found in the file [enhancement.txt](enhancement.txt). -[Download] the source code or Windows binaries from the [Github] -project page. +### Development History -Read the list of [changes]. +_Dune Dynasty_ was initially developed by __David Wang__, with the source code hosted on [SourceForge](https://sourceforge.net/projects/dunedynasty/). Its last official version was v1.5.7 from 2013. After that __David Wang__ added lots of new features (mainly multiplayer) up until 2015, but never released a new version. Later some github-repos emerged with additional fixes and improvements (by [1oom-fork](https://github.com/1oom-fork/dunedynasty) and [neg3ntropy](https://github.com/neg3ntropy/dunedynasty)), but again no new release. This fork is intended to merge these improvements, fix further bugs, add minor features, and provide new releases (v1.6.0+) with binary download-packages for Windows and Linux (see [this fork](https://github.com/YuriyGuts/dunedynasty-macos) for Mac). +## Screenshots -## Compiling from source +![Screenshots](/docs/screenshots.jpg) -*Skip this if you are using precompiled Windows binaries.* +## Alternatives -### Source dependencies +Here are some alternatives for enjoying _Dune II_ on modern systems: -*Skip this if you are using installed OS packages.* +- [___OpenDUNE___](https://github.com/OpenDUNE/OpenDUNE): Reverse-engineered source port of _Dune II_, upon which _Dune Dynasty_ is based on. It's goal is to keep it as close to the original as possible and thus has significantly less features and modernizations than _Dune Dynasty_. _OpenDUNE_ and _Dune Dynasty_ can both read original file formats (e.g. save games). +- [___Dune Legacy___](https://dunelegacy.sourceforge.net/): A _Dune II_ clone / engine recreation / remake with a similar feature-set as _Dune Dynasty_, but deviating more from the original's look and feel. Has multiplayer support and map editor. +- [___Dune II - The Maker___](https://dune2themaker.fundynamic.com/): Another _Dune II_ remake with modern features and upscaled graphics. Also deviates quite a bit from the original's look and feel. +- There is also a [___Dune II mod for OpenRA___](https://github.com/OpenRA/d2/wiki), an open source engine for the early _Command & Conquer_ games. +- _Dune II_ is also perfectly playable using [DOSBox](https://dosbox-staging.github.io/). +- There is a well done _Dune II_ clone for Android on [Google Play Store](https://play.google.com/store/apps/details?id=de.morphbot.dune). +- There is also [a fork of _Dune Dynasty_ explicitly for MacOS](https://github.com/YuriyGuts/dunedynasty-macos). -You will need [CMake] and [Allegro 5]. [FluidSynth] and [MAD] are -optional dependencies. +_Dune Dynasty_'s unique selling points are probably it's faithfulness to the look and feel of the original (due to it basing on an [engine re-creation](https://github.com/OpenDUNE/OpenDUNE) of the original) combined with many control modernizations, it's support for [fan-generated campaigns](#custom-campaigns), [various music soundtracks](#external-music-sets) and multiplayer. -### OS dependencies +## Changes -#### Debian, Ubuntu +You can find the list of changes between versions in the file [CHANGES.txt](CHANGES.txt). -``` -sudo apt -y install cmake liballegro5-dev libenet-dev libmad0-dev libfluidsynth-dev fluidsynth -``` - -#### MacOs - -Install [Homebrew]. - -``` -brew install cmake allegro enet libmad fluidsynth -export LDFLAGS="-L/opt/homebrew/lib" -``` +## Download -### Build +The most current Windows and Linux binaries and source code can be downloaded from the Github release page: -``` -cmake . -make -``` +[![Latest Release](https://img.shields.io/github/v/release/gameflorist/duneflorist?display_name=tag&label=Latest%20Release&style=for-the-badge)](https://github.com/gameflorist/dunedynasty/releases) -The binary will be placed in the `dist/` directory. +For MacOS, check out this fork: +[https://github.com/YuriyGuts/dunedynasty-macos](https://github.com/YuriyGuts/dunedynasty-macos) +## Installation -## Starting up +You will need the `\*.PAK` data files from the EU v1.07 release of _Dune II_. See the file [data/FILELIST.TXT](/dist/data/FILELIST.TXT) for a complete list of needed files. -You will need the \*.PAK data files from the EU v1.07 release of Dune II. Place them into one of the following places: 1. In a directory named `data` next to the dunedynasty executable. @@ -93,85 +111,105 @@ Place them into one of the following places: 2. In your personal data directory. The location depends on your operating system. - On Unix, this will be: + On Unix, this will be `~/.local/share/dunedynasty/data`. - ~/.local/share/dunedynasty/data + On Windows 32bit, this will be something like: + `C:\users\\Application Data\Dune Dynasty\data` - On Windows, this will be something like: + And on Windows 64bit it will be: + `C:\users\\AppData\Roaming\Dune Dynasty\data` - C:\users\nobody\Application Data\Dune Dynasty\data +Once the data files are in place, you may start the game by running +`dunedynasty.exe` or `dunedynasty`. - or +On Linux you will also have to install the libraries __Dune Dynasty__ depends on: - C:\users\nobody\AppData\Roaming\Dune Dynasty\data +```shell +sudo apt install liballegro5.2 liballegro-acodec5.2 liballegro-image5.2 libenet7 libfluidsynth3 libmad0 libgl1 +``` - or +If `libfluidsynth3` is not available on your distribution, try `libfluidsynth2` instead. - C:\Documents and Settings\nobody\Application Data\Dune Dynasty\data +## Configuration - 3. The system-wide directory as configured in the CMake variable - `$DUNE_DATA_DIR/data`. +Just as the data-files, the configuration file `dunedynasty.cfg` will be read from one of two places: -Once the data files are in place, you may start the game by running -`dunedynasty.exe` or `dunedynasty`. + 1. In the same directory as the dunedynasty executable. + 2. In a personal data directory. This is the default behaviour - meaning `dunedynasty.cfg` will be created here on initial launch. -## Controls + On Unix the configuration file is located at: + `~/.config/dunedynasty/dunedynasty.cfg` -The controls should be similar to most real-time strategy games. -You can finally select multiple units by dragging a rectangle, -or shift clicking. Right click issues commands on units, and sets -the rally point on buildings. + On Windows 32bit, this will be something like: + `C:\users\\Application Data\Dune Dynasty\dunedynasty.cfg` -Keyboard shortcuts are mostly just the first letter of the action. + And on Windows 64bit it will be: + `C:\users\\AppData\Roaming\Dune Dynasty\dunedynasty.cfg` - A Attack or Harvest - H Harvest - M Move - G, S Guard (Stop) - P Place constructed structure +See the sample file `dunedynasty.cfg-sample` for a list of configuration +options. You can modify the existing `dunedynasty.cfg` file or +replace it with `dunedynasty.cfg-sample`. - Ctrl-1 Assign control group 1 - Ctrl-2 Assign control group 2, etc. - 1-0 Jump to control group 1-0 +### Portable mode - -, + Zoom in or out - [, ] Toggle size of menu and side bars - Alt-Enter Toggle windowed mode +If you place `dunedynasty.cfg` in the same directory as the dunedynasty executable, _Dune Dynasty_ will operate in portable mode - keeping everything (e.g. savegames) inside the install directory. - F1 Mentat - F2 Options - F3 Click structure icon - F4 Select construction yard - F5 Show current song - F6 Decrease music volume - F7 Increase music volume - F11 Toggle windowed mode - F12 Save screenshot into data directory +### Video Settings -Double tap H or a control group number to centre on the -construction yard or the control group. +Display mode and resolution can be changed in the game's "Options and Extras" menu. The game initially launches in _Fullscreen Window_ mode (using your Desktop-resolution). +You might want to increase or decrease the scaling factors of the menubar, sidebar and viewport. You can do this in-game in the __Game Control__ menu. -## Configuration +## Controls -The configuration file will be read from one of two places: +The controls should be similar to most real-time strategy games. +You can finally select multiple units by dragging a rectangle, +or shift clicking. You can also select all units of the same type in the current viewscreen via a double click or via `Ctrl + LMB`. - 1. In the same directory as the dunedynasty executable. +Right click issues commands to units, and sets the rally point on buildings. You can also change this to Left Click (which is very useful for touchscreen input). - 2. In a personal data directory. - On Unix the configuration file is located at: +Keyboard shortcuts are mostly just the first letter of the action. - ~/.config/dunedynasty/dunedynasty.cfg +```txt +A Attack or Harvest +H Harvest +M Move +G, S Guard (Stop) +P Place constructed structure + +Ctrl-1 Assign control group 1 +Ctrl-2 Assign control group 2, etc. +1-0 Select control group 1-0 (press 2 times to center in viewport) + +Ctrl + LMB Select all units of the same type in current viewport +Double LMB Select all units of the same type in current viewport +Ctrl + RMB Set rally points for all similar buildings +Space Focus viewport on selected structure +Tab Select next building of the same type +Esc Pause/Cancel factory task + + +-, + Zoom in or out +[, ] Toggle size of menu and side bars +Alt-Enter Toggle windowed mode + +F1 Mentat +F2 Options +F3 Click structure icon +F4 Select construction yard (press 2 times to center in viewport) +F5 Show current song +F6 Decrease music volume +F7 Increase music volume +F11 Toggle windowed mode +F12 Save screenshot into data directory +``` - On Windows the configuration file will be located somewhere like: +There are also keyboard shortcuts for constructing buildings with the construction yard. They are displayed in the build-panel. - C:\users\nobody\Application Data\Dune Dynasty\dunedynasty.cfg - -See the sample file `dunedynasty.cfg-sample` for a list of configuration -options. You can modify the existing `dunedynasty.cfg` file or -replace it with `dunedynasty.cfg-sample`. +### Touchscreen Support +_Dune Dynasty_ works very well with touchscreens (e.g. like Microsoft Surface Pro), since most actions are performed using the left mouse button. You can perform a right button click via a long (ca. 1 sec.) press. Commands are issued via the right button by default, but you can change this by setting `Control Style` to `Left Click` in the Game Control options. Then you can quickly select and command your units via short taps with your finger. To deselect units or structures perform a long press or simply _draw_ an empty rectangle into the sand. You can even zoom the viewport with a _pinch_ finger-movement. ## Saved games @@ -179,130 +217,219 @@ Saved games are located in the `save` directory next to `dunedynasty.cfg`. If no configuration file exists, they will be in placed in a personal data directory. -On Unix this will be: +On Unix, this will be `~/.config/dunedynasty/save`. + +On Windows 32bit, this will be something like: +`C:\users\\Application Data\Dune Dynasty\save` - ~/.config/dunedynasty/save +And on Windows 64bit it will be: +`C:\users\\AppData\Roaming\Dune Dynasty\save` -On Windows this will be something like: +Saved games from _Dune II_ should work if placed there. - C:\users\nobody\Application Data\Dune Dynasty\save +## Music -Saved games from Dune II should work if placed there. +_Dune Dynasty_ supports the following music sources: +- Midi (using your machine's default Midi device) +- AdLib (built-in emulation) +- FluidSynth (General Midi via SoundFonts) +- Various External music sets ([see below](#external-music-sets)) -## Tweaks +By default, _Dune Dynasty_ will randomly mix music from all the available sources. You can disable any sources in the game's "__Options and Extras__"-menu (changes require a restart). -### General MIDI music +There you will also find a __Jukebox__ to listen to all available songs from all available sources. -Dune Dynasty can play MIDI music via FluidSynth. You will need -to set the `sound_font` path in the configuration file to an +### Midi + +_Dune Dynasty_ can play music via the system MIDI output on Windows and Linux (ALSA). If you use [Timidity++] as an ALSA sequencer client on Linux you should start it with smaller buffer sizes to avoid the "drunk drummer" problem: + +```txt +timidity -iA -B 4,8 +``` + +### FluidSynth + +FluidSynth allows playing music via a specified SoundFont. You will need +to set the `sound_font` path in the [configuration file](#configuration) to an appropriate sound font (.sf2) file, e.g. - [audio] - sound_font=/usr/share/sounds/sf2/FluidR3_GM.sf2 +```ini +[audio] +sound_font=/usr/share/sounds/sf2/FluidR3_GM.sf2 +``` + +Popular SoundFonts are e.g.: + +- [Timbres of Heaven](https://midkar.com/soundfonts/index.html) +- [Arachno Soundfont](https://www.arachnosoft.com/main/soundfont.php) -Dune Dynasty can also play music via the system MIDI output on Windows and -Linux (ALSA). If you use [Timidity++] as an ALSA sequencer client on Linux you -should start it with smaller buffer sizes to avoid the "drunk drummer" problem: +### External music sets - timidity -iA -B 4,8 +_Dune Dynasty_ can play various external music sets, e.g. recordings of the original PC or Sega Mega Drive soundtrack, music from different Dune games like _Dune 2000_ or Cryo's 1992 _Dune_, or even the motion picture soundtracks. +Each of these have their own subdirectory in the `music` directory. Instructions and download/purchase links are provided below and in the respective `FILELIST.TXT` files. -### External music packs +Here is a list of supported Music packs: -Dune Dynasty can play various external music sets, e.g. music from Dune 2000. -Each of these have their own subdirectory in the music/ directory. -Instructions are provided in the respective FILELIST.TXT files. +- Original _Dune II_ (PC) music: + - [rcblanke's SC-55 recording](https://www.vogons.org/viewtopic.php?t=33823&start=42) + - [ShaiWa's MT-32 recording](https://dune2k.com/Download/783) + - [Dune II - The Maker AdLib recording](https://dune2themaker.fundynamic.com/downloads/mp3adlib.zip) + - [Dune II - The Maker MT-32 recording](https://dune2themaker.fundynamic.com/downloads/mp3mt32.zip) + - [Dune II - The Maker SC-55 recording](https://dune2themaker.fundynamic.com/downloads/mp3sc55.zip) +- [___Dune II___ Sega Mega Drive music](http://nyerguds.arsaneus-design.com/dune/dunesega/) + Mostly different songs from PC version, but also ___very___ good! +- ___Dune 2000___ game music + Unfortunately, this game cannot be purchased anymore at the moment. +- ___Dune___ (1992) game (by Cryo) music by Stéphane Picq and Philippe Ulrich: + The excellent award-winning soundtrack for _Dune II_'s predecessor - the 1992 _Dune_ game by _Cryo_. It is very atmospheric, and makes _Dune II_ a much more relaxing and chill experience. Two versions are supported: + + - [AdLib Gold recording by DOS Nostalgia](https://www.dosnostalgia.com/?p=542) + - ___Spice Opera___ by Exxos + A remastered CD release of the soundtrack. Unfortunately it is not available for purchase anymore (but Google might be your friend here). -If you want to disable any music set, edit the [music] section of the -config file. If a particular track is missing, it will look for a -suitable replacement in the default music pack, or use the Adlib music -if that also fails. e.g. to play Sega Mega Drive music, and MT-32 -rips only as required: +- ___Dune (1984)___ Original Motion Picture Soundtrack by Toto and Brian Eno + Seems to be only available on CD. Purchase e.g. from [amazon.com](https://www.amazon.com/-/de/dp/B000006YDD/) or [amazon.de](https://www.amazon.de/Dune-Toto/dp/B000006YDD/) and rip files to MP3. +- ___Dune: Part One (2021)___ Original Motion Picture Soundtrack by Hans Zimmer + Purchase e.g. from [amazon.com](https://www.amazon.com/music/player/albums/B09F1Y3NCK/) or [amazon.de](https://www.amazon.de/music/player/albums/B09F2HWHGJ). +- ___Dune: Part One (2021)___ "The Dune Sketchbook" soundtrack by Hans Zimmer + Purchase e.g. from [amazon.com](https://www.amazon.com/music/player/albums/B09C3YS6DX) or [amazon.de](https://www.amazon.de/music/player/albums/B09C3YZZPW). - [music] - dune2_adlib=0 - dune2_midi=0 - ... - dune2_smd=1 - default=fed2k_mt32 +After installation of a music set, you can check it's availability in the "Music" section of the game's "Options and Extras" menu. There you can also enable/disable music sets for random play. -In addition, individual songs can be disabled. e.g. if you want to -include Dune 2000 music, but exclude "Robotix": +You can also disable individual songs from music sets. You have to do this by editing your config-file though. - [music/dune2000] - ROBOTIX=0 +Example: If you want to include Dune 2000 music, but exclude "Robotix": +```ini +[music/dune2000] +ROBOTIX=0 +``` ## Custom campaigns -Dune Dynasty can play [fan-made campaigns] such as [Super Dune II Classic], -[Stefan Hendriks' Atreides Campaign], and [Dune 2 eXtended]. These should -be placed in the subdirectories inside the campaign/ directory. Click the -"The Building of a Dynasty" subtitle to switch between campaigns. +_Dune Dynasty_ supports various fan-made campaigns: + +- [Dune 2 eXtended](http://forum.dune2k.com/topic/18360-dune-2-extended-project/) +- [MrFlibble's Alternate Scenarios](https://www.mediafire.com/file/9vs75nukou8o3wq/Dune2-MrFlibble%2527sAlternateScenarios.zip/file) +- [Stefan Henriks' Atreides campaign](http://arrakis.dune2k.com/downloads.html) +- [Super Dune II](http://forum.dune2k.com/topic/20065-super-dune-ii-classic/) + +These should be placed in the existing subdirectories inside the `campaign` directory. + +Click the arrows next to the __"The Building of a Dynasty"__ subtitle in the main menu to switch between campaigns. You can also create your own campaigns. A campaign should consist of -a META.INI file, a REGIONX.INI file for each playable House, where X +a `META.INI` file, a `REGIONX.INI` file for each playable House, where X is the first letter of the House name, and a complete set of scenarios -for each House, named SCENX001.INI through SCENX022.INI. See Stefan -Hendriks' Atreides Campaign (shac/) as a simple example. +for each House, named `SCENX001.INI` through `SCENX022.INI`. See Stefan +Hendriks' Atreides Campaign (subfolder `shac`) as a simple example. Each campaign can also contain custom balance tweaks, specified in -PROFILE.INI and HOUSE.INI. Please refer to the sample files in the -campaign directory for more infomation. +`PROFILE.INI` and `HOUSE.INI`. Please refer to the sample files in the +campaign directory for more information. Finally, the scenarios can either be distributed as loose INI files or -as a single PAK file. Data stored in PAK files must be listed in META.INI. -See MrFlibble's Alternative Scenarios (mfas/) as a simple example of +as a single PAK file. Data stored in PAK files must be listed in `META.INI`. +See _MrFlibble's Alternative Scenarios_ (subfolder `mfas`) as a simple example of scenarios stored in a PAK file. +## Development -## Acknowledgements +### Compilation -Thank you to: +#### General Info -The OpenDUNE team: +The binary will be placed in the `dist` directory. - - Albert Hofkamp (Alberth) - - Loic Guilloux (glx) - - Patric Stout (TrueBrain) - - Steven Noorbergen (Xaroth) +The steps below will build the release-version. You can change value of the `DCMAKE_BUILD_TYPE` parameter to build different versions, with the possible options being: `Debug`, `Release`, `RelWithDebInfo` and `MinSizeRel`. + +#### Windows -The Allegro 5 developers. +1. Download and install [MSYS2](https://www.msys2.org/#installation). +2. Launch `MSYS2 UCRT64` from the startmenu. +3. Install dependencies: -The developers of DOSBox, MAME, ScummVM, Dune Legacy, and everyone else -who worked on the Adlib/OPL/MIDI player code. + ```shell + pacman -S mingw-w64-ucrt-x86_64-cmake + pacman -S mingw-w64-ucrt-x86_64-gcc + pacman -S mingw-w64-ucrt-x86_64-gdb + pacman -S mingw-w64-ucrt-x86_64-allegro + pacman -S mingw-w64-ucrt-x86_64-enet + pacman -S mingw-w64-ucrt-x86_64-fluidsynth + pacman -S mingw-w64-ucrt-x86_64-libmad + ``` -Peter, for help on various bits of the code, the music code, and AUDlib. +4. Perform build: -Nyerguds, for his Dune II editor. + ```shell + cd + cmake -G Ninja -DCMAKE_BUILD_TYPE=Release . + ninja + ``` -Bug reporters and other improvement suggestions: MrFlibble, Nyerguds, +5. For packaging, you have to copy all required .dll files to the `dist` folder. To do this, simply call the following script: + + ```shell + ./scripts/copy-dlls.sh + ``` + +#### Debian, Ubuntu + +1. Install dependencies: + + ```shell + sudo apt -y install build-essential cmake liballegro5-dev libenet-dev libmad0-dev libfluidsynth-dev fluidsynth + ``` + +2. Perform build: + + ```shell + cmake -DCMAKE_BUILD_TYPE=Release . + make + ``` + +3. When packaging, there is the problem, that the fluidsynth-library is called `libfluidsynth2` on some distributions, and `libfluidsynth3` on others. To mitigate, call this script, which will copy the library-file to `dist/libs` and patch the executable to use the inlcuded library instead: + + ```shell + ./scripts/copy-libs.sh + ``` + +#### MacOs + +Check out this fork of _Dune Dynasty_ explicitly for MacOS: +[https://github.com/YuriyGuts/dunedynasty-macos](https://github.com/YuriyGuts/dunedynasty-macos) + +## Acknowledgements + +Thank you to: + +- The OpenDUNE team: + - Albert Hofkamp (Alberth) + - Loic Guilloux (glx) + - Patric Stout (TrueBrain) + - Steven Noorbergen (Xaroth) +- The Allegro 5 developers. +- The developers of DOSBox, MAME, ScummVM, Dune Legacy, and everyone else +who worked on the AdLib/OPL/MIDI player code. +- Peter, for help on various bits of the code, the music code, and AUDlib. +- Nyerguds, for his Dune II editor. +- Bug reporters and other improvement suggestions: MrFlibble, Nyerguds, Zocom7, EagleEye, gerwin, Leolo, VileRancour, swt83, Paar, Akaine, Wesker. +- Westwood Studios, for an amazing game! -Westwood Studios, for an amazing game! +## License +_Dune Dynasty_ is licensed under the GNU General Public License version +2.0. For more information, see the `LICENSE.txt` file included with every +release and source download of the game. ## Authors -- David Wang https://github.com/wangds/ - original author -- Andrea Ratto https://github.com/neg3ntropy/ - compilation fixes and graphics updates -- Zbynek Vyskovsky https://github.com/kvr000/ - compilation fixes and other polishing - - -[OpenDUNE]: http://www.opendune.org/ -[Homebrew]: https://docs.brew.sh/Installation -[Allegro 5]: https://github.com/liballeg/allegro5 -[CMake]: http://www.cmake.org/ -[Timidity++]: http://timidity.sourceforge.net/ -[FluidSynth]: http://sourceforge.net/apps/trac/fluidsynth/ -[MAD]: http://www.underbit.com/products/mad/ -[Download]: ./ -[Screenshot]: http://sourceforge.net/projects/dunedynasty/screenshots/screenshot_hark2.png "Screenshot" -[Github]: ./ -[Fan-made campaigns]: http://forum.dune2k.com/topic/20526-dune-ii-goodies-extras/ -[Super Dune II Classic]: http://forum.dune2k.com/topic/20065-super-dune-ii-classic/ -[Stefan Hendriks' Atreides Campaign]: http://arrakis.dune2k.com/downloads.html -[Dune 2 eXtended]: http://forum.dune2k.com/topic/18360-dune-2-extended-project/ -[changes]: CHANGES.txt +- [David Wang aka wangds](https://github.com/wangds/): Original author +- [Andrea Ratto aka neg3ntropy](https://github.com/neg3ntropy/): Compilation fixes and graphics updates +- [Zbynek Vyskovsky aka kvr000](https://github.com/kvr000/): Compilation fixes and other polishing +- [1oom-fork](https://github.com/1oom-fork/): Various fixes and new features +- [codeflorist](https://github.com/codeflorist/): Various fixes, new features and maintainer of this fork diff --git a/assets/OrthodoxHerbertarian.ttf b/assets/OrthodoxHerbertarian.ttf new file mode 100644 index 000000000..47d3dc49b Binary files /dev/null and b/assets/OrthodoxHerbertarian.ttf differ diff --git a/assets/banner.psd b/assets/banner.psd index 97fecd72c..3da1205e5 100644 Binary files a/assets/banner.psd and b/assets/banner.psd differ diff --git a/assets/social-preview.psd b/assets/social-preview.psd new file mode 100644 index 000000000..f8e3401af Binary files /dev/null and b/assets/social-preview.psd differ diff --git a/dist/README.txt b/dist/README.txt new file mode 100644 index 000000000..8101e4dfa --- /dev/null +++ b/dist/README.txt @@ -0,0 +1,541 @@ +============ +Dune Dynasty +(v1.6.0) +============ + +About +===== + +Dune Dynasty is an enhancement of the classic real-time strategy game Dune II by +Westwood Studios. It is not a remake. It builds upon the original game engine as +reverse-engineered by the OpenDUNE [https://github.com/OpenDUNE/OpenDUNE] +project. + +Dune Dynasty features these modern enhancements for Dune II: + + * Runs natively on Linux and Windows (OpenGL or Direct3D) + (for MacOS see this port [https://github.com/YuriyGuts/dunedynasty-macos]) + * Graphics Enhancements: + * High-resolution widescreen graphics + * Separate customizable scaling of menubar, sidebar and map/viewport for + HiDPI displays + * Smoother unit animation (optional) + * High-res overlay (optional) + * Control Enhancements (Command & Conquer style): + * Build/order units and structures in scrollable sidepanel + * Queue building of multiple items + * Select and command multiple units by drawing a rectangle + * Select all units of same type in viewport via double-click (or CTRL-LMB) + * Save/load unit control groups via keyboard hotkeys + * Set rally points for buildings + * Windows Touchscreen Support [#touchscreen-support] + * Skirmish and Multiplayer: + * With 3 additional factions: Fremen, Sardaukar and Mercenaries + * For up to 6 players/AI + * Alliances (skirmish only) + * Random maps (or enter fixed map seed) + * Settings for starting credits, amount of spice fields and lose condition + * Sound and Music Enhancements: + * Emulated AdLib sound and music playback + * General MIDI playback via FluidSynth [#general-midi-music] (supporting + SoundFonts) + * Support for external music sets [#external-music-sets]: + * Recorded AdLib, MT-32 and SC-55 packs + * Sega Mega Drive soundtrack (mostly different songs, but also very good!) + * Dune 2000 game soundtrack + * Dune (1992) game by Cryo (an excellent, award winning, much more chill + soundtrack of Dune II's predecessor both as AdLib Gold recording and the + remastered Spice Opera soundtrack by Exxos) + * Dune (1984) Original Motion Picture Soundtrack + * Dune: Part One (2021) Original Motion Picture Soundtrack and "The Dune + Sketchbook" soundtrack + * ...with many options for randomly combining them during gameplay + * ...all playable in in-game jukebox + * Multiple sound channels + * Gameplay Enhancements (optional): + * Health bars + * Fog of war + * Brutal AI mode + * Infantry squad corpses + * Raise scenario unit cap + * Start level selection + * Support for Custom campaigns [#custom-campaigns]: + * Dune 2 eXtended + [http://forum.dune2k.com/topic/18360-dune-2-extended-project/] + * MrFlibble's Alternate Scenarios + [https://www.mediafire.com/file/9vs75nukou8o3wq/Dune2-MrFlibble%2527sAlternateScenarios.zip/file] + * Stefan Henriks' Atreides campaign + [http://arrakis.dune2k.com/downloads.html] + * Super Dune II [http://forum.dune2k.com/topic/20065-super-dune-ii-classic/] + * Various bug fixes + +A more detailed list of changes by Dune Dynasty and OpenDUNE from the original +Dune II can be found in the file enhancement.txt. + +Development History +------------------- + +Dune Dynasty was initially developed by David Wang, with the source code hosted +on SourceForge [https://sourceforge.net/projects/dunedynasty/]. Its last +official version was v1.5.7 from 2013. After that David Wang added lots of new +features (mainly multiplayer) up until 2015, but never released a new version. +Later some github-repos emerged with additional fixes and improvements (by +1oom-fork [https://github.com/1oom-fork/dunedynasty] and neg3ntropy +[https://github.com/neg3ntropy/dunedynasty]), but again no new release. This +fork is intended to merge these improvements, fix further bugs, add minor +features, and provide new releases (v1.6.0+) with binary download-packages for +Windows and Linux (see this fork +[https://github.com/YuriyGuts/dunedynasty-macos] for Mac). + +Screenshots +=========== + +https://github.com/codeflorist/dunedynasty/blob/master/docs/screenshots.jpg + +Alternatives +============ + +Here are some alternatives for enjoying Dune II on modern systems: + + * https://github.com/OpenDUNE/OpenDUNE: Reverse-engineered source port of Dune + II, upon which Dune Dynasty is based on. It's goal is to keep it as close to + the original as possible and thus has significantly less features and + modernizations than Dune Dynasty. OpenDUNE and Dune Dynasty can both read + original file formats (e.g. save games). + * https://dunelegacy.sourceforge.net/: A Dune II clone / engine recreation / + remake with a similar feature-set as Dune Dynasty, but deviating more from + the original's look and feel. Has multiplayer support and map editor. + * https://dune2themaker.fundynamic.com/: Another Dune II remake with modern + features and upscaled graphics. Also deviates quite a bit from the original's + look and feel. + * There is also a https://github.com/OpenRA/d2/wiki, an open source engine for + the early Command & Conquer games. + * Dune II is also perfectly playable using DOSBox + [https://dosbox-staging.github.io/]. + * There is a well done Dune II clone for Android on Google Play Store + [https://play.google.com/store/apps/details?id=de.morphbot.dune]. + * There is also a fork of [https://github.com/YuriyGuts/dunedynasty-macos]. + +Dune Dynasty's unique selling points are probably it's faithfulness to the look +and feel of the original (due to it basing on an engine re-creation +[https://github.com/OpenDUNE/OpenDUNE] of the original) combined with many +control modernizations, it's support for fan-generated campaigns +[#custom-campaigns], various music soundtracks [#external-music-sets] and +multiplayer. + +Changes +======= + +You can find the list of changes between versions in the file CHANGES.txt. + +Download +======== + +The most current Windows and Linux binaries and source code can be downloaded +from the Github release page: + +https://github.com/gameflorist/dunedynasty/releases + +For MacOS, check out this fork: +https://github.com/YuriyGuts/dunedynasty-macos + +Installation +============ + +You will need the \*.PAK data files from the EU v1.07 release of Dune II. See +the file data/FILELIST.TXT for a complete list of needed files. + +Place them into one of the following places: + + 1. In a directory named data next to the dunedynasty executable. This is the + simplest option. + + 2. In your personal data directory. The location depends on your operating + system. + + On Unix, this will be ~/.local/share/dunedynasty/data. + + On Windows 32bit, this will be something like: + C:\users\\Application Data\Dune Dynasty\data + + And on Windows 64bit it will be: + C:\users\\AppData\Roaming\Dune Dynasty\data + +Once the data files are in place, you may start the game by running +dunedynasty.exe or dunedynasty. + +On Linux you will also have to install the libraries Dune Dynasty depends on: + +sudo apt install liballegro5.2 liballegro-acodec5.2 liballegro-image5.2 libenet7 libfluidsynth3 libmad0 libgl1 + +If libfluidsynth3 is not available on your distribution, try libfluidsynth2 +instead. + +Configuration +============= + +Just as the data-files, the configuration file dunedynasty.cfg will be read from +one of two places: + + 1. In the same directory as the dunedynasty executable. + + 2. In a personal data directory. This is the default behaviour - meaning + dunedynasty.cfg will be created here on initial launch. + + On Unix the configuration file is located at: + ~/.config/dunedynasty/dunedynasty.cfg + + On Windows 32bit, this will be something like: + C:\users\\Application Data\Dune Dynasty\dunedynasty.cfg + + And on Windows 64bit it will be: + C:\users\\AppData\Roaming\Dune Dynasty\dunedynasty.cfg + +See the sample file dunedynasty.cfg-sample for a list of configuration options. +You can modify the existing dunedynasty.cfg file or replace it with +dunedynasty.cfg-sample. + +Portable mode +------------- + +If you place dunedynasty.cfg in the same directory as the dunedynasty +executable, Dune Dynasty will operate in portable mode - keeping everything +(e.g. savegames) inside the install directory. + +Video Settings +-------------- + +Display mode and resolution can be changed in the game's "Options and Extras" +menu. The game initially launches in Fullscreen Window mode (using your +Desktop-resolution). + +You might want to increase or decrease the scaling factors of the menubar, +sidebar and viewport. You can do this in-game in the Game Control menu. + +Controls +======== + +The controls should be similar to most real-time strategy games. You can finally +select multiple units by dragging a rectangle, or shift clicking. You can also +select all units of the same type in the current viewscreen via a double click +or via Ctrl + LMB. + +Right click issues commands to units, and sets the rally point on buildings. You +can also change this to Left Click (which is very useful for touchscreen input). + +Keyboard shortcuts are mostly just the first letter of the action. + +A Attack or Harvest +H Harvest +M Move +G, S Guard (Stop) +P Place constructed structure + +Ctrl-1 Assign control group 1 +Ctrl-2 Assign control group 2, etc. +1-0 Select control group 1-0 (press 2 times to center in viewport) + +Ctrl + LMB Select all units of the same type in current viewport +Double LMB Select all units of the same type in current viewport +Ctrl + RMB Set rally points for all similar buildings +Space Focus viewport on selected structure +Tab Select next building of the same type +Esc Pause/Cancel factory task + +-, + Zoom in or out +[, ] Toggle size of menu and side bars +Alt-Enter Toggle windowed mode + +F1 Mentat +F2 Options +F3 Click structure icon +F4 Select construction yard (press 2 times to center in viewport) +F5 Show current song +F6 Decrease music volume +F7 Increase music volume +F11 Toggle windowed mode +F12 Save screenshot into data directory + +There are also keyboard shortcuts for constructing buildings with the +construction yard. They are displayed in the build-panel. + +Touchscreen Support +------------------- + +Dune Dynasty works very well with touchscreens (e.g. like Microsoft Surface +Pro), since most actions are performed using the left mouse button. You can +perform a right button click via a long (ca. 1 sec.) press. Commands are issued +via the right button by default, but you can change this by setting Control +Style to Left Click in the Game Control options. Then you can quickly select and +command your units via short taps with your finger. To deselect units or +structures perform a long press or simply draw an empty rectangle into the sand. +You can even zoom the viewport with a pinch finger-movement. + +Saved games +=========== + +Saved games are located in the save directory next to dunedynasty.cfg. If no +configuration file exists, they will be in placed in a personal data directory. + +On Unix, this will be ~/.config/dunedynasty/save. + +On Windows 32bit, this will be something like: +C:\users\\Application Data\Dune Dynasty\save + +And on Windows 64bit it will be: +C:\users\\AppData\Roaming\Dune Dynasty\save + +Saved games from Dune II should work if placed there. + +Music +===== + +Dune Dynasty supports the following music sources: + + * Midi (using your machine's default Midi device) + * AdLib (built-in emulation) + * FluidSynth (General Midi via SoundFonts) + * Various External music sets (see below [#external-music-sets]) + +By default, Dune Dynasty will randomly mix music from all the available sources. +You can disable any sources in the game's "Options and Extras"-menu (changes +require a restart). + +There you will also find a Jukebox to listen to all available songs from all +available sources. + +Midi +---- + +Dune Dynasty can play music via the system MIDI output on Windows and Linux +(ALSA). If you use [Timidity++] as an ALSA sequencer client on Linux you should +start it with smaller buffer sizes to avoid the "drunk drummer" problem: + +timidity -iA -B 4,8 + +FluidSynth +---------- + +FluidSynth allows playing music via a specified SoundFont. You will need to set +the sound_font path in the configuration file [#configuration] to an appropriate +sound font (.sf2) file, e.g. + +[audio] +sound_font=/usr/share/sounds/sf2/FluidR3_GM.sf2 + + +Popular SoundFonts are e.g.: + + * Timbres of Heaven [https://midkar.com/soundfonts/index.html] + * Arachno Soundfont [https://www.arachnosoft.com/main/soundfont.php] + +External music sets +------------------- + +Dune Dynasty can play various external music sets, e.g. recordings of the +original PC or Sega Mega Drive soundtrack, music from different Dune games like +Dune 2000 or Cryo's 1992 Dune, or even the motion picture soundtracks. + +Each of these have their own subdirectory in the music directory. Instructions +and download/purchase links are provided below and in the respective +FILELIST.TXT files. + +Here is a list of supported Music packs: + + * Original Dune II (PC) music: + + * rcblanke's SC-55 recording + [https://www.vogons.org/viewtopic.php?t=33823&start=42] + * ShaiWa's MT-32 recording [https://dune2k.com/Download/783] + * Dune II - The Maker AdLib recording + [https://dune2themaker.fundynamic.com/downloads/mp3adlib.zip] + * Dune II - The Maker MT-32 recording + [https://dune2themaker.fundynamic.com/downloads/mp3mt32.zip] + * Dune II - The Maker SC-55 recording + [https://dune2themaker.fundynamic.com/downloads/mp3sc55.zip] + + * http://nyerguds.arsaneus-design.com/dune/dunesega/ + Mostly different songs from PC version, but also very good! + + * Dune 2000 game music + Unfortunately, this game cannot be purchased anymore at the moment. + + * Dune (1992) game (by Cryo) music by Stéphane Picq and Philippe Ulrich: + The excellent award-winning soundtrack for Dune II's predecessor - the 1992 + Dune game by Cryo. It is very atmospheric, and makes Dune II a much more + relaxing and chill experience. Two versions are supported: + + * AdLib Gold recording by DOS Nostalgia [https://www.dosnostalgia.com/?p=542] + * Spice Opera by Exxos + A remastered CD release of the soundtrack. Unfortunately it is not + available for purchase anymore (but Google might be your friend here). + + * Dune (1984) Original Motion Picture Soundtrack by Toto and Brian Eno + Seems to be only available on CD. Purchase e.g. from amazon.com + [https://www.amazon.com/-/de/dp/B000006YDD/] or amazon.de + [https://www.amazon.de/Dune-Toto/dp/B000006YDD/] and rip files to MP3. + + * Dune: Part One (2021) Original Motion Picture Soundtrack by Hans Zimmer + Purchase e.g. from amazon.com + [https://www.amazon.com/music/player/albums/B09F1Y3NCK/] or amazon.de + [https://www.amazon.de/music/player/albums/B09F2HWHGJ]. + + * Dune: Part One (2021) "The Dune Sketchbook" soundtrack by Hans Zimmer + Purchase e.g. from amazon.com + [https://www.amazon.com/music/player/albums/B09C3YS6DX] or amazon.de + [https://www.amazon.de/music/player/albums/B09C3YZZPW]. + +After installation of a music set, you can check it's availability in the +"Music" section of the game's "Options and Extras" menu. There you can also +enable/disable music sets for random play. + +You can also disable individual songs from music sets. You have to do this by +editing your config-file though. + +Example: If you want to include Dune 2000 music, but exclude "Robotix": + +[music/dune2000] +ROBOTIX=0 + +Custom campaigns +================ + +Dune Dynasty supports various fan-made campaigns: + + * Dune 2 eXtended + [http://forum.dune2k.com/topic/18360-dune-2-extended-project/] + * MrFlibble's Alternate Scenarios + [https://www.mediafire.com/file/9vs75nukou8o3wq/Dune2-MrFlibble%2527sAlternateScenarios.zip/file] + * Stefan Henriks' Atreides campaign [http://arrakis.dune2k.com/downloads.html] + * Super Dune II [http://forum.dune2k.com/topic/20065-super-dune-ii-classic/] + +These should be placed in the existing subdirectories inside the campaign +directory. + +Click the arrows next to the "The Building of a Dynasty" subtitle in the main +menu to switch between campaigns. + +You can also create your own campaigns. A campaign should consist of a META.INI +file, a REGIONX.INI file for each playable House, where X is the first letter of +the House name, and a complete set of scenarios for each House, named +SCENX001.INI through SCENX022.INI. See Stefan Hendriks' Atreides Campaign +(subfolder shac) as a simple example. + +Each campaign can also contain custom balance tweaks, specified in PROFILE.INI +and HOUSE.INI. Please refer to the sample files in the campaign directory for +more information. + +Finally, the scenarios can either be distributed as loose INI files or as a +single PAK file. Data stored in PAK files must be listed in META.INI. See +MrFlibble's Alternative Scenarios (subfolder mfas) as a simple example of +scenarios stored in a PAK file. + +Development +=========== + +Compilation +----------- + +General Info +------------ + +The binary will be placed in the dist directory. + +The steps below will build the release-version. You can change value of the +DCMAKE_BUILD_TYPE parameter to build different versions, with the possible +options being: Debug, Release, RelWithDebInfo and MinSizeRel. + +Windows +------- + + 1. Download and install MSYS2 [https://www.msys2.org/#installation]. + + 2. Launch MSYS2 UCRT64 from the startmenu. + + 3. Install dependencies: + + pacman -S mingw-w64-ucrt-x86_64-cmake + pacman -S mingw-w64-ucrt-x86_64-gcc + pacman -S mingw-w64-ucrt-x86_64-gdb + pacman -S mingw-w64-ucrt-x86_64-allegro + pacman -S mingw-w64-ucrt-x86_64-enet + pacman -S mingw-w64-ucrt-x86_64-fluidsynth + pacman -S mingw-w64-ucrt-x86_64-libmad + + + 4. Perform build: + + cd + cmake -G Ninja -DCMAKE_BUILD_TYPE=Release . + ninja + + + 5. For packaging, you have to copy all required .dll files to the dist folder. + To do this, simply call the following script: + + ./scripts/copy-dlls.sh + +Debian, Ubuntu +-------------- + + 1. Install dependencies: + + sudo apt -y install build-essential cmake liballegro5-dev libenet-dev libmad0-dev libfluidsynth-dev fluidsynth + + + 2. Perform build: + + cmake -DCMAKE_BUILD_TYPE=Release . + make + + + 3. When packaging, there is the problem, that the fluidsynth-library is called + libfluidsynth2 on some distributions, and libfluidsynth3 on others. To + mitigate, call this script, which will copy the library-file to dist/libs + and patch the executable to use the inlcuded library instead: + + ./scripts/copy-libs.sh + +MacOs +----- + +Check out this fork of Dune Dynasty explicitly for MacOS: +https://github.com/YuriyGuts/dunedynasty-macos + +Acknowledgements +================ + +Thank you to: + + * The OpenDUNE team: + * Albert Hofkamp (Alberth) + * Loic Guilloux (glx) + * Patric Stout (TrueBrain) + * Steven Noorbergen (Xaroth) + * The Allegro 5 developers. + * The developers of DOSBox, MAME, ScummVM, Dune Legacy, and everyone else who + worked on the AdLib/OPL/MIDI player code. + * Peter, for help on various bits of the code, the music code, and AUDlib. + * Nyerguds, for his Dune II editor. + * Bug reporters and other improvement suggestions: MrFlibble, Nyerguds, Zocom7, + EagleEye, gerwin, Leolo, VileRancour, swt83, Paar, Akaine, Wesker. + * Westwood Studios, for an amazing game! + +License +======= + +Dune Dynasty is licensed under the GNU General Public License version 2.0. For +more information, see the LICENSE.txt file included with every release and +source download of the game. + +Authors +======= + + * David Wang aka wangds [https://github.com/wangds/]: Original author + * Andrea Ratto aka neg3ntropy [https://github.com/neg3ntropy/]: Compilation + fixes and graphics updates + * Zbynek Vyskovsky aka kvr000 [https://github.com/kvr000/]: Compilation fixes + and other polishing + * 1oom-fork [https://github.com/1oom-fork/]: Various fixes and new features + * codeflorist [https://github.com/codeflorist/]: Various fixes, new features + and maintainer of this fork \ No newline at end of file diff --git a/docs/banner.jpg b/docs/banner.jpg new file mode 100644 index 000000000..e86d4a8d6 Binary files /dev/null and b/docs/banner.jpg differ diff --git a/docs/screenshots.jpg b/docs/screenshots.jpg new file mode 100644 index 000000000..4dff22dc2 Binary files /dev/null and b/docs/screenshots.jpg differ