This was my first big software project as a kid. I worked on this for hours every day for years and I was really proud of it. Heck, I even made a real game with this so for me it did exactly what it was intended for. Looking back now, the code here is obviously mostly very bad and immature so I'm archiving this for later amusement and nostalgia.
- Why using Salty Engine
- Build Instructions
- How to use Salty Engine
- Games made with Salty Engine
- Collaborate
- Help
Salty Engine is a Java library for making a whole 2D Game with only one single engine and without any dependencies. It aims to be a very user-friendly and easy-to-use 2D Game making tool for Java.
It also includes collision detection, physics, particle systems, several visual effects, over 100 beautiful colors, useful utility classes, hardware acceleration as well as saving data and much more, spread accross more than 230 classes with an average of approximately 90 lines
Minimal tested hardware requirements made possible by JProfiler, a java profiler (for Escape the Junk):
- Intel(R) Celeron(R) CPU N3150 @ 1.60GHz 1.60GHz (dual core)
- no graphics card
- 200MB RAM
NOTE: When you release a game that's made with Salty Engine, feel free to send me an email that I can add it to this section
NOTE 2: The default font (SaltySystem.defaultFont
) is the same on all systems to ensure the same looking graphics on every computer. This font is powered by Google Fonts and is published under the Apache 2 license as well.
- simple Display management
- have the game in a panel inside your own window if you want
- easy rendering process with
SaltyGraphics
- GameObjects for the simplest game developing possible
- Scenes for collecting and defining what to render and update
- A huge selection of beautiful colors in
de.edgelord.saltyengine.utils.ColorUtil
- linear Keyframe Animations
- Animations
- Spritesheets
- Resource management (inner as well as outer)
- Music and Sound
- UI with pre-defined elements like Buttons, Labels and TextBoxes
- Components (like extensions to GameObjects)
- Collision detection with hitboxes
- A simple yet working physics engine
- Keyboard and mouse input as simple as possible for the developer
- JavaDoc for unclear/complicated methods, fields and classes
- examples of the basics within the library (package
testing
andexample
)
You can build Salty Engine using maven
and add it to your project by adding this to your pom.xml file:
<dependencies>
<dependency>
<groupId>de.edgelord.salty-engine</groupId>
<artifactId>salty-engine</artifactId>
<version>[version]</version>
</dependency>
</dependencies>
Or: to get a usable JAR of this library, you can either download an existing release here or build one yourself following these instructions:
-
Requirements:
- git has to be installed properly
- a JDK, 1.8 or later
-
Clone (download) the git repository. To do so, open up the terminal or cmd, go to any directory and type in
git clone https://github.com/edgelord314/salty-engine
https://github.com/edgelord314/stdf
for stdf and
https://github.com/edgelord314/sysDepFiles
for sysDepFiles -
"cd" into the downloaded directory. Type
cd salty-engine
into the cmd or terminal
-
Build the project using the maven wrapper (no installation required). For windows, type the following into the cmd
mvnw clean install
For Linux/macOs type the following into the terminal:
./mvnw clean install
-
You can now either use maven to get the lib into the build path of your project (recommended) or use the built JAR directly. For maven, add the following to your
pom.xml
:<dependencies> <dependency> <groupId>de.edgelord.salty-engine</groupId> <artifactId>salty-engine</artifactId> <version>[the version you built in step 3]</version> </dependency> </dependencies>
When you build the project as described in step 3, something like this should appear somewhere at the beggining of the output:
[INFO] ---------------< de.edgelord.salty-engine:salty-engine >---------------- [INFO] Building Salty Engine [the version is here ("-SNAPSHOT" is important!)] [INFO] --------------------------------[ jar ]---------------------------------
Or you copy the JAR
target/salty-engine-[version]-jar-with-dependencies.jar
relative to the directory of the cloned project and add it to the buildpath manually using e.g. your IDE.
You can very easily start a Salty Engine game project using this tool. It basically creates a runnable project template. There is a series of videos uploaded to YouTube that explain how to use Salty Engine
Made by edgelord314 and LoOoNeliEst for Ludum Dare 42. You can play it here.
A fun little pixel-style prototype of a top-down shooter, made by edgelord314. You can play it here
A simple, colorful clone of Breakout by Atari. You can play it here
Do you want to collaborate? Feel free to open a pull-request (preferably well documented and only well tested code). Also, feel free to join the official discord server
For help with how to use, there are five ways:
- read the project wiki
- join the official discord server, where I and other developers can help you personally
- take a look at this section of the README
- take a look at the package
testing
, where
we test the features of this library - take a look at the package
example