A simple 3D voxel-based shooter inspired by Ace of Spades.
Go to file
Andrew Lalis bf0982fbd9 Made TCP communication async, and show selected block value. 2022-07-28 09:06:52 +02:00
client Made TCP communication async, and show selected block value. 2022-07-28 09:06:52 +02:00
core Added better client input handling. 2022-07-28 09:01:16 +02:00
design Added screenshot! 2022-07-27 16:49:24 +02:00
launcher Added launcher base javafx code. 2022-07-15 13:00:14 +02:00
server Made TCP communication async, and show selected block value. 2022-07-28 09:06:52 +02:00
worlds Added basic physics for walls, still highly broken. 2022-07-10 12:49:51 +02:00
.gitignore Added build-clients.d script. 2022-07-26 17:15:14 +02:00
LICENSE Initial commit 2022-07-03 14:34:17 +02:00
README.md Simplified config! 2022-07-28 01:25:14 +02:00
build-clients.d Upgraded build script. 2022-07-27 16:26:17 +02:00
pom.xml Added basic chat functionality, for server-side messages. 2022-07-27 16:10:22 +02:00
setversion.d Upgraded setversion.d to also run mvn clean test. 2022-07-09 11:31:20 +02:00

README.md

Ace of Shades 2

A simple 3D voxel-based shooter inspired by Ace of Spades. With some basic weapons and tools, fight against players in other teams!

screenshot

Quick-Start Guide

Read this guide to get started and join a server in just a minute or two!

  1. Make sure you've got at least Java 17 installed. You can get it here.
  2. Download the aos2-client JAR file from the releases page that's compatible with your system.
  3. Run the game by double-clicking the JAR file, or entering java -jar <jarfile> in a terminal. This should generate a config.yaml file.
  4. Set the serverHost, serverPort, and username properties accordingly for the server you want to join.
  5. Run the game again to join the server and start playing!

Setting up a Server

Setting up a server is quite easy. Just go to the releases page and download the latest aos2-server JAR file. Similar to the client, it's best if you provide a config.yaml file to the server, in the same directory. The following snippet shows the structure and default values of a server's configuration.

port: 25565
connectionBacklog: 5
ticksPerSecond: 20.0
world: worlds.redfort
teams:
  - name: Red
    color: [0.8, 0, 0]
    spawnPoint: A
  - name: Blue
    color: [0, 0, 0.8]
    spawnPoint: B
physics:
  gravity: 29.43
  walkingSpeed: 4
  crouchingSpeed: 1.5
  sprintingSpeed: 9
  movementAcceleration: 2
  movementDeceleration: 1
  jumpVerticalSpeed: 8
actions:
  blockBreakCooldown: 0.25
  blockPlaceCooldown: 0.1
  blockBreakReach: 5
  blockPlaceReach: 5
  blockBulletDamageResistance: 3
  blockBulletDamageCooldown: 10
  resupplyCooldown: 30
  resupplyRadius: 3
  teamSpawnProtection: 10
  movementAccuracyDecreaseFactor: 0.01
  friendlyFire: false

Configuration

Both the client and server use a similar style of YAML-based configuration, where upon booting up, the program will look for a configuration file in the current working directory with one of the following names: configuration, config, cfg, ending in either .yaml or .yml. Alternatively, you can provide the path to a configuration file at a different location via a single command-line argument. For example:

java -jar server.jar /path/to/my/custom/config.yaml

If no configuration file is found, and none is explicitly provided, then a set of default configuration options is loaded.