1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-24 22:14:36 +02:00

Files renamed for consistency, updated some pages

This commit is contained in:
Ivan Savenko 2023-08-20 19:06:36 +03:00
parent 0f07870f4b
commit d78106b52b
48 changed files with 251 additions and 796 deletions

View File

@ -1,62 +0,0 @@
## General
#### What to expect working in VCMI?
Most of original game except multiplayer. Everything else is better to
report on our [bugtracker](http://bugs.vcmi.eu).
#### Can I play VCMI on my Android device?
Read this: <http://forum.vcmi.eu/viewtopic.php?t=614>
#### Do I need to install WoG to play VCMI?
No. VCMI has it's own port of WoG mod available from Launcher. We
recommend to install VCMI over fresh SoD / Complete versions.
#### What does "VCMI" stand for?
VCMI is an acronym of the [Quenya](https://en.wikipedia.org/wiki/Quenya)
phrase "Vinyar Callor Meletya Ingole", meaning "New Heroes of Might and
Magic". ([Source](https://forum.vcmi.eu/t/what-vcmi-stands-for/297/4))
## Game options
#### How can I change screen resolution?
Start any scenario, open System Options dialog and click "High" button.
In case only 800x600 is available, close VCMI, download this
[file](https://www.dropbox.com/sh/fwor43x5xrgzx6q/AABpTFqGK7Q9almbyr3hp9jma/mods/vcmi.zip)
which contains the “bonusIcons” and “extraResolutions” repertories.
Unzip, and place them in XXX (Windows), YYY (Android), ZZZ (Mac) or
~/.local/share/vcmi/Mods (Linux). Then start any scenario, open System
Options dialog and voilà, other resolutions than 800x600 are availables.
Note that you need to restart VCMI for the change to take effect.
#### How to turn off creature queue panel in battles?
Hotkey to switch this panel is "Q"
#### Can I turn off some WoG features that I don't like?
Yes. Take a look on config/defaultMods.json file and edit it to your
liking.
Note to Linux users: this file can be found in vcmi data directory (run
vcmiclient -v to see path). It can be copied into ~/.vcmi/config/ to
avoid editing file usually owned by root.
## Mods
#### Is it possible to add town X to vcmi?
This depends on town authors or anyone else willing to port it to vcmi.
Aim of VCMI is to provide *support* for such features.
#### Where can I find mods for VCMI?
Check
[Modding_guidelines#For_players](Modding_guidelines#For_players "wikilink")
page

View File

@ -3,62 +3,20 @@ with the team members interested in them.
# Heroes III
[Missing features at
Trello](https://trello.com/b/68e5rAAl/vcmi-missing-features-only)
### Most important bugfixes
- daily build contains broken vcmi essential package (ticket is for
linux but same problem on Windows also)
<https://bugs.vcmi.eu/view.php?id=2986> - questionable
- desync in multiplayer cross-platform
<https://bugs.vcmi.eu/view.php?id=2583>
### Establish release process
In January 2021 there was a proposition on Slack to make 3 branches:
develop, beta and stable. develop is where people make their changes
when they are ready, people can test it but its not for normal players
beta could be for players who agree to be testers. stable could be for
players who want stable version. Hovewer there were no decision made
[Missing features at Trello](https://trello.com/b/68e5rAAl/vcmi-missing-features-only)
### HD mod/quality of life
contact MikeLodz if you have questions about this section
These are necessary, as although they werent present back in 1999, they
are standard today.
- quick transfer of artifacts and armies between heroes, started here
<https://github.com/vcmi/vcmi/pull/636>
- adventure map: movements points preview and cost
- move artifacts between visiting town and garrison heroes
- hero list preview on the "start map" screen.
etc see here for full list of enhancements:
are standard today. See here for full list of enhancements:
<https://sites.google.com/site/heroes3hd/eng/description/extended-ui>
- some walking creatures need to move faster during battles, as its a
complete waste of time (we need a so called "turbo" mode)
<!-- -->
- this one not sure if its a bug or missing hd mod feature: it should
be possible to preview hero screen when choosing a skill on levelup.
### Hota rebalances?
contact MikeLodz about this section
- what is our stance on Hota rebalances ? we should discuss them at
least and decide which to adopt, and which to ignore \*
- this one not sure if its a bug or missing hd mod feature: it should be possible to preview hero screen when choosing a skill on levelup.
### Random map generator
Dydzio said about it on Slack:
`finish `[`https://github.com/dydzio0614/vcmi/tree/rmgtemplates`](https://github.com/dydzio0614/vcmi/tree/rmgtemplates)` (random map generator template pick,`
better selection lists for random map generator template - two versions
(two bitmaps provided) also one more thing - for random map template
pick my vision was to create more generic select list component and make
@ -93,24 +51,13 @@ town portal select component derive from it
- Language support
- Synchronising scripts in multiplayer
### Mod system
- Adding new content
- Adventure map objects
- Battlefields
[Forum
thread](http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=0)
### Wog features
- Mithril
- ERM handling (Tow, Tow Dragon)
- ERM handling
# New features
- Support for other languages files
([Ivan](http://forum.vcmi.eu/profile.php?mode=viewprofile&u=336))
- Support for multiple map levels
- [New map editor](http://forum.vcmi.eu/viewtopic.php?t=1139)
- Installer
@ -122,22 +69,6 @@ thread](http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=
- Dedicated server mode
- [Replays](http://forum.vcmi.eu/viewtopic.php?t=264)
### Other platforms
- Linux (<span style="color:green">**Supported**</span>, [forum
thread](http://forum.vcmi.eu/viewtopic.php?t=112))
- Mac OS (<span style="color:green">**Supported**</span>, [forum
thread](http://forum.vcmi.eu/viewtopic.php?t=439))
- Android (<span style="color:green">**Supported**</span>, [forum
thread](http://forum.vcmi.eu/viewtopic.php?t=850))
- iOS (<span style="color:green">**Supported**</span>, [forum
thread](https://forum.vcmi.eu/t/ios-port/820))
- Haiku (<span style="color:yellow">**Status unknown**</span>, [forum
thread](http://forum.vcmi.eu/viewtopic.php?t=310))
- Maemo (<span style="color:yellow">**Status unknown**</span>, [forum
thread](http://forum.vcmi.eu/viewtopic.php?t=328))
- FreeBSD (<span style="color:yellow">**Status unknown**</span>)
# New graphics
### New menus project and graphics
@ -157,8 +88,3 @@ thread](http://forum.vcmi.eu/viewtopic.php?t=471&postdays=0&postorder=asc&start=
- New menus
### 32-bit graphics
### 800 x 480 resolution
Experimental version posted on our forum is available
[here](http://forum.vcmi.eu/viewtopic.php?t=273).

View File

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -1,208 +0,0 @@
# Using dependencies from Conan
[Conan](https://conan.io/) is a package manager for C/C++. We provide prebuilt binary dependencies for some platforms that are used by our CI, but they can also be consumed by users to build VCMI. However, it's not required to use only the prebuilt binaries: you can build them from source as well.
## Supported platforms
The following platforms are supported and known to work, others might require changes to our [conanfile.py](../conanfile.py) or upstream recipes.
- **macOS**: x86_64 (Intel) - target 10.13 (High Sierra), arm64 (Apple Silicon) - target 11.0 (Big Sur)
- **iOS**: arm64 - target 12.0
- **Windows**: x86_64 and x86 fully supported with building from Linux
- **Android**: armeabi-v7a (32-bit ARM) - target 4.4 (API level 19), aarch64-v8a (64-bit ARM) - target 5.0 (API level 21)
## Getting started
1. [Install Conan](https://docs.conan.io/en/latest/installation.html). Currently we support only Conan v1, you can install it with `pip` like this: `pip3 install 'conan<2.0'`
2. Execute in terminal: `conan profile new default --detect`
## Download dependencies
0. If your platform is not on the list of supported ones or you don't want to use our prebuilt binaries, you can still build dependencies from source or try consuming prebuilt binaries from the central Conan repository - [ConanCenter](https://conan.io/center/). In this case skip to the [next section](#generate-cmake-integration) directly.
1. Check if your build environment can use the prebuilt binaries: basically, that your compiler version (or Xcode major version) matches the information below. If you're unsure, simply advance to the next step.
- **macOS**: libraries are built with Apple clang 14 (Xcode 14.2), should be consumable by Xcode and Xcode CLT 14.x (older library versions are also available for Xcode 13, see Releases in the respective repo)
- **iOS**: libraries are built with Apple clang 14 (Xcode 14.2), should be consumable by Xcode 14.x (older library versions are also available for Xcode 13, see Releases in the respective repo)
- **Windows**: libraries are built with x86_64-mingw-w64-gcc version 10 (which is available in repositories of Ubuntu 22.04)
- **Android**: libraries are built with NDK r25c (25.2.9519653)
2. Download the binaries archive and unpack it to `~/.conan` directory:
- [macOS](https://github.com/vcmi/vcmi-deps-macos/releases/latest): pick **intel.txz** if you have Intel Mac, otherwise - **intel-cross-arm.txz**
- [iOS](https://github.com/vcmi/vcmi-ios-deps/releases/latest)
- [Windows](https://github.com/vcmi/vcmi-deps-windows-conan/releases/latest): pick **vcmi-deps-windows-conan-w64.tgz**
if you want x86, otherwise pick **vcmi-deps-windows-conan.tgz**
- [Android](https://github.com/vcmi/vcmi-dependencies/releases)
3. Only if you have Apple Silicon Mac and trying to build for macOS or iOS:
1. Open file `~/.conan/data/qt/5.15.x/_/_/export/conanfile.py` (`5.15.x` is a placeholder), search for string `Designer` (there should be only one match), comment this line and the one above it by inserting `#` in the beginning, and save the file.
2. (optional) If you don't want to use Rosetta, follow [instructions how to build Qt host tools for Apple Silicon](https://github.com/vcmi/vcmi-ios-deps#note-for-arm-macs), on step 3 copy them to `~/.conan/data/qt/5.15.x/_/_/package/SOME_HASH/bin` (`5.15.x` and `SOME_HASH` are placeholders). Make sure **not** to copy `qt.conf`!
## Generate CMake integration
Conan needs to generate CMake toolchain file to make dependencies available to CMake. See `CMakeDeps` and `CMakeToolchain` [in the official documentation](https://docs.conan.io/en/latest/reference/conanfile/tools/cmake.html) for details.
In terminal `cd` to the VCMI source directory and run the following command. Also check subsections for additional requirements on consuming prebuilt binaries.
<pre>
conan install . \
--install-folder=<b><i>conan-generated</i></b> \
--no-imports \
--build=<b><i>never</i></b> \
--profile:build=default \
--profile:host=<b><i>CI/conan/PROFILE</i></b>
</pre>
The highlighted parts can be adjusted:
- ***conan-generated***: directory (absolute or relative) where the generated files will appear. This value is used in CMake presets from VCMI, but you can actually use any directory and override it in your local CMake presets.
- ***never***: use this value to avoid building any dependency from source. You can also use `missing` to build recipes, that are not present in your local cache, from source.
- ***CI/conan/PROFILE***: if you want to consume our prebuilt binaries, ***PROFILE*** must be replaced with one of filenames from our [Conan profiles directory](../CI/conan) (determining the right file should be straight-forward). Otherwise, either select one of our profiles or replace ***CI/conan/PROFILE*** with `default` (your default profile).
- ***note for Windows x86***: use profile mingw32-linux.jinja for building instead of mingw64-linux.jinja
If you use `--build=never` and this command fails, then it means that you can't use prebuilt binaries out of the box. For example, try using `--build=missing` instead.
VCMI "recipe" also has some options that you can specify. For example, if you don't care about game videos, you can disable FFmpeg dependency by passing `-o with_ffmpeg=False`. If you only want to make release build, you can use `GENERATE_ONLY_BUILT_CONFIG=1` environment variable to skip generating files for other configurations (our CI does this).
_Note_: you can find full reference of this command [in the official documentation](https://docs.conan.io/en/latest/reference/commands/consumer/install.html) or by executing `conan help install`.
### Using our prebuilt binaries for macOS/iOS
We use custom recipes for some libraries that are provided by the OS. You must additionally pass `-o with_apple_system_libs=True` for `conan install` to use them.
### Using prebuilt binaries from ConanCenter
First, check if binaries for [your platform](https://github.com/conan-io/conan-center-index/blob/master/docs/supported_platforms_and_configurations.md) are produced.
You must adjust the above `conan install` command:
1. Replace ***CI/conan/PROFILE*** with `default`.
2. Additionally pass `-o default_options_of_requirements=True`: this disables all custom options of our `conanfile.py` to match ConanCenter builds.
### Building dependencies from source
This subsection describes platform specifics to build libraries from source properly.
#### Building for macOS/iOS
- To build Locale module of Boost in versions >= 1.81, you must use `compiler.cppstd=11` Conan setting (our profiles already contain it). To use it with another profile, either add this setting to your _host_ profile or pass `-s compiler.cppstd=11` on the command line.
- If you wish to build dependencies against system libraries (like our prebuilt ones do), follow [below instructions](#using-recipes-for-system-libraries) executing `conan create` for all directories. Don't forget to pass `-o with_apple_system_libs=True` to `conan install` afterwards.
#### Building for Android
Android has issues loading self-built shared Zlib library because binary name is identical to the system one, so we enforce using the OS-provided library. To achieve that, follow [below instructions](#using-recipes-for-system-libraries), you only need `zlib` directory.
##### Using recipes for system libraries
1. Clone/download https://github.com/kambala-decapitator/conan-system-libs
2. Execute `conan create PACKAGE vcmi/apple`, where `PACKAGE` is a directory path in that repository. Do it for each library you need.
3. Now you can execute `conan install` to build all dependencies.
## Configure project for building
You must pass the generated toolchain file to CMake invocation.
- if using custom CMake presets, just make sure to inherit our `build-with-conan` preset. If you store Conan generated files in a non-default directory, define the path to the generated toolchain in `toolchainFile` field (or `CMAKE_TOOLCHAIN_FILE` cache variable) or include CMake presets file generated by Conan.
- otherwise, if passing CMake options on the command line, use `--toolchain` option (available in CMake 3.21+) or `CMAKE_TOOLCHAIN_FILE` variable.
## Examples
In these examples only the minimum required amount of options is passed to `cmake` invocation, you can pass additional ones as needed.
### Use our prebuilt binaries to build for macOS x86_64 with Xcode
```
conan install . \
--install-folder=conan-generated \
--no-imports \
--build=never \
--profile:build=default \
--profile:host=CI/conan/macos-intel \
-o with_apple_system_libs=True
cmake -S . -B build -G Xcode \
--toolchain conan-generated/conan_toolchain.cmake
```
### Try to use binaries from ConanCenter for your platform
If you also want to build the missing binaries from source, use `--build=missing` instead of `--build=never`.
```
conan install . \
--install-folder=~/my-dir \
--no-imports \
--build=never \
--profile:build=default \
--profile:host=default \
-o default_options_of_requirements=True
cmake -S . -B build \
-D CMAKE_TOOLCHAIN_FILE=~/my-dir/conan_toolchain.cmake
```
### Use our prebuilt binaries to build for iOS arm64 device with custom preset
```
conan install . \
--install-folder=~/my-dir \
--no-imports \
--build=never \
--profile:build=default \
--profile:host=CI/conan/ios-arm64 \
-o with_apple_system_libs=True
cmake --preset ios-conan
```
`CMakeUserPresets.json` file:
```json
{
"version": 3,
"cmakeMinimumRequired": {
"major": 3,
"minor": 21,
"patch": 0
},
"configurePresets": [
{
"name": "ios-conan",
"displayName": "iOS",
"inherits": ["build-with-conan", "ios-device"],
"toolchainFile": "~/my-dir/conan_toolchain.cmake",
"cacheVariables": {
"BUNDLE_IDENTIFIER_PREFIX": "com.YOUR-NAME",
"CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM": "YOUR_TEAM_ID"
}
}
]
}
```
### Build VCMI with all deps for 32-bit windows in Ubuntu 22.04 WSL
```powershell
wsl --install
wsl --install -d Ubuntu
ubuntu
```
Next steps are identical both in WSL and in real Ubuntu 22.04
```bash
sudo pip3 install conan
sudo apt install cmake build-essential
sed -i 's/x86_64-w64-mingw32/i686-w64-mingw32/g' CI/mingw-ubuntu/before-install.sh
sed -i 's/x86-64/i686/g' CI/mingw-ubuntu/before-install.sh
sudo ./CI/mingw-ubuntu/before-install.sh
conan install . \
--install-folder=conan-generated \
--no-imports \
--build=missing \
--profile:build=default \
--profile:host=CI/conan/mingw32-linux \
-c tools.cmake.cmaketoolchain.presets:max_schema_version=2
cmake --preset windows-mingw-conan-linux
cmake --build --preset windows-mingw-conan-linux --target package
```
After that, you will have functional VCMI installer for 32-bit windows.

View File

@ -1,116 +0,0 @@
This page hold important information about project infrastructure for
current and future contributors. At moment it's all maintained by me
(SXX), but following information will be useful if someone going to
replace me in future.
You can also check [detailed information on server
configuration](Project_servers_configuration "wikilink").
## Services and accounts
So far we using following services:
### Most important
- VCMI.eu domain paid until July of 2019.
- Owner: Tow
- Our main domain used by services.
- VCMI.download paid until November of 2026.
- Owner: SXX
- Intended to be used for all assets downloads.
- Domain registered on GANDI and **can be renewed by anyone
without access to account**.
- [DigitalOcean](https://cloud.digitalocean.com/) team.
- Our hosting sponsor.
- Administrator access: SXX, Warmonger.
- User access: AVS, Tow.
- [CloudFlare](https://www.cloudflare.com/a/overview) account.
- Access through shared login / password.
- All of our infrastructure is behind CloudFlare and all our
webWe'll manage our DNS there.
- [Google Apps (G Suite)](https://admin.google.com/) account.
- It's only for vcmi.eu domain and limited to 5 users. Each
account has limit of 500 emails / day.
- One administrative email used for other services registration.
- "noreply" email used for outgoing mail on Wiki and Bug Tracker.
- "forum" email used for outgoing mail on Forums. Since we
authenticate everyone through forum it's should be separate
email.
- Administrator access: Tow, SXX.
- [Google Play Console](https://play.google.com/apps/publish/)
account.
- Hold ownership over VCMI Android App.
- Owner: SXX
- Administrator access: Warmonger, AVS.
- Release manager access: Fay.
Not all services let us safely share login credentials, but at least
when possible at least two of core developers must have access to them
in case of emergency.
### Public relations
We want to notify players about updates on as many social services as
possible.
- Facebook page: <https://www.facebook.com/VCMIOfficial>
- Administrator access: SXX, Warmonger
- Twitter account: <https://twitter.com/VCMIOfficial>
- Administrator access: SXX.
- User access via TweetDeck:
- VK / VKontakte page: <https://vk.com/VCMIOfficial>
- Owner: SXX
- Administrator access: AVS
- Google+ page: <https://plus.google.com/+VCMIOfficial>
- Administrator access: SXX
Other media:
- Steam group: <https://steamcommunity.com/groups/VCMI>
- Administrator access: SXX
- Moderator access: Dydzio
- Sub Reddit: <https://reddit.com/r/vcmi/>
- Administrator access: SXX
- ModDB entry: <http://www.moddb.com/engines/vcmi>
- Administrator access: SXX
### Communication channels
- Slack team: <https://h3vcmi.slack.com/>
- Owner: vmarkovtsev
- Administrator access: SXX, Warmonger, AVS...
- Trello team: <https://trello.com/vcmi/>
- Administrator access: SXX
- Unofficial discord:
- Owner: dydzio
- Administrator access: SXX
- Unofficial IRC channel: irc.freenode.net #vcmi
### Other services
- Launchpad PPA: <https://launchpad.net/~vcmi>
- Member access: AVS
- Administrator access: Ivan, SXX
- Snapcraft Dashboard: <https://dashboard.snapcraft.io/>
- Administrator access: SXX
- Coverity Scan page: <https://scan.coverity.com/projects/vcmi>
- Administrator access: SXX, Warmonger, AVS
- OpenHub page: <https://www.openhub.net/p/VCMI>
- Administrator access: Tow
- Docker Hub organization: <https://hub.docker.com/u/vcmi/>
- Administrator access: SXX
Reserve accounts for other code hosting services:
- GitLab organization: <https://gitlab.com/vcmi/>
- Administrator access: SXX
- BitBucket organization: <https://bitbucket.org/vcmi/>
- Administrator access: SXX
## What's to improve
1. Encourage Tow to transfer VCMI.eu to GANDI so it's can be also
renewed without access.
2. Use 2FA on CloudFlare and just ask everyone to get FreeOTP and then
use shared secret.
3. Centralized way to post news about game updates to all social media.

View File

@ -1,48 +0,0 @@
This page dedicated to explain specific configurations of our servers
for anyone who might need to improve it in future. Check [project
infrastructure](project_infrastructure "wikilink") page for services and
accounts overview.
## Droplet configuration
### Droplet and hosted services
Currently we using two droplets:
- First one serve all of our web services:
- [Forum](https://forum.vcmi.eu/)
- [Bug tracker](https://bugs.vcmi.eu/)
- [Wiki](https://wiki.vcmi.eu/)
- [Slack invite page](https://slack.vcmi.eu/)
- Second serve downloads:
- [Legacy download page](http://download.vcmi.eu/)
- [Build download page](https://builds.vcmi.download/)
To keep everything secure we should always keep binary downloads
separate from any web services.
### Rules to stick to
- SSH authentication by public key only.
- Incoming connections to all ports except SSH (22) must be blocked.
- Exception for HTTP(S) connection on ports 80 / 443 from [CloudFlare
IP Ranges](https://www.cloudflare.com/ips/).
- No one except core developers should ever know real server IPs.
- Droplet hostname should never be valid host. Otherwise it's exposed
in [reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS).
- If some non-web service need to listen for external connections then
read below.
### Our publicly-facing server
We only expose floating IP that can be detached from droplet in case of
emergency using [DO control
panel](https://cloud.digitalocean.com/networking/floating_ips). This
also allow us to easily move public services to dedicated droplet in
future.
- Address: beholder.vcmi.eu (67.207.75.182)
- Port 22 serve SFTP for file uploads as well as CI artifacts uploads.
If new services added firewall rules can be adjusted in [DO control
panel](https://cloud.digitalocean.com/networking/firewalls).

View File

@ -0,0 +1,99 @@
This page hold important information about project infrastructure for
current and future contributors. At moment it's all maintained by me
(SXX), but following information will be useful if someone going to
replace me in future.
You can also check [detailed information on server
configuration](Project_servers_configuration "wikilink").
## Services and accounts
So far we using following services:
### Most important
- VCMI.eu domain paid until July of 2019.
- Owner: Tow
- Our main domain used by services.
- VCMI.download paid until November of 2026.
- Owner: SXX
- Intended to be used for all assets downloads.
- Domain registered on GANDI and **can be renewed by anyone without access to account**.
- [DigitalOcean](https://cloud.digitalocean.com/) team.
- Our hosting sponsor.
- Administrator access: SXX, Warmonger.
- User access: AVS, Tow.
- [CloudFlare](https://www.cloudflare.com/a/overview) account.
- Access through shared login / password.
- All of our infrastructure is behind CloudFlare and all our web. We manage our DNS there.
- [Google Apps (G Suite)](https://admin.google.com/) account.
- It's only for vcmi.eu domain and limited to 5 users. Each account has limit of 500 emails / day.
- One administrative email used for other services registration.
- "noreply" email used for outgoing mail on Wiki and Bug Tracker.
- "forum" email used for outgoing mail on Forums. Since we authenticate everyone through forum it's should be separate email.
- Administrator access: Tow, SXX.
- [Google Play Console](https://play.google.com/apps/publish/) account.
- Hold ownership over VCMI Android App.
- Owner: SXX
- Administrator access: Warmonger, AVS.
- Release manager access: Fay.
Not all services let us safely share login credentials, but at least when possible at least two of core developers must have access to them in case of emergency.
### Public relations
We want to notify players about updates on as many social services as possible.
- Facebook page: <https://www.facebook.com/VCMIOfficial>
- Administrator access: SXX, Warmonger
- Twitter account: <https://twitter.com/VCMIOfficial>
- Administrator access: SXX.
- User access via TweetDeck:
- VK / VKontakte page: <https://vk.com/VCMIOfficial>
- Owner: SXX
- Administrator access: AVS
- Steam group: <https://steamcommunity.com/groups/VCMI>
- Administrator access: SXX
- Moderator access: Dydzio
- Reddit: <https://reddit.com/r/vcmi/>
- Administrator access: SXX
- ModDB entry: <http://www.moddb.com/engines/vcmi>
- Administrator access: SXX
### Communication channels
- Slack team: <https://h3vcmi.slack.com/>
- Owner: vmarkovtsev
- Administrator access: SXX, Warmonger, AVS...
- Trello team: <https://trello.com/vcmi/>
- Administrator access: SXX
- Discord:
- Owner: dydzio
- Administrator access: SXX, Warmonger, Ivan...
### Other services
- Launchpad PPA: <https://launchpad.net/~vcmi>
- Member access: AVS
- Administrator access: Ivan, SXX
- Snapcraft Dashboard: <https://dashboard.snapcraft.io/>
- Administrator access: SXX
- Coverity Scan page: <https://scan.coverity.com/projects/vcmi>
- Administrator access: SXX, Warmonger, AVS
- OpenHub page: <https://www.openhub.net/p/VCMI>
- Administrator access: Tow
- Docker Hub organization: <https://hub.docker.com/u/vcmi/>
- Administrator access: SXX
Reserve accounts for other code hosting services:
- GitLab organization: <https://gitlab.com/vcmi/>
- Administrator access: SXX
- BitBucket organization: <https://bitbucket.org/vcmi/>
- Administrator access: SXX
## What's to improve
1. Encourage Tow to transfer VCMI.eu to GANDI so it's can be also renewed without access.
2. Use 2FA on CloudFlare and just ask everyone to get FreeOTP and then use shared secret.
3. Centralized way to post news about game updates to all social media.

View File

@ -0,0 +1,36 @@
This page dedicated to explain specific configurations of our servers for anyone who might need to improve it in future. Check [project infrastructure](project_infrastructure "wikilink") page for services and accounts overview.
## Droplet configuration
### Droplet and hosted services
Currently we using two droplets:
- First one serve all of our web services:
- [Forum](https://forum.vcmi.eu/)
- [Bug tracker](https://bugs.vcmi.eu/)
- [Wiki](https://wiki.vcmi.eu/)
- [Slack invite page](https://slack.vcmi.eu/)
- Second serve downloads:
- [Legacy download page](http://download.vcmi.eu/)
- [Build download page](https://builds.vcmi.download/)
To keep everything secure we should always keep binary downloads separate from any web services.
### Rules to stick to
- SSH authentication by public key only.
- Incoming connections to all ports except SSH (22) must be blocked.
- Exception for HTTP(S) connection on ports 80 / 443 from [CloudFlare IP Ranges](https://www.cloudflare.com/ips/).
- No one except core developers should ever know real server IPs.
- Droplet hostname should never be valid host. Otherwise it's exposed in [reverse DNS](https://en.wikipedia.org/wiki/Reverse_DNS).
- If some non-web service need to listen for external connections then read below.
### Our publicly-facing server
We only expose floating IP that can be detached from droplet in case of emergency using [DO control panel](https://cloud.digitalocean.com/networking/floating_ips). This also allow us to easily move public services to dedicated droplet in future.
- Address: beholder.vcmi.eu (67.207.75.182)
- Port 22 serve SFTP for file uploads as well as CI artifacts uploads.
If new services added firewall rules can be adjusted in [DO control panel](https://cloud.digitalocean.com/networking/firewalls).

View File

@ -19,6 +19,7 @@ Should be done several weeks before planned release date
### Release preparation stage
Should be done several days before planned release date
- Make sure to announce codebase freeze deadline to all developers
- Update [release notes](https://github.com/vcmi/vcmi/blob/develop/ChangeLog.md)
- Update release date for Linux packaging. See [example](https://github.com/vcmi/vcmi/pull/1258)
- Update release date for Android packaging. See [example](https://github.com/vcmi/vcmi/pull/2090)

View File

@ -1,90 +0,0 @@
First of all, thanks for your support! If you report a bug we can fix
it. But keep in mind that reporting your bugs appropriately makes our
(developers') lifes easier. Here are a few guidelines that will help you
write good bug reports.
# Mantis bugtracker
The main place for managing and reporting bugs is [our
bugtracker](http://bugs.vcmi.eu/). When you are not logged in, you can
only browse already reported bugs. To be able to report bugs you need to
make an account there.
## What should be reported
Certainly the most important bugs we would like to know about are
crashes and game hangs. Game should not crash nor hang under any
conditions. But bugs are not restricted to those extreme cases.
Graphical glitches, significant differences in game mechanics from WoG
(in this case remember that not everything is implemented yet, we
usually don't call missing features as bugs; see [TODO
list](TODO_list "wikilink") for details about what is still to be done)
and serious performance drops should be reported too.
## What to focus on while testing
There are no specific guidelines on this. Every part of the game needs
some attention while testing. Usually newly added features should be
tested more. Sometimes bugs occur only when loading from savegame, so
you shouldn't always begin a new game.
## General guidelines
First of all, if you encounter a crash, don't re-run VCMI immediately to
see if you can reproduce it. Firstly take a screenshot or copy console
output (those mostly green letters on black background). Then back up
following files (if you won't be able to reproduce the issue you should
upload them with issue report):
- VCMI_Client_log.txt
- VCMI_Server_log.txt
- VCMI_Client.exe_crashinfo.dmp (if present)
- VCMI_Server.exe_crashinfo.dmp (if present)
By default, log files are written to:
- Windows: %USERPROFILE%\Documents\My Games\vcmi\\
- UNIX: ~/.cache/vcmi/
Now you should try to reproduce encountered issue. It's best when you
write how to reproduce the issue by starting a new game and taking some
steps (e.g. start Arrogance map as red player and attack monster Y with
hero X). If you have troubles with reproducing it this way but you can
do it from a savegame - that's good too. Finally, when you are not able
to reproduce the issue at all, just upload the files mentioned above. To
sum up, this is a list of what's the most desired for a developer:
1. (most desired) a map with list of steps needed to reproduce the bug
2. savegame with list of steps to reproduce the bug
3. (least desired) VCMI_Client_log.txt, VCMI_Server_log.txt, console
log and crashdump (you should use this option only when bug is not
reproducible but then remember to back logs up before trying to
reproduce it).
## How to set the log level to debug
If you want to set the log level to debug or trace to let developers
know what went wrong or to write a bug report, then you should first
open your `settings.json` with a text editor. The file is located at:
- Windows: VCMI installation location\config\schemas\\ (I.e.
C:\Program Files (x86)\VCMI (branch develop)\config\schemas\\
- UNIX: ~/.config/vcmi/
Add the "logging" : { ... } part to the file, that it may look like
this:
``` javascript
{
"logging" : {
"loggers" : [
{
"domain" : "global",
"level" : "debug"
}
]
}
}
```
You can substitute the value debug with trace to log traces as well.

View File

@ -0,0 +1,31 @@
First of all, thanks for your support! If you report a bug we can fix it. But keep in mind that reporting your bugs appropriately makes our (developers') lifes easier. Here are a few guidelines that will help you write good bug reports.
# Mantis bugtracker
The main place for managing and reporting bugs is [our bugtracker](http://bugs.vcmi.eu/). When you are not logged in, you can only browse already reported bugs. To be able to report bugs you need to make an account there.
## What should be reported
Certainly the most important bugs we would like to know about are crashes and game hangs. Game should not crash nor hang under any conditions. But bugs are not restricted to those extreme cases. Graphical glitches, significant differences in game mechanics from WoG (in this case remember that not everything is implemented yet, we usually don't call missing features as bugs; see [TODO list](TODO_list "wikilink") for details about what is still to be done) and serious performance drops should be reported too.
## What to focus on while testing
There are no specific guidelines on this. Every part of the game needs some attention while testing. Usually newly added features should be tested more. Sometimes bugs occur only when loading from savegame, so you shouldn't always begin a new game.
## General guidelines
First of all, if you encounter a crash, don't re-run VCMI immediately to see if you can reproduce it. Firstly take a screenshot or copy console output (those mostly green letters on black background). Then back up following files (if you won't be able to reproduce the issue you should upload them with issue report):
- VCMI_Client_log.txt
- VCMI_Server_log.txt
By default, log files are written to:
- Windows: %USERPROFILE%\Documents\My Games\vcmi\\
- UNIX: ~/.cache/vcmi/
Now you should try to reproduce encountered issue. It's best when you write how to reproduce the issue by starting a new game and taking some steps (e.g. start Arrogance map as red player and attack monster Y with hero X). If you have troubles with reproducing it this way but you can do it from a savegame - that's good too. Finally, when you are not able to reproduce the issue at all, just upload the files mentioned above. To sum up, this is a list of what's the most desired for a developer:
1. (most desired) a map with list of steps needed to reproduce the bug
2. savegame with list of steps to reproduce the bug
3. (least desired) VCMI_Client_log.txt, VCMI_Server_log.txt, console log and crashdump (you should use this option only when bug is not reproducible but then remember to back logs up before trying to reproduce it).

View File

@ -1,76 +0,0 @@
Some of game features have already been extended in comparison to Shadow
of Death:
- Support for 32-bit graphics with alpha channel
.def, .bmp, .png and .tga files are supported.
- Support for maps of any size (2 billion tiles in any direction),
including rectangular shapes
- No limit of number of map objects, such as dwellings and stat
boosters
- Hero experience capacity currently at 2^64, which equals 199 levels
with typical progression
- Heroes can have primary stats up to 2^16
- Unlimited backpack
- New flexible [bonus system](Bonus_system "wikilink")
- Support for Stack Experience
The list of implemented cheat codes and console commands is
[here](Cheat_codes "wikilink").
# List of bugs fixed in VCMI
These bugs were present in original Shadow of Death game, however the
team decided to fix them to bring back desired behaviour.
# List of game mechanics changes
Some of H3 mechanics can't be straight considered as bug, but default
VCMI behaviour is different:
- Dwellings. Remain creatures are accumulated instead of reset each
week. Can be disabled using DWELLINGS_ACCUMULATE_CREATURES.
- Pathfinding. Hero can't grab artifact while flying when all tiles
around it are guarded without triggering attack from guard. Original
behavior can be re-enabled using "originalMovementRules" pathfinder
option.
- Battles. Hero that won battle, but only have temporary summoned
creatures alive going to appear in tavern like if he retreated. Can
be disabled using WINNING_HERO_WITH_NO_TROOPS_RETREATS.
- Battles. Spells from artifacts like AOTD are autocasted on beginning
of the battle, not beginning of turn. Task on mantis:
[1](https://bugs.vcmi.eu/view.php?id=1347)
- Objects. Black market changes artifacts every month like town
artifact merchants do. Can be disabled using
BLACK_MARKET_MONTHLY_ARTIFACTS_CHANGE.
- Spells. Dimension Door spell doesn't allow to teleport to unexplored
tiles. Task on mantis to track this:
[2](https://bugs.vcmi.eu/view.php?id=2751).
# List of extended game functionality
- Quick army management in the garrison screen:
` [LShift] + LClick – splits a half units from the selected stack into`
` an empty slot.`
` [LCtrl] + LClick – splits a single unit from the selected stack into`
` an empty slot.`
` [LCtrl] + [LShift] + LClick – split single units from the selected`
` stack into all empty hero/garrison slots`
` [Alt] + LClick – merge all splitted single units into one stack`
` [Alt] + [LCtrl] + LClick - move all units of selected stack to the city's garrison or to the met hero`
` [Alt] + [LShift] + LClick - dismiss selected stack`
- Mouse click on castle icon in the town screen open quick recruitment
window, where we can purhase in fast way units.
# Manuals and guides
- \[<http://www.4shared.com/document/qLi-INYQ/Heroes_of_Might_and_Magic_III_.html>?
Official Heroes of Might & Magic III user manual\]
- \[<http://www.4shared.com/document/HbWI7YlH/Strategija.html>?
Strategija\] covers detailed machanics not mentioned in official
documents.
- \[<http://www.4shared.com/document/F_3NbdTI/New_WoG_Features.html>?
New WoG features\]

View File

@ -0,0 +1,47 @@
# List of features added in VCMI
Some of game features have already been extended in comparison to Shadow of Death:
- Support for 32-bit graphics with alpha channel. Supported formats are .def, .bmp, .png and .tga
- Support for maps of any size (2 billion tiles in any direction), including rectangular shapes
- No limit of number of map objects, such as dwellings and stat boosters
- Hero experience capacity currently at 2^64, which equals 199 levels with typical progression
- Heroes can have primary stats up to 2^16
- Unlimited backpack
- New flexible [bonus system](Bonus_system "wikilink")
- Support for Stack Experience
The list of implemented cheat codes and console commands is [here](Cheat_codes "wikilink").
# List of bugs fixed in VCMI
These bugs were present in original Shadow of Death game, however the team decided to fix them to bring back desired behaviour.
# List of game mechanics changes
Some of H3 mechanics can't be straight considered as bug, but default VCMI behaviour is different:
- Pathfinding. Hero can't grab artifact while flying when all tiles around it are guarded without triggering attack from guard.
- Battles. Hero that won battle, but only have temporary summoned creatures alive going to appear in tavern like if he retreated.
- Battles. Spells from artifacts like AOTD are autocasted on beginning of the battle, not beginning of turn.
- Spells. Dimension Door spell doesn't allow to teleport to unexplored tiles.
# List of extended game functionality
- Quick army management in the garrison screen:
`[LShift] + LClick – splits a half units from the selected stack into`
`an empty slot.`
`[LCtrl] + LClick – splits a single unit from the selected stack into`
`an empty slot.`
`[LCtrl] + [LShift] + LClick – split single units from the selected`
`stack into all empty hero/garrison slots`
`[Alt] + LClick – merge all splitted single units into one stack`
`[Alt] + [LCtrl] + LClick - move all units of selected stack to the city's garrison or to the met hero`
`[Alt] + [LShift] + LClick - dismiss selected stack`
- Mouse click on castle icon in the town screen open quick recruitment window, where we can purhase in fast way units.
# Manuals and guides
- https://heroes.thelazy.net//index.php/Main_Page Wiki that aims to be a complete reference to Heroes of Might and Magic III.

View File

@ -3,11 +3,11 @@
The purpose of VCMI project is to rewrite entire HoMM3: WoG engine from
scratch, giving it new and extended possibilities. We are hoping to
support mods and new towns already made by fans, but abandoned because
of game code limitations.\
of game code limitations.
VCMI is a fan-made open-source project in progress. We already allow
support for maps of any sizes, higher resolutions and extended engine
limits. However, although working, the game is not finished. There are
still many features and functionalities to add, both old and brand new.\
still many features and functionalities to add, both old and brand new.
Learn more about VCMI Project at
[Wiki](http://wiki.vcmi.eu/index.php?title=VCMI).\
Check [google
@ -45,121 +45,39 @@ VCMI. In this section you can learn about all of them.
## High resolutions
VCMI supports resolutions higher than original 800x600. Namely these
are:
VCMI supports resolutions higher than original 800x600.
Switching resolution may not only change visible area of map, but also alters some interface features such as [Stack Queue.](#Stack_Queue)
To change resolution or full screen mode use System Options menu when in game. Fullscreen mode can be toggled anytime using F4 hotkey.
- 1024x600
## Stack Experience
- 1024x768
In 0.85, new stack experience interface has been merged with regular creature window. Among old functionalities, it includes new useful info:
- 1280x960
- 1280x1024
- 1366x768
- 1440x900
- 1600x1050
- 1600x1200
- 1920x1080
Switching resolution may not only change visible area of map, but also
alters some interface features such as [Stack Queue.](#Stack_Queue)\
To change resolution or full screen mode use System Options menu when in
game. Changes in resolution will take place when you restart VCMI.\
Fullscreen mode can be toggled anytime using F4 hotkey. []{#Mods
label="Mods"}
## Game modification
Since 0.9, there is a possibility to edit gameplay settings with config
file. You may turn some options on/off or adjust certain values in
`config/defaultMods.json` file. This file is read at game launch and the
settings are stored in savegame file, so editing config won't break
existing games.\
Files placed in `Mods` subfolders will override all default files and
settings. []{#Stack_Experience label="Stack_Experience"}
## New creature info window
In 0.85, new stack experience interface has been merged with regular
creature window. Among old functionalities, it includes new useful info:
- Click experience icon to see detailed info about creature rank and
experience needed for next level. This window works only if stack
experience module is enabled (true by default).
- Stack Artifact. As yet creature artifacts are not handled, so this
place is unused. You can choose enabled artifact with arrow buttons.
There is also additional button below to pass currently selected
artifact back to hero.
- Abilities description contain information about actual values and
types of bonuses received by creature - be it default ability, stack
experience, artifact or other effect. These descriptions use custom
text files which have not been translated.
By default new window is used. In order to switch back to original
creature window, use system setting dialog or type `switchCreWin` in
console\
[]{#Commanders label="Commanders"}
- Click experience icon to see detailed info about creature rank and experience needed for next level. This window works only if stack experience module is enabled (true by default).
- Stack Artifact. As yet creature artifacts are not handled, so this place is unused. You can choose enabled artifact with arrow buttons. There is also additional button below to pass currently selected artifact back to hero.
- Abilities description contain information about actual values and types of bonuses received by creature - be it default ability, stack experience, artifact or other effect. These descriptions use custom text files which have not been translated.
## Commanders
VCMI offers native support for Commanders. By default, they resemble
original WoG behaviour with basic \"Commanders: script enabled.
[]{#Stack_Artifacts label="Stack_Artifacts"}
## Stack artifacts
The possibility to equip creatures with artifacts has been extended -
now a number of artifacts can be potentially equipped. By default, there
artifacts are not possible to use by hero itself. Drag them from
backpack onto Stack portrait to equip.\
Current list of Stack Artifacts available for testing:
- Warlord's banner
- Magic Wand
- Gold Tower Arrow
- Monster's Power
[]{#Stack_Queue label="Stack_Queue"}
VCMI offers native support for Commanders. By default, they resemble original WoG behaviour with basic "Commanders" script enabled.
## Stack Queue
Stack queue is a feature coming straight from HoMM5, which allows you to
see order of stacks on the battlefield, sorted from left to right. To
toggle in on/off, press 'Q' during the battle.\
There is smaller and bigger version of it, the second one is available
only in higher resolutions.
Stack queue is a feature coming straight from HoMM5, which allows you to see order of stacks on the battlefield, sorted from left to right. To toggle in on/off, press 'Q' during the battle. There is smaller and bigger version of it, the second one is available only in higher resolutions.
## Pathfinder
VCMI introduces improved pathfinder, which may find the way on adventure
map using ships and subterranean gates. Simply click your destination on
another island or level and the proposed path will be displayed.
[]{#Quest_Log label="Quest_Log"}
VCMI introduces improved pathfinder, which may find the way on adventure map using ships and subterranean gates. Simply click your destination on another island or level and the proposed path will be displayed.
## Quest log
In 0.9 new quest log was introduced. It can display info about Seer Hut
or Quest Guard mission, but also handle Borderguard and Border Gate
missions. When you choose a quest from the list on the left, it's
description is shown. Additionally, on inner minimap you can see small
icons indicating locations of quest object. Clicking these objects
immediately centers adventure map on desired location.
In 0.9 new quest log was introduced. It can display info about Seer Hut or Quest Guard mission, but also handle Borderguard and Border Gate missions. When you choose a quest from the list on the left, it's description is shown. Additionally, on inner minimap you can see small icons indicating locations of quest object. Clicking these objects immediately centers adventure map on desired location.
## Attack range
In combat, some creatures, such as Dragon or Cerberi, may attack enemies
on multiple hexes. All such attacked stacks will be highlighted if the
attack cursor is hovered over correct destination tile.\
attack cursor is hovered over correct destination tile.
Whenever battle stack is hovered, its movement range is highlighted in
darker shade. This can help when you try to avoid attacks of melee
units.
@ -169,7 +87,7 @@ units.
When hovering cursor over neutral stack on adventure map, you may notice
additional info about relative threat this stack poses to selected hero.
This feature has been introduced in Heroes of Might and Magic V and is
planned to be extended to all kinds of armed objects.\
planned to be extended to all kinds of armed objects.
Custom text file is in use, so using localized version of data files
will not change text in your game. It is not a bug, but lack of new
translated files.
@ -309,13 +227,6 @@ Also, typing `onlyai` in pregame triggers that mode.
- It is possible to start the campaign, although heroes will not carry
over to subsequent scenarios.
## Android port
Android port, despite some rumours, is not complete and may crash at
random. The port is work of a Peyla - volunteer outside of VCMI team,
who abandoned it. Any Android support is beyond our scope. []{#Feedback
label="Feedback"}
# Feedback
Our project is open and its sources are available for everyone to browse
@ -342,14 +253,23 @@ Please put down all circumstances in which a bug occurred and what did
you do before, especially if it happens rarely or is not clearly
visible. The better report, the better chance to track the bug quickly.
### Linux notes
On \*nix-like systems logs can be found in $\sim$`/.vcmi` directory.\
When reporting compilation issues please specify name and version of
your distribution.
# FAQ
### What does "VCMI" stand for?
VCMI is an acronym of the [Quenya](https://en.wikipedia.org/wiki/Quenya)
phrase "Vinyar Callor Meletya Ingole", meaning "New Heroes of Might and
Magic". ([Source](https://forum.vcmi.eu/t/what-vcmi-stands-for/297/4))
## How to turn off creature queue panel in battles?
Hotkey to switch this panel is "Q"
### Is it possible to add town X to vcmi?
This depends on town authors or anyone else willing to port it to vcmi.
Aim of VCMI is to provide *support* for such features.
## When will the final version be released?
When it is finished, which is another year at least. Exact date is

View File

@ -7,8 +7,8 @@
### Single player
VCMI team does not collect any data produced by VCMI app. All game files, logs, saves, mods are stored in app's internal directory and will be removed upon app uninstallation. It should be possible so to backup this data by standard ways provided by your device.
VCMI team does not collect any data produced by VCMI app. All game files, logs, saves, mods are stored in app's internal directory and will be removed upon app uninstallation. It should be possible to backup this data by standard ways provided by your device.
### Multiplayer
If you decide to play with other users via Internet there are two roles. The host is the one who provides the game server. The clients are the other players who connect to the host. The host provides to the client its IP address in order to establish connections. The clients and the host during the gameplay exchange their usernames, messages and other game activity. All this data is collected and stored by the host. VCMI team does not collect and store any multiplayer data as well.
If you decide to play with other users via Internet there are two roles. The host is the one who provides the game server. The clients are the other players who connect to the host. The host provides to the client its IP address in order to establish connections. The clients and the host during the gameplay exchange their usernames, messages and other game activity. All this data is collected and stored by the host. VCMI team does not collect and store any multiplayer data.

View File

@ -1,5 +0,0 @@
Welcome to the vcmi wiki!
Currently, we are still in process of setting up Github wiki.
For our more complete wiki go here: https://wiki.vcmi.eu/Main_Page