tuomount / Open-Realms-of-Stars

4X Strategy game
GNU General Public License v2.0
134 stars 32 forks source link
4x-game 4x-strategy-game combat galaxy game gamedev hacktoberfest java planet space space-game star strategy strategy-game turn-based

Open Realm of Stars

Open Realm of Stars is an open source 4X strategy game. Developed using Java.

Explore the galaxy

Move your fleet in a randomly generated galaxy. Encounter other species, and find new planets to colonize. Explore mysterious space anomalies.

Manage your own planets

Manage your planets gain access to better buildings and ships. Population management is key to acquiring more culture, research, metal and production.

Have diplomacy with other space faring races

Make friends and enemies while traveling to outer realms. Form trade alliances, and defensive pacts to establish technology trade with other races. Make good diplomatic relations all other realms and win voting for ruler of the galaxy.

Deep space combat

Fight enemies with customizable ship designs. Ship components have their own hit points and energy requirements to use them. Components will be rendered useless if hitpoints are depleted or energy requirements are not met. This makes space battles dynamic. A lucky shot by allied ship to an enemies fusion reactor will make them immobile on the battlefield. Fleets with advanced technologies have significant advantages, however luck or number of ships can sway the battle in your favor.

Conquering the planets

Conquer enemy planets. Drop bombs to clear out enemy troops, then deploy your own ground troops to seize control. Regular space weapons can be used for causing suppression to defending troops.

Leaders

Each realm can have unique characters called leaders. These leaders can act as governors, fleet commanders and rulers. Each of the leader will gain perks which give bonus(negative or positive) on task they are performing. Leaders have limited life span and they will die for old age, but new ones can be replace the old one. Some rulers can have heirs which will eventually replace parents. These leaders can have also internal power struggles in certain government types.

The history

After a game players are given a quick overview of major galactic events and how other realms did during the game. There will be also history events of all major events that leaders did during their time in the game.

The Story

When you start the game, background story will be generated for your realm. At the end of the game you can see your realm's full story. There is also possible to see other realms' stories.

See more screenshots

Features

Warning about saved games working on newer version

Since Open Realm of Stars is still under development I cannot guarantee that old saves will work for new versions. Backwards compatibility will be broken when adding new features.

Compiling the Project

Open Realm of Stars can be compiled with Maven. Install maven and then run command: mvn install

In the target directory a zip file contains all dependecies to run the Game. Unzip, navigate to the newly extracted path and run Open-Realm-of-Stars-?.?.?-SNAPSHOT.jar with following command java -jar Open-Realm-of-Stars-?.?.?-SNAPSHOT.jar. Note that the question marks need to correspond to the correct build version.

Release builds are done by adding -Dchangelist= (blank intentional) option when running Maven. Those builds will not have the -SNAPSHOT suffix. If you wish to encode Git commit SHA of current commit to the build name, add option -Dsha1="-$(git rev-parse --short HEAD)".

Warning about using non stable version

Compiling non-stable releases is not recommended. Non-stable versions of Open Realm of Stars may contain game breaking bugs that make the game unplayable. The game is constantly being developed for and new features may introduce bugs.

If you encounter any critical bugs create a new issue for it. Use the stable release version, or wait for a new fix. If you're interested in contributing to the project you are welcome to fix it. Contribution guidelines are outlined below.

Running the game

In order to run Open Realm of Stars Java(Java 11 or newer) is required to be installed. There are many different OpenJDK which are suitable for this, here is link for one: Adoptium

Also if you are using linux, your distro's OpenJDK should work just fine. Instruction for installing OpenJDK in Ubuntu is following: sudo apt install openjdk-11-jre

Open Realm of Stars can be run from the Jar file or running compiled class. On Windows double clicking the Jar file should be enough if Java has been installed correctly. It can be also run from terminal or command line with following command: java -jar Open-Realm-of-Stars-0.23.0Beta.jar

System requirements

Minimum requirements:

Recommended system:

How to contribute

Before contributing to the project you should play the game first. Understand the underlying game mechanics. The simplest way to contribute to the project is to test out the game and if you encounter any bug raise an issue on the Git page. Please check to see if your issue has been posted before making new issue.

If you want to contribute code, fork the project and make the change. Be sure to add any unit tests where needed. Run the code through JUnits and checkstyle before making a pull request. This can be done using mvn verify.

Guide lines for making pull requests

I will try to take a look at pull requests as fast as I can. If you are adding any new assets take a look at the next section for instructions.

Contributing assets

Graphics should be licensed with CC-BY-SA and Sounds/Music with CC-BY. Also CC-BY-SA for music and sounds is okay, but the credits page will need to be updated. Fonts needs to be licensed with SIL Open Font License.

See more information on CONTRIBUTING.md