MCPcopy Index your code
hub / github.com/SypherEngine/SypherEngine

github.com/SypherEngine/SypherEngine @v0.5.0-M1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5.0-M1 ↗ · + Follow
338 symbols 643 edges 66 files 154 documented · 46%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

A Simple and Lightweight Java Game Engine

GitHub issues GitHub stars GitHub license Discord

SypherEngine is a simple game engine, made using pure Java, designed to be lightweight, fast and easy to use.

Disclaimer

SypherEngine is currently in an alpha stage and is subject to many changes. While it does have basic features, there are many bugs still untracked and the documentation is currently a work in progress... If you wish to help, all help is appreciated!

:chains: Helpful links :chains:

🔨 Features 🔨

  • Rendering Framework
  • Basic Event/Input Handling
  • Entity Component System
  • Scenes and Scene Switching
  • Audio Engine
  • Sprite rendering and Animations
  • Logging
  • 2D Camera

💻 Getting SypherEngine 💻

To use SypherEngine, please do make sure that you have the following requirements installed on your device.

  • Java >= 17
  • Maven (Only required for building the project from scratch)

If you do, then include the engine into your project as follows

Gradle

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }



    dependencies {
            implementation 'com.github.SypherEngine:SypherEngine:Tag'
    }

Maven

<repositories>
    <repository>    
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>


<dependency>
    <groupId>com.github.SypherEngine</groupId>
    <artifactId>SypherEngine</artifactId>
    <version>Tag</version>
</dependency>

The Tag is just the release tag.

From Source

After downloading the source, build the engine, using mvn clean package.

Add it to your project classpath to start developing!

👋 SypherEngine HelloWorld 👋

Here's a small program to get started with SypherEngine...

public class Main extends GameManager {

  //These can be left blank for this simple hello world program
  @Override
  public void init(SypherEngine engine){}

  @Override
  public void update(float deltaTime){}

  @Override
  public void render(Renderer renderer){}

  @Override
  public void dispose(){}

  public static void main(String[] args){
    SypherEngine.init(new Main(), "Hello, World!"); // Creating a window titled "Hello, World!"
    SypherEngine.run();
  }
}

📇 License and Code of Conduct 📇

This project follows the MIT license, refer LICENSE This project also follows the Contributor Covenant Code of Conduct

🤝 Contributing 🤝

From the smallest change to a bug fix or feature implementation, Contributions are extremely welcome! Refer the Contributing Guidelines for more info, and thank you for your help!

🫂 Support 🫂

This project is still new to the Open Source Community and we hope to make a good difference! If you like this project, consider giving it a star 🌟 to show your support. It helps a ton :)

Extension points exported contracts — how you extend this code

IRenderable (Interface)
An Interface for all renderable entities @author AurumByte [15 implementers]
core/src/main/java/dev/aurumbyte/sypherengine/core/graphics/IRenderable.java
IComponent (Interface)
(no doc) [3 implementers]
ecs/src/main/java/dev/aurumbyte/sypherengine/ecs/component/IComponent.java
IComponentArray (Interface)
(no doc) [3 implementers]
ecs/src/main/java/dev/aurumbyte/sypherengine/ecs/component/IComponentArray.java
System (Interface)
(no doc)
ecs/src/main/java/dev/aurumbyte/sypherengine/ecs/system/System.java

Core symbols most depended-on inside this repo

toString
called by 26
util/src/main/java/dev/aurumbyte/sypherengine/util/math/Vector2.java
isDown
called by 22
core/src/main/java/dev/aurumbyte/sypherengine/core/event/KeyListener.java
add
called by 17
util/src/main/java/dev/aurumbyte/sypherengine/util/math/Vector2.java
close
called by 10
core/src/main/java/dev/aurumbyte/sypherengine/core/audio/Audio.java
getCamera
called by 8
core/src/main/java/dev/aurumbyte/sypherengine/core/components/scene/Scene.java
getTransform
called by 8
core/src/main/java/dev/aurumbyte/sypherengine/core/ecs/GameObject.java
init
called by 7
core/src/main/java/dev/aurumbyte/sypherengine/core/SypherEngine.java
drawRectangle
called by 7
core/src/main/java/dev/aurumbyte/sypherengine/core/graphics/Renderer.java

Shape

Method 287
Class 42
Enum 5
Interface 4

Languages

Java100%

Modules by API surface

core/src/main/java/dev/aurumbyte/sypherengine/core/ui/Button.java23 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/graphics/Renderer.java22 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/ecs/GameObject.java19 symbols
util/src/main/java/dev/aurumbyte/sypherengine/util/math/Vector2.java14 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/event/KeyListener.java12 symbols
ecs/src/main/java/dev/aurumbyte/sypherengine/ecs/Domain.java11 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/graphics/gradients/GradientBuilder.java11 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/event/MouseListener.java11 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/config/EngineConfig.java11 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/components/scene/Scene.java11 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/components/Animator2D.java11 symbols
core/src/main/java/dev/aurumbyte/sypherengine/core/GameManager.java11 symbols

For agents

$ claude mcp add SypherEngine \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page