mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-01-07 05:50:58 +07:00
Updated readme with recent gradle changes and (hopefully) better descriptions
This commit is contained in:
parent
bdeeed7e82
commit
794cf151b9
105
README.md
105
README.md
@ -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">
|
||||||
|
Loading…
Reference in New Issue
Block a user