Code Monkey home page Code Monkey logo

holocore's Introduction

Banner

License JDK Discord

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.

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

holocore's People

Contributors

obique avatar madsboddum avatar undercova avatar lewismorgan avatar josh-larson avatar daddyap avatar skyler3d avatar zperkinson avatar frechetta avatar iosnowore-alt-account avatar wallaceg09 avatar tacef avatar geneuncg avatar tfnerd avatar emiliemarott avatar mesagoppinmypants avatar cdmpse avatar jsownz avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.