An open API service indexing awesome lists of open source software.

https://github.com/azurite-engine/azurite

Azurite Game Engine is a 2D Java game engine built on top of LWJGL.
https://github.com/azurite-engine/azurite

2d-game-engine azurite azurite-engine engine game game-engine gradle java java-game-engine lwjgl

Last synced: 15 days ago
JSON representation

Azurite Game Engine is a 2D Java game engine built on top of LWJGL.

Awesome Lists containing this project

README

        


Azurite


Azurite is a 2D Java game engine built by the Games with Gabe Discord/YouTube community.






Explore the docs
··
Watch the introduction video
··
Check the Project Board






## Table of Contents

* [Features](#features)
* [Built With](#built-with)
* [Code samples](#code-samples)
* [Getting Started](#getting-started)
* [Prerequisites](#prerequisites)
* [Project Setup](#project-setup)
* [Documentation](#documentation)
* [Issues](https://github.com/Games-With-Gabe-Community/Azurite/issues)
* [License](#license)
* [Contact](#contact)

# Features

* Modern OpenGL through the LWJGL 3 library for fast GPU rendering.
* Entity Component System

| Name | Support | Render Context |
|------|:------:|:--------------:|
| Windows | Working | OpenGL 330 |
| macOS | Working | OpenGL 3.3 Core |
| Debian / Ubuntu | Working | OpenGL 330 |
| Arch / Manjaro | Working | OpenGL 330 |
| Other Distros | Planned | OpenGL 330 |
| FreeBSD | Planned | - |
| Android | Planned | OpenGL ES |
| IOS | Not Planned | - |

### Built With
* [LWJGL 3](https://www.lwjgl.org/)

### Code Samples
#### BoilerPlate Code:
```java
public class Main extends Scene {
public static void main(String[] args) {
Engine.init(1920, 1080, "Azurite Engine Demo In Comment", 1.0f);
Engine.scenes().switchScene(new Main());
Engine.showWindow();
}

public void awake() {
Graphics.setDefaultBackground(Color.BLACK);
camera = new Camera();
...
}

public void update() {
...
}
}
```

#### Simple example with sprites:
```java
public class Main extends Scene {
GameObject player;
Sprite s;

public static void main(String[] args) {
Engine.init(1920, 1080, "Azurite Engine Demo In Comment", 1.0f);
Engine.scenes().switchScene(new Main());
Engine.showWindow();
}

public void awake() {
Graphics.setDefaultBackground(Color.BLACK);
camera = new Camera();

player = new GameObject();
s = new Sprite("src/assets/sprite.png");
player.addComponent(new SpriteRenderer(s, new Vector2f(100)));
}

public void update() {
if (Keyboard.getKeyDown(GLFW.GLFW_KEY_SPACE))
player.transform.add(new Vector2f(1, 0));
}
}
```
# Getting Started

### Prerequisites
* OpenGL capable graphics card (minimum `core 330`)
* OpenGL capable graphics driver
* Java 11

### Project Setup
To begin contributing, create a fork of this repository.
Using intellj, import this project from existing sources as a gradle project.
Build gradle, then run the Main scene (located in the scenes package).
Follow this [link](https://azurite-engine.github.io/Azurite-Docs/tutorials/set-a-project.html) for tutorials on cloning and importing to either Intellj or Eclipse.

### Documentation
* [Documentation](https://azurite-engine.github.io/Azurite-Docs/) (Heavy WIP)
* [Javadocs](https://azurite-engine.github.io/azurite-javadocs/)
* [Contributing guidelines](https://azurite-engine.github.io/Azurite-Docs/docs/contributing.html)
* [Azurite Code style](https://azurite-engine.github.io/Azurite-Docs/docs/azurite-style.html)

### License
Copyright (c) 2023 MIT License

### Contact
[Discord Server](https://discord.gg/dhyV3BXkRZ) in the #azurite-development channel