Skip to content
This repository has been archived by the owner on Sep 3, 2023. It is now read-only.

sanj0/salty-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Archived as of 2023-09-04

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.

Java CI with Maven license-badge

Salty Engine

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 isn't just a library for rendering

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.

Why using Salty Engine?

Features (at least some of them):

  • 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 and example)

Build instructions

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:

  1. Requirements:

    • git has to be installed properly
    • a JDK, 1.8 or later
  2. 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

  3. "cd" into the downloaded directory. Type

    cd salty-engine

    into the cmd or terminal

  4. 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
  5. 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.

How to use Salty Engine

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

  1. How to install Salty Engine

Games made with Salty Engine

Escape the Junk

Made by edgelord314 and LoOoNeliEst for Ludum Dare 42. You can play it here. Escape the Junk

Moon Defender

A fun little pixel-style prototype of a top-down shooter, made by edgelord314. You can play it here Moon Defender

Br34k0ut

A simple, colorful clone of Breakout by Atari. You can play it here

Br34k0ut

Collaborate

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

Help

For help with how to use, there are five ways: