mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-01-03 13:30:34 +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)
|
||||
|
||||
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
|
||||
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
|
||||
@ -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
|
||||
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
|
||||
end up supporting that for the desktop version in the future (specifically for
|
||||
some of the multiplayer lobby stuff), but it's not necessary for the core
|
||||
functionality. The mobile version currently uses 360px height to make selecting
|
||||
UI elements easier, however since much of the UI panels are 480px, in-game is
|
||||
locked at 480px, but I will change this in the future or at least provide
|
||||
scaling on a per-component basis (text). This does run on Android, and I have
|
||||
been using a Galaxy Note 5 as the min spec when testing, but older phones may
|
||||
work as well, especially after optimizations have been made. I can already play
|
||||
Diablo II on PC, my goal is to be able to sit back and play it casually with my
|
||||
friends while also supporting cross-platform play. This game supports local
|
||||
play that can then be taken online (similar to Open Battle.net), with a more
|
||||
secure option being far beyond that.
|
||||
end up supporting for the desktop version in the future (specifically for some
|
||||
multiplayer lobby stuff), but it's not necessary for the core functionality. The
|
||||
mobile version currently uses 360px height to make selecting UI elements easier,
|
||||
however since much of the UI panels are 480px, in-game is locked at 480px, but I
|
||||
will change this in the future or at least provide scaling on a per-component
|
||||
basis (text). This does run on Android, and I have been using a Galaxy Note 5 as
|
||||
the min spec when testing, but older phones may work as well, especially after
|
||||
optimizations have been made. I can already play Diablo II on PC, my goal is to
|
||||
be able to sit back and play it casually with my friends while also supporting
|
||||
cross-platform play. This game supports local play that can then be taken online
|
||||
(similar to Open Battle.net), with a more secure option being far beyond that.
|
||||
|
||||
*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
|
||||
@ -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)
|
||||
|
||||
# Features
|
||||
- Written using Java + LibGDX + OpenGL + Flatbuffers
|
||||
- Written using Java + LibGDX + OpenGL + Flatbuffers + Netty
|
||||
- Runs on PC, Android and eventually more (IOS, Linux, etc.)
|
||||
- Cross-platform multiplayer
|
||||
- Dedicated servers, TCP/IP (listen servers) connections, and single player
|
||||
- Full console, including CVAR support and key bindings
|
||||
- Dedicated servers, TCP/IP (listen servers), and single player
|
||||
- Full console, including CVAR support and custom key bindings
|
||||
- Controller support
|
||||
- Platform-specific features (Android touch, PC mouse, etc)
|
||||
- Scalable UI (Partial for now)
|
||||
- Scalable UI
|
||||
|
||||
# Screenshots
|
||||
![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)
|
||||
which explains which files to modify and references to delete.
|
||||
|
||||
#### Windows
|
||||
```$etc
|
||||
Two environment variables can be used to automatically set the D2 installation
|
||||
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
|
||||
cd riiablo
|
||||
gradlew desktop:dist
|
||||
java -jar desktop/build/libs/desktop-1.0.jar -home "C:\diablo"
|
||||
gradlew desktop:run
|
||||
```
|
||||
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
|
||||
I have not tested support on any Linux distros yet -- but it should work. Since
|
||||
this project is developed using the MPQ format from the Windows installation,
|
||||
it's likely that only the Windows MPQs will work. If there are any additional
|
||||
steps required, let me know and I can add them until I get a chance to test
|
||||
this myself.
|
||||
This project was developed using the native Win32 MPQ files, so you will need
|
||||
to copy them from your Windows installation (whether that be Wine or just a
|
||||
copy of the files). Detection of the MPQs may be spotty and require manually
|
||||
specifying them via command-line arguments or environment variables (see above).
|
||||
|
||||
#### Android
|
||||
Steps will be provided when the project is further along and the configuration
|
||||
process can be cleaned up a bit. There are Android-specific implementations of
|
||||
some core gameplay systems, but everything is validated to work on Android.
|
||||
Debug APKs can be created with `gradlew android:assembleDebug`, however
|
||||
configuring the app on a device is a bit of a pain at this time unless you can
|
||||
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
|
||||
- [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),
|
||||
however the program args must be changed to point to _your_ Diablo 2 directory.
|
||||
- Default run configurations are provided within [.idea/runConfigurations](https://github.com/collinsmith/riiablo/tree/master/.idea/runConfigurations).
|
||||
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
|
||||
`F12` can be used in-game to disable the debug UI.
|
||||
a wide range of support `--windowed` arg can be used to start in windowed mode,
|
||||
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
|
||||
Still a work in progress, but this allows you to look at the game's assets and
|
||||
is used to test my MPQ library implementation. Currently this does not allow
|
||||
for viewing all files that the game can load, but those should hopefully come
|
||||
in the future. This should be a replacement for DR Test in the future, at least
|
||||
in a general sense, since the UI I made is much more helpful when writing the
|
||||
game code.
|
||||
Allows you to look at the game's assets and debug issues with specific files.
|
||||
Not all file types are supported at this time, but those should hopefully come
|
||||
in the future. This is a tool used in development and is not a replacement for
|
||||
tools like DR Test, but does provide the same functionality.
|
||||
<details>
|
||||
<summary>Screenshot</summary>
|
||||
<img src="https://raw.githubusercontent.com/collinsmith/diablo/master/screenshots/Clipboard-3.png" alt="MPQ Viewer">
|
||||
</details>
|
||||
|
||||
# Map Builder
|
||||
Used to test the map building algorithm/renderer. This is very basic at the
|
||||
moment.
|
||||
# Map Viewer
|
||||
Tests the map building algorithm/renderer. This is very basic at the moment.
|
||||
<details>
|
||||
<summary>Screenshot</summary>
|
||||
<img src="https://raw.githubusercontent.com/collinsmith/diablo/master/screenshots/Clipboard-4.png" alt="Map Builder">
|
||||
|
Loading…
Reference in New Issue
Block a user