mirror of
https://github.com/ProjectSWGCore/Holocore.git
synced 2026-01-15 23:05:45 -05:00
93 lines
3.0 KiB
Markdown
93 lines
3.0 KiB
Markdown

|
|
|
|

|
|

|
|

|
|
|
|
# Introduction #
|
|
|
|
This is *the* Star Wars Galaxies server emulator for the Java Virtual Machine. The vision for this software is:
|
|
|
|
* Providing an experience that's reasonably close to the original game servers
|
|
* Easily expandable with new functionality
|
|
* Good amount of configuration options for in-game features
|
|
* *Highly* efficient use of system resources and solid performance
|
|
|
|
The way we perform code reviews should reflect these points.
|
|
|
|
You can find detailed information on the [wiki](https://bitbucket.org/projectswg/holocore/wiki/Home).
|
|
|
|
# Setting up a development environment #
|
|
|
|
Ready to help bring back an awesome MMORPG with your programming skills?
|
|
|
|
## Java Development Kit ##
|
|
|
|
In order to compile the source code, you need a JDK installation on your machine. The `JAVA_HOME` environment variable
|
|
should point to the directory of the JDK! It should be version 13 as minimum. You can see your installed Java version
|
|
by running `java -version`.
|
|
|
|
## Submodules ##
|
|
The project uses submodules. Get them by running: git submodule update --init
|
|
|
|
## Clientdata ##
|
|
|
|
This application reads a lot of information from the original game files. An installation of the game is therefore
|
|
required. Create a folder called `clientdata` in the root project directory. Extract the following folders of every
|
|
sku#_client.toc file to the `clientdata` folder:
|
|
|
|
* abstract
|
|
* appearance
|
|
* creation
|
|
* customization
|
|
* datatables
|
|
* footprint
|
|
* interiorlayout
|
|
* misc
|
|
* object
|
|
* quest
|
|
* snapshot
|
|
* string
|
|
* terrain
|
|
|
|
Note that every TOC file won't necessarily have all of these folders! If they're present, extract them.
|
|
A tool such as TRE Explorer is capable of opening the files and extracting their contents.
|
|
|
|
You should end up with a structure that looks something like this:
|
|
```
|
|
holocore/
|
|
clientdata/
|
|
abstract/
|
|
appearance/
|
|
creation/
|
|
customization/
|
|
datatables/
|
|
footprint/
|
|
...
|
|
gradle/
|
|
res/
|
|
serverdata/
|
|
src/
|
|
.gitignore
|
|
.gitmodules
|
|
LICENSE.txt
|
|
...
|
|
```
|
|
|
|
## MongoDB ##
|
|
User information is read from a MongoDB database that can be run on any machine on your network. Default is the machine that Holocore is running on.
|
|
|
|
1. Create database: `use nge`
|
|
2. Create a user for Holocore: `db.createUser({user: "holocore", pwd: "pass", roles: []})`
|
|
3. Create your game user: `db.users.insert({username: "user", password: "pass", accessLevel: "dev", banned: false, characters: []})`
|
|
|
|
Enabling the Character Builder Terminals:
|
|
1. Switch to the nge database: `use nge`
|
|
2. Enable the character builder: `db.config.insertOne({ "package": "support.data.dev", "characterBuilder": true })`
|
|
|
|
## Running Holocore ##
|
|
Compile and run Holocores main code using Gradle: `./gradlew run`
|
|
|
|
## Running automated tests ##
|
|
Compile and run Holocores unit tests using Gradle: `./gradlew test --info`
|