• Stars
    star
    120
  • Rank 294,895 (Top 6 %)
  • Language
    Java
  • License
    MIT License
  • Created almost 10 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A cross platform 2D / 3D Java Game Engine (Desktop / Html5 / Android)

logo

What is SilenceEngine?

SilenceEngine is a 2D/3D game engine that takes care of low level aspects of game development like graphics, input handling, asset loading and collision detection for you, meaning you only need to make your game. It lets you focus on the game play and game design, by doing most of the hard work for you.

Features

The main feature of SilenceEngine is it's simplicity, and it greatly reduces the amount of code you need to write by taking care of almost everything automatically for you. Though it is meant to take care of everything automatically, it is also completely customizable. Here are a list of features of it.

  • Truly Cross Platform:

    SilenceEngine games are truly cross platform, it lets you compile to Desktop (Windows / Linux / MacOS), Android and also HTML5, all from a single code base. You can chose which platform(s) to target, and also extend it with platform specific code easily.

  • State Based Games:

    SilenceEngine supports separating the game logic into different states, like intro state, story state, play state, high score state, game over state, and any other state that you are going to create. This allows you to keep stuff separate and your code base clean and easy to read.

  • Completely Customizable:

    SilenceEngine is designed to be completely customizable. You can change everything from the ResourceLoader to the Game Loop, and you can also change the entity parameters. It is totally flexible and also easy to use. It is finally up to you whether you want to extend the components, or to re-implement them in your way.

  • Automatic Collision Detection:

    SilenceEngine features with automatic collision detection. All you need to do is give your entities a collision shape, and register the classes in the collider, and the collisions, along with collision response is done for you, in both 2D and 3D. The CollisionEngine uses SAT (Separating Axis Theorem) to determine collisions, and hence you get your collision response with good accuracy.

  • Tiled MAP Editor Support:

    SilenceEngine has support for loading and rendering maps made with the Tiled Map Editor. Currently supports automatically rendering of Orthogonal and Isometric maps, but the support will soon increase to all other map formats. The parser can parse any TMX format (not compressed, and XML only) though.

  • Object Oriented Wrappers for OpenGL and OpenAL:

    If you think that all the above features are not useful for you, and you want more performance and you love going low level, SilenceEngine provides object oriented wrapper classes for OpenGL and OpenAL. It is up to you how to use them, and other parts of the SilenceEngine cooperates with you.

The above list is only half what SilenceEngine offers to you. It is currently in heavy development, and more features are yet to arrive. In the meanwhile, take a look at the source code, and the example games to get an idea of how to use this engine.

Is it only for games?

Perhaps not, you can create any form of OpenGL application using SilenceEngine. It provides you with OpenGL classes in the com.shc.silenceengine.graphics.opengl package, which cleanly wraps the OpenGL functions into Java classes, making them more easy to use. All you have to take care of is that you must call the dispose() on those objects when you no longer need them.

It is also easier to use in development mode as we will check for OpenGL errors after every call to the OpenGL functions and report you the errors, if any exist, in the form of GLException allowing you to get rid of the errors quickly and easily. By the way, everything in SilenceEngine is modern, and there is no deprecated stuff. I'm proud to say that this engine only uses OpenGL 3.3 (no deprecated OpenGL).

Licence

  • The engine, and all the backends in this repo are licenced under MIT licence, which you can find here.
  • This desktop backend uses LWJGL 3. You can find it's licence here.
  • The GWT backend uses WebGL4J, GWT-AL and GwtOpentype libraries which operate on MIT licence.
  • The Android backend uses AndroidOpenAL library which uses LGPL v3 licence.
  • The engine uses EasyJSON and EasyXML libraries which are released under MIT licence.

Links

More Repositories

1

WebGL4J

Simple WebGL wrapper for GWT
Java
28
star
2

GLFW-Controller-Database

A database containing mappings of every known controller working with GLFW 3.3
14
star
3

LWJGL-Tutorial-Series

Source Code for my LWJGL Tutorial Series at GoHarsha.com
Java
14
star
4

FakeCaller

An POC app to simulate how TrueCaller works on Android
Kotlin
9
star
5

SimplyCpp

The Simplest C++ IDE Targeted at Absolute Beginners!
C++
8
star
6

FontPacker

Pack TrueType fonts for use in Games
C#
7
star
7

CodeVita2017

My solutions for the TCS CodeVita 2017
C
6
star
8

Blox

A 3D Platformer made with SilenceEngine
Java
5
star
9

GWT-AL

An OpenAL implementation based on WebAudio API for GWT
Java
5
star
10

SEProjectCreator

A project creator tool for multi backend SilenceEngine projects
Java
5
star
11

purescript-style-guide

A better style guide for PureScript language
4
star
12

AndroidOpenAL

Android port plus Java JNI wrapper of OpenAL library
C
4
star
13

yt-private-subscriptions-udacity-ios-nanodegree

An app which lets users to subscribe to channels and see the feed without logging in
Swift
3
star
14

EasyJSON

An easy to use JSON parser made for learning purposes
Java
3
star
15

EasyXML

An easy to use XML parser written in Pure Java
Java
3
star
16

Vulkan-Tests

Tests to learn Vulkan using LWJGL3 and Java
Java
2
star
17

ps-warnings-removal-tool

A small tool to automatically remove warnings from PureScript projects
JavaScript
2
star
18

HelpMeMiracle

A help desk implementation project for Internship
JavaScript
2
star
19

AndroILD

An Image Loading Delegate for Android to easily delegate to different libraries
Kotlin
2
star
20

ScorpionHunter

A 2D Top Down Shooter made with SilenceEngine
Java
2
star
21

WebGL4J-Tutorial-Series

Tutorial series for WebGL4J
Java
2
star
22

sriharshachilakapati.github.io

Source code for my website
JavaScript
2
star
23

lobby-amoebam

Amoebam game app for Lobby
CSS
2
star
24

prestodom-breakout-demo

A demo breakout game for the PrestoDOM UI library by Juspay
PureScript
1
star
25

AutoInvaders

My LD34 entry
Java
1
star
26

JusPayInterview

JusPayInterview
JavaScript
1
star
27

NaaGame

A game creation tool for kids (final year project)
Java
1
star
28

JavaUWPExperiment

An experiment to make UWP application using Java 8
Java
1
star
29

LDSnake

Snake game for LD37
Java
1
star