Code Monkey home page Code Monkey logo

spaceconquest's Introduction

SpaceConquest : Advanced

Java Project

Space Conquest is a Java project created during our final year of an IT bachelor's degree in University of Bordeaux (FR). It's a strategy game where you are the Ambassador of the red planet and will have to conquest all planets around.

To run this game :
On Linux
java -jar spaceConquest.jar
On Windows
click on spaceConquest.jar
Rules :

To conquest another planet you'll have to send spaceships on it. You also can choose the amount of spaceships sent (in %). To win a game you need to take every planets belonging to users, it is not necessary to take all neutral planets. You cannot send too much spaceships at a time, so when you try to send a lot of spaceships they will be withdrawn from your spaceships and sent periodically in waves if there is no allied spaceships in orbit.

Controls :
  • Use the option tab in the main menu to configure the game as you like.
  • Use drag and drop from one of your planet to an enemy planet to attack this planet with your spaceships.
  • Use drag and drop from one of your planet to another one to send spaceships on this planet.
  • Use the slider below your planets to choose which percentage of spaceships will go when sending spaceships.
  • Click on a ship to select its squadron.
  • CLick and create a rectangle to select multiple squadrons.
  • If a squadron is selected (highlighted in white), you can click on a planet to change its destination.
  • During a game, use the menu at the left top of the screen to save, restore or exit the game.
  • You can select spaceships with a drag and drop movements, it will display a selection area.
Functionalities :
  • Planet :
    • Planet are generated with random size, speed production and position.
    • A planet produces spaceships. The number of available spaceships is displayed on the planet.
    • When a planet is attacked, if its available spaceships fall below 0, the attacker become the new owner.
    • A planet can receive allied spaceships, which will be added to its available spaceships.
    • There is a minimal distance between each player's starting planet to balance the game.
    • There is also a minimal distance, smaller, between any planet and a neutral planet.
  • Spaceships :
    • There is two different type of spaceship, with different speed, damage and length.
    • Spaceships must be launched from a planet.
    • A spaceships hitting an enemy planet will withdraw one spaceship to the planet's available spaceships.
    • A spaceships arriving on an allied planet will add one spaceship to the planet's available spaceships.
    • A spaceship being part of a selected squadron will be highlighted in white.
    • Selected spaceships can have their target changed.
    • Spaceships automatically follow a path without obstacle when getting from a planet A to a planet B.
    • If a spaceship crash on a enemy planet, an explosion appears.
  • AI :
    • It is possible to play against 1 to 4 AI.
    • AI have a simple behaviour, they attack the nearest planet.
    • There is three differents type of AI : Classic, Safe and Aggressive AI. They will send more or less ships depending on their type.
  • Pirates :
    • During the game, neutral spaceships will spawn on the border of the screen and attack randomly players and neutral planets.
  • Save / Restore :
    • It is possible to save/restore your game using the menu at the top left of the screen during a game.
    • The save is stored in "res/save.ser".
    • It takes some time to save/restore, if your screen freeze just wait a bit.
    • An alert warn you when the program finished saving/restoring your game. You can close it with the "ok" button, it will closes itself automatically 2 seconds later otherwise.
  • Options :
    • There is an option tab available in the main menu. Clicking on "Apply" is necessary to save changes.
    • Possibility to choose between 2 to 5 players. (One human and only AI).
    • Possibility to choose between 5 to 20 neutral planets.
    • Possibility to choose the screen size.
    • Possibility to optimize the game.
  • Optimization :
    • This mode can be activated if your computer is to slow to run this game.
    • There is no images in this mode.
    • Pathfinder is less precise.
    • There is no collision drawing.

New Functionalities :

  • Adding different types of spaceships. (advanced 21/12)
  • Making a better selection of spaceships. (advanced 21/12)
  • Pirates spaceships
  • Explosions when a spaceships hit a planet.
  • Making the optimization option relevant, with better graphics and better pathfinding when not activated.
  • Ending the game when the human player looses.
  • Different spaceships shapes.
  • Back to menu.

Known flaws or bugs :

  • A planet cannot send ships when allied spaceships are in its orbit, so when allied spaceships fly near the planet, it is impossible to send spaceships.
  • There is the same problem with a planet receiving spaceships.

Possible improvements :

  • Using color variation combined with sprite for spaceships.
  • Sick planets ( non-constant production)
  • Choose spaceship's type production

Copyright (c) 2018 Thomas Guesdon & Louis Jolliet

spaceconquest's People

Contributors

ljolliet avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

tguesdon evenico

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.