Skip to content

TobseF/XSwing-Plus

Repository files navigation

XSwing Plus

Open Source remake of a classic match 3 arcade game.

gameplay
Youtube

💡 Trivia

The original game was named Swing Plus -Total Mind Control (Marble Master) and was developed by Software 2000 a German game developer and publisher. It was released in 1997 for PC, PlayStation and Game Boy Color.

My goal was to bring this masterpiece of arcade action back to life. I wanted to recreate the original graphics and game mechanics as accurately as possible. The game is written in Java and runs on Windows, Linux, Mac and Android.

⭐ Features

⭐ Spiffy addictive gameplay
⭐ Hot Seat multiplayer mode
⭐ 45 Challenging Levels
⭐ Offline and online highscore
⭐ Particle and sound effects
⭐ Multilingual (German and English)

💿 Downloads

Download Windows
Windows Setup XSwing_Plus_windows-x64.exe 82MB

Download Mac
Linux Setup XSwing_Plus_unix.sh 88MB

Download Linux
Mac Setup XSwing_Plus_macos.dmg 83MB

📖 Manual

The objective is to simultaneously disband as many heavy balls as possible. To do this, simply place three balls with the same color in a horizontal row. Now these and all adjoining balls of this color will disappear. Five balls of the same color in a column will shrink to one heavy ball. Every 50 balls you reach the next level and a new color will be added. Pay attention: One stack can only take up to eight balls.

⌨ Controls

 /: Move the crane
 : Drop a ball
 N: New Game
 B: Change the ball set
 E: Disable particle effects
 ESC: Exit the game
 F2: Toggle Fullscreen
 S: Change game size (experimental)

🚀 Manual Setup

If you do not like the setup, you can use the portable zipped version.
Then you have to install Java by your own, which is bundles with the setup.
Download Zip
⚠ Cross Platform Zip - Java JRE not included! XSwingPlus.zip 32MB

💡 Choose the setup for your platform, which is the preferred installation option.
Only advanced users should choose the Download Zip, wich needs ab installed Java JRE.

The game needs an installed Java runtime environment (JRE) with at least 8.
You can get it for any platform here.
For example on Windows choose:

  • Operating System: Windows
  • Architecture: x64
  • Package Type: JRE
  • Version: 8 - LTS And download the .msi installer.

If the .jar wile type is linked with the java, you can simply start the game by opening the XSwingPlus.jar.
Otherwise, start the game with console:

java -jar XSwingPlus.jar

⚙ Configure IDE

To start developing, import the workspace als Gradle project in your IDE. All dependencies are included in the lib folder. They should be automatically referenced by Gradle.
To start the game simply run the Gradle task:

gradle run

This will compile the game and start the game with splash Screen (class xswing.start.XSwingWithOptions). If you use IntelliJ IDEA you can also use the predefined run configurations:

  • XSwing
  • XSwingNoSplash

📦 Package

You can build the game for distribution wich wil generate a runnable jar which includes all dependencies, resources and natives.

gradle shadowJar

This will packe the game to the output folder: build\libs\.

💡 Keep in mind, that the game not only needs the resources in the res folder, but also the native LWJGL bindings for your platform (.ddl for Windows, .so Linux and .jnilib for Mac). The shadowJar will copy all natives for all platforms to the build dir for you!

📜 Licence

This remake is a free fan project. Software 2000 is not involved in any way. The company Software 2000 filed for bankruptcy in 2002. But the Swing brand, graphics and sounds may still be licenced by others. I tried to contact someone from the original team to get permission to use the original theme - but without success. Another clone of the game for Android and IOS was also available under the name Color-X-Plode.
The code is licenced under MIT License.

I started the development in 2007 - A time when git took its first steps and version control wasn't the first thing to do. This repository was restored from zipped code backups between 2007 and 2013.

🎵 Music

Thank you, Michael Motschmann (MiMo57m), for the great background music tracks.

🧱 Dependencies

  • Slick2D - 2D Java game library based on LWJGL.
  • LWJGL - Lightweight Java Game Library.
  • Nifty GUI - Open Source Java OpenGL GUI.
  • Java 8 - Programming Language and SDK.

Slick2D LWJGL
Nifty GUI Java 8

📋 Command Line Arguments

The game has several command line arguments wich can be overwritten. This may be helpful for development or troubleshooting.

# Game
resolution = 1024 x 768
fullscreen = false
musicVolume = 20
fxVolume = 100

# Startup
showOptionPanelOnStart = true
checkForUpdates = false
uploadHighScore = false

# Debugging
debug = true
configFile = somePath/config.json

# Advanced
useNativeMouseCursor = false

👓 Modding

Is easy to change graphics ot sounds. Just replace them in the res folder. For the balls, there is second theme /res/balls2.png which can be activated by the key B.

For theming there is a JSON configuration which stores all UI based settings: config.json. Here you can change sounds and images and change settings like their position. This configuration can even store multiple configurations at one. Just change the "configSetIndex": 1 (starting with 0) to switch to a HD version with 16:9 aspect ratio with a higher resolution.