Updated readme with recent gradle changes and (hopefully) better descriptions

This commit is contained in:
Collin Smith 2020-11-25 01:27:56 -08:00
parent bdeeed7e82
commit 794cf151b9

105
README.md
View File

@ -3,7 +3,7 @@
[Join us on Discord!](https://discord.gg/qRbWYNM) [Join us on Discord!](https://discord.gg/qRbWYNM)
This is my attempt at rebuilding Diablo II from scratch. There is still a long This is my attempt at rebuilding Diablo II from scratch. There is still a long
ways to go, but a lot of the core is there. The game itself uses 100% original way to go, but a lot of the core is there. The game itself uses 100% original
Diablo II assets which are not (and will never be) provided, i.e., you should Diablo II assets which are not (and will never be) provided, i.e., you should
already own a copy of the game to play this. I am going to do my best to remain already own a copy of the game to play this. I am going to do my best to remain
faithful to the original game, however I am planning on changing and adding faithful to the original game, however I am planning on changing and adding
@ -15,18 +15,17 @@ Unlike the original game, this version supports just about any reasonable
aspect ratio (4:3, 16:9, 18:9, 21:9), however by design I'm locking the game to aspect ratio (4:3, 16:9, 18:9, 21:9), however by design I'm locking the game to
480px in height because the original game assets are all geared for that (i.e., 480px in height because the original game assets are all geared for that (i.e.,
the width is dynamic). The expansion did introduce 800x600 support, and I may the width is dynamic). The expansion did introduce 800x600 support, and I may
end up supporting that for the desktop version in the future (specifically for end up supporting for the desktop version in the future (specifically for some
some of the multiplayer lobby stuff), but it's not necessary for the core multiplayer lobby stuff), but it's not necessary for the core functionality. The
functionality. The mobile version currently uses 360px height to make selecting mobile version currently uses 360px height to make selecting UI elements easier,
UI elements easier, however since much of the UI panels are 480px, in-game is however since much of the UI panels are 480px, in-game is locked at 480px, but I
locked at 480px, but I will change this in the future or at least provide will change this in the future or at least provide scaling on a per-component
scaling on a per-component basis (text). This does run on Android, and I have basis (text). This does run on Android, and I have been using a Galaxy Note 5 as
been using a Galaxy Note 5 as the min spec when testing, but older phones may the min spec when testing, but older phones may work as well, especially after
work as well, especially after optimizations have been made. I can already play optimizations have been made. I can already play Diablo II on PC, my goal is to
Diablo II on PC, my goal is to be able to sit back and play it casually with my be able to sit back and play it casually with my friends while also supporting
friends while also supporting cross-platform play. This game supports local cross-platform play. This game supports local play that can then be taken online
play that can then be taken online (similar to Open Battle.net), with a more (similar to Open Battle.net), with a more secure option being far beyond that.
secure option being far beyond that.
*NOTE: This is not playable yet, but the game runs and you can load save files, *NOTE: This is not playable yet, but the game runs and you can load save files,
walk around a bit and look at your characters.* Game saves are not modified walk around a bit and look at your characters.* Game saves are not modified
@ -38,14 +37,14 @@ compatible with playing with users using the original game client.
[![SP Test](https://media.giphy.com/media/8PoUfw52rtlACeWMbB/giphy.gif)](https://www.youtube.com/watch?v=oKYNsIPr0tY) [![SP Test](https://media.giphy.com/media/8PoUfw52rtlACeWMbB/giphy.gif)](https://www.youtube.com/watch?v=oKYNsIPr0tY)
# Features # Features
- Written using Java + LibGDX + OpenGL + Flatbuffers - Written using Java + LibGDX + OpenGL + Flatbuffers + Netty
- Runs on PC, Android and eventually more (IOS, Linux, etc.) - Runs on PC, Android and eventually more (IOS, Linux, etc.)
- Cross-platform multiplayer - Cross-platform multiplayer
- Dedicated servers, TCP/IP (listen servers) connections, and single player - Dedicated servers, TCP/IP (listen servers), and single player
- Full console, including CVAR support and key bindings - Full console, including CVAR support and custom key bindings
- Controller support - Controller support
- Platform-specific features (Android touch, PC mouse, etc) - Platform-specific features (Android touch, PC mouse, etc)
- Scalable UI (Partial for now) - Scalable UI
# Screenshots # Screenshots
![In-Game](https://raw.githubusercontent.com/collinsmith/diablo/master/screenshots/Clipboard-1.png) ![In-Game](https://raw.githubusercontent.com/collinsmith/diablo/master/screenshots/Clipboard-1.png)
@ -60,50 +59,70 @@ the desktop module only), however you can circumvent this by following
[this post](https://github.com/collinsmith/riiablo/issues/6#issuecomment-465661949) [this post](https://github.com/collinsmith/riiablo/issues/6#issuecomment-465661949)
which explains which files to modify and references to delete. which explains which files to modify and references to delete.
#### Windows Two environment variables can be used to automatically set the D2 installation
```$etc and save directories if they are not automatically detected, and you do not want
to use command-line arguments every time you launch the game.
```bash
D2_HOME=/Diablo2
D2_SAVE=/Diablo2/Save
```
Otherwise, using the `--help` command-line argument will show a list of all
available options -- including manually specifying your D2 installation.
#### Building
```bash
git clone https://github.com/collinsmith/riiablo.git git clone https://github.com/collinsmith/riiablo.git
cd riiablo cd riiablo
gradlew desktop:dist gradlew desktop:run
java -jar desktop/build/libs/desktop-1.0.jar -home "C:\diablo"
``` ```
Sometimes it may be necessary to also run `gradlew --refresh-dependencies`
#### Windows
Typical D2 installations should be automatically detected and configured
(including existing saved games). If a D2 installation cannot be detected (or
you would like to do something like change which saved games to use), see
the above instructions on using command-line arguments.
#### Linux / MacOS #### Linux / MacOS
I have not tested support on any Linux distros yet -- but it should work. Since This project was developed using the native Win32 MPQ files, so you will need
this project is developed using the MPQ format from the Windows installation, to copy them from your Windows installation (whether that be Wine or just a
it's likely that only the Windows MPQs will work. If there are any additional copy of the files). Detection of the MPQs may be spotty and require manually
steps required, let me know and I can add them until I get a chance to test specifying them via command-line arguments or environment variables (see above).
this myself.
#### Android #### Android
Steps will be provided when the project is further along and the configuration Debug APKs can be created with `gradlew android:assembleDebug`, however
process can be cleaned up a bit. There are Android-specific implementations of configuring the app on a device is a bit of a pain at this time unless you can
some core gameplay systems, but everything is validated to work on Android. manually copy the resources from your Win32 installation onto your device in the
app data directory. This will require having `logcat` running so that you can
see any errors it spits out about where it's looking for the files. This process
will be made easier in the future.
#### IntelliJ #### IntelliJ
- [Importing into Intellij/Android Studio](https://libgdx.badlogicgames.com/documentation/gettingstarted/Importing%20into%20IDE.html#intellij) - [Importing into Intellij/Android Studio](https://libgdx.badlogicgames.com/documentation/gettingstarted/Importing%20into%20IDE.html#intellij)
- Default run configurations are included within [.idea/runConfigurations](https://github.com/collinsmith/riiablo/tree/master/.idea/runConfigurations), - Default run configurations are provided within [.idea/runConfigurations](https://github.com/collinsmith/riiablo/tree/master/.idea/runConfigurations).
however the program args must be changed to point to _your_ Diablo 2 directory.
The default resolution is 854x480, other configurations are provided to ensure The default resolution is 854x480, other configurations are provided to ensure
a wide range of support `-w` arg can be used to start in windowed mode, while a wide range of support `--windowed` arg can be used to start in windowed mode,
`F12` can be used in-game to disable the debug UI. while `F12` can be used in-game to disable the debug UI.
- Environment variables `D2_HOME` and `D2_SAVE` can be used if you are a pluggy
user.
# Tools
Aside from the main tools below, other tools are contained within `:tools`. To
view all available tools, use `gradlew :tools:projects -q`. `--help` is your
friend.
# MPQ Viewer # MPQ Viewer
Still a work in progress, but this allows you to look at the game's assets and Allows you to look at the game's assets and debug issues with specific files.
is used to test my MPQ library implementation. Currently this does not allow Not all file types are supported at this time, but those should hopefully come
for viewing all files that the game can load, but those should hopefully come in the future. This is a tool used in development and is not a replacement for
in the future. This should be a replacement for DR Test in the future, at least tools like DR Test, but does provide the same functionality.
in a general sense, since the UI I made is much more helpful when writing the
game code.
<details> <details>
<summary>Screenshot</summary> <summary>Screenshot</summary>
<img src="https://raw.githubusercontent.com/collinsmith/diablo/master/screenshots/Clipboard-3.png" alt="MPQ Viewer"> <img src="https://raw.githubusercontent.com/collinsmith/diablo/master/screenshots/Clipboard-3.png" alt="MPQ Viewer">
</details> </details>
# Map Builder # Map Viewer
Used to test the map building algorithm/renderer. This is very basic at the Tests the map building algorithm/renderer. This is very basic at the moment.
moment.
<details> <details>
<summary>Screenshot</summary> <summary>Screenshot</summary>
<img src="https://raw.githubusercontent.com/collinsmith/diablo/master/screenshots/Clipboard-4.png" alt="Map Builder"> <img src="https://raw.githubusercontent.com/collinsmith/diablo/master/screenshots/Clipboard-4.png" alt="Map Builder">