Skip to content

Commit

Permalink
doc: update README
Browse files Browse the repository at this point in the history
  • Loading branch information
SpaiR committed Nov 25, 2023
1 parent b862564 commit ac27a37
Showing 1 changed file with 42 additions and 46 deletions.
88 changes: 42 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@

StrongDMM is an alternative yet robust map editor for BYOND.

It was built with the idea to create a more flexible, fast and extensible tool, than BYOND built-in map editor. The
editor has same features DM has, but provides much more and improves general map editing experience.
It was built with the idea of creating a more flexible, fast, and extensible tool than the BYOND built-in map editor.
The editor has the same features as DM, but provides much more and improves the general map editing experience.

## Features
The editor provides a bunch of new features:

The editor offers a range of new features:

* TGM support with built-in map merger (no need to use external scripts and pre-commit hooks);
* Almost instant environment open;
Expand All @@ -33,7 +34,7 @@ The editor provides a bunch of new features:
* Robust "Search";
* Improved shortcuts;
* Robust variables editor and variables preview;
* Optional variables sanitizing;
* Optional sanitization of variables;
* Open with CLI.

...and a lot more...
Expand All @@ -45,7 +46,7 @@ The editor provides a bunch of new features:
## How to Use

StrongDMM is a single executable, which doesn't require any installation.
You can download it by any of the provided link and start it right away.
You can download it from any of the provided links and start it right away.

**Download Links:**

Expand Down Expand Up @@ -74,92 +75,87 @@ When providing `.dmm` files without `.dme`, a proper environment file will be fo
## Support
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/P5P5BF17Q)

StrongDMM developed without any monetization in mind. The main motivation is an enthusiasm to do a cool stuff.\
Your support can show your gratefulness and will motivate the project further development.
StrongDMM was developed without any monetization in mind. The main motivation is the enthusiasm for creating cool stuff.\
Your support can demonstrate your appreciation and will motivate further development of the project.

Also, if you want something specific to be implemented in the editor, it's possible to focus on your needs.\
Feel free to reach me out with my public contacts to discuss details: [E-Mail](mailto:despsolver@gmail.com)
Additionally, if you have specific features in mind that you'd like implemented in the editor, we can focus on your needs.\
Feel free to reach out to me through my public contact to discuss details: [E-Mail](mailto:despsolver@gmail.com)

## FAQ

**Q.** My antivirus software detects something suspicious in the editor binaries. Is it ok?\
**A.
** Yes. It's a false positive reaction to the way how Golang (development language) creates binaries. Read more: https://go.dev/doc/faq#virus
**A.** Yes, it's a false positive reaction to the way Golang, the development language, creates binaries. Read more: [Golang FAQ](https://go.dev/doc/faq#virus)

**Q.** How do I verify my executables?\
**A.** With `sha256` hashes available on the [release](https://github.com/SpaiR/StrongDMM/releases/latest) page.
**A.** Verify them using `sha256` hashes, available on the [releases page](https://github.com/SpaiR/StrongDMM/releases/latest).

**Q.** But how can I trust executables on the release page?\
**A.
** Executables are built with the [CI](https://github.com/SpaiR/StrongDMM/actions/workflows/ci.yml) pipeline. You can verify the process by yourself or build executables manually from the source code.
**A.** Executables are built with the [CI pipeline](https://github.com/SpaiR/StrongDMM/actions/workflows/ci.yml). You can verify the process yourself or build the executables manually from the source code.

**Q.** How to uninstall the editor?\
**A.
** StrongDMM doesn't have any installation. Thus, no specific "uninstall" required as well. Delete the executable and, if you want to remove editor data, its directory on OS.
**A.** StrongDMM doesn't require installation, so no specific uninstallation process is needed. Simply delete the executable and, if desired, its directory on your OS to remove editor data.

**Q.** Where do I find editor data?\
**A.** For Windows: `C:\Users\USER\AppData\Roaming\StrongDMM`, for Linux/macOS: `~/.strongdmm`.

**Q.** How to move the map?\
**A.** ~~Use zoom-in/zoom-out.~~ Drag the pan with the **middle mouse button**. Or by holding a **space key**.
Alternatively you can use **arrow keys**.
**A.** Drag the map using the **middle mouse button**, or by holding the **space key**. Alternatively, you can use the **arrow keys**.

**Q.** How to zoom?\
**A.** Scroll your mouse or use **+/- keys** on the keyboard.
**A.** Zoom using your mouse scroll wheel or the **+/- keys** on the keyboard.

**Q.** How to change a save format?\
**A.** In the menu bar: `File->Preferences...` and change to the format you need.
**Q.** How to change the save format?\
**A.** Go to `File -> Preferences...` in the menu bar and select the desired format.

**Q.** The editor crushed. Where I can find logs?\
**A.** Menu button: `Help->Open Logs Folder`.
**Q.** The editor crashed. Where can I find logs?\
**A.** Access logs via the menu: `Help -> Open Logs Folder`.

## How to Build

There are two steps to build the application:
Building the application involves two steps:

1. Build **sdmmparser** library;
1. Build the **sdmmparser** library;
2. Build the editor.

**sdmmparser** is a rust library based on [SpacemanDMM](https://github.com/SpaceManiac/SpacemanDMM) parser. It is
compiled to a `staticlib`. You can find it by path: `internal/third_party/sdmmparser/src`.
**sdmmparser** is a Rust library based on the [SpacemanDMM](https://github.com/SpaceManiac/SpacemanDMM) parser and is compiled to a `staticlib`.
It can be found at `internal/third_party/sdmmparser/src`.

### Pre-requests
### Prerequisites

* [Go](https://go.dev/): version **1.20** or higher
* [Rust](https://www.rust-lang.org/): version **1.69.0**
* (Optional) [Task](https://taskfile.dev): to run build scripts
* [Go](https://go.dev/): version **1.20** or higher.
* [Rust](https://www.rust-lang.org/): version **1.69.0**.
* (Optional) [Task](https://taskfile.dev): for running build scripts.

#### For Windows

Ensure your Rust configured to use `stable-x86_64-pc-windows-gnu` toolchain. That requirement is based on the thing,
that Go can't use MSVC to do builds. Thus, it won't link with libraries built using anything but GNU.
Ensure your Rust is configured to use the `stable-x86_64-pc-windows-gnu` toolchain, as Go can't use MSVC for builds and requires GNU.
The easiest way to get the GNU compiler is to install MinGW through chocolatey, msys2, etc.

The easiest way to get GNU compiler is to install MinGW. This could be done with many ways: chocolatey package, msys2
etc.
After installing MinGW, ensure that the path to its bin folder is added to the PATH environment variable.

#### For Linux

You would probably need to add dependencies to build GUI apps: `sudo apt install xorg-dev libgtk-3-dev`.
You may need to install dependencies for building GUI apps: `sudo apt install xorg-dev libgtk-3-dev`.

### Steps

#### Using Task

Task is a cross-platform alternative for Make. Its scripts are described in the `Taskfile.yml`.
Task is a cross-platform Make alternative with scripts in `Taskfile.yml`.

With installed Task you can basically do:
With Task installed:

* `task build`: to build sdmmparser + the editor (result will be in the `dst` dir)
* `task run`: to run the editor (will do a compilation under the hood)
* `task build`: Builds sdmmparser and the editor (output in `dst` directory).
* `task run`: Runs the editor (compiles first if needed).

#### Manually

1. The important part is to build **sdmmparser** library.\
Go to the `internal/third_party/sdmmparser/src` directory and run the command: `cargo build --release`.\
If you don't modify **sdmmparser** you can do that step only once.
2. In the root you can do:
* `go build .`: to build the editor (executable will be in the root with the name `sdmm.exe`/`sdmm`)
* `go run .`: to run the editor
1. First, build the **sdmmparser** library.\
Navigate to `internal/third_party/sdmmparser/src` and run `cargo build --release`.\
This step is needed only once unless **sdmmparser** is modified.
2. In the root directory:
* `go build .`: Builds the editor (executable named `sdmm.exe`/`sdmm` in the root).
* `go run .`: Runs the editor.

## Credits

Expand Down

0 comments on commit ac27a37

Please sign in to comment.