RemsEngine - OpenSource Kotlin/OpenGL/ECS based game engine

Overview

Game Engine: Rem's Engine

Parallel to this video editor, I am developing my own game engine. I have often written the beginnings of small games, but they always had much in common, so I decided to write my own engine.

  • direct Java/Kotlin support
  • usable in my favourite IDE: Intellij Idea
  • completely Open Source
  • no fees
  • hopefully in the future fewer annoyances with skeletons than Unreal Engine
  • support for all kinds of formats
  • working/loading from inside compressed folders
  • hopefully fewer files than Unity, with their one-meta-for-every-file-strategy
  • I get to learn even more about game engines <3

This engine does not have the target to offer the best graphics, or be the best performant. Its goal is to be nice and quick to develop in, like a tool box.

Project Plan

I was writing the game engine in this same repository as Rem's Studio, because

  • they share a lot of code,
  • I want to base the video studio on the engine in the future
  • currently, the engine needs to be based on the video editor
  • when I started the engine, the video studio already was a huge project

To develop them properly, I ofc had to split them. I finished the split in Q1 2022.

graph TB
    A(Older Kotlin / Java Projects)
    B(Rem's Studio)
    B2(Studio relatively stable / New target: GameDev)
    C(Rem's Studio/Engine)
    X1(Windows/Linux Export)
    X2(Engine relatively stable)
    X3(Android Export)
    W(Engine is production ready)
    W1(Rem's Engine)
    W2(Rem's Studio ''Game'')
    A -- Q1 2020 --> B
    B -- Q2 2021 --> B2
    B2 -- Q2 2021 --> C
    C -- Q1 2022 --> W1
    C -- Q1 2022 --> W2
    W1 -- TODO --> X1
    W1 -- TODO --> X2
    W1 --  TBD --> X3
    X2 -- TODO --> W

Features

  • entity - component based system
    • because I like the system from Unity more than that of Godot (still imperfect)
  • 64 bit fp transformations for universe simulations
  • supports loading all kinds of formats
  • can load files from compressed folders
  • pbr workflow
  • Bullet as physics engine
    • running on a separate thread for uninterrupted graphics
    • running with 64 bit floating precision for accuracy / universe simulations
  • mods / plugins from the start: your game is a mod for the engine
  • event based
  • auto switch between forward- and deferred rendering
    • for beautiful MSAA with a few lights,
    • or thousands of lights without performance hit
    • forward rendering does not support ss reflections and ssao
  • depth-edge-detection based anti-aliasing (like FXAA)
  • shadows with cascades (directional, spot, point)
  • planar reflections
  • screen space reflections
  • screen space ambient occlusion
  • static meshes
  • animated meshes
  • aabb optimized scene hierarchy
  • bloom to convey brightness
  • AMD FSR: dynamic upscaling and sharpening
    • is used to upscale images in the file explorer as well
  • controller support
    • works for UI automatically
    • you can even use your controller in other programs as a mouse, while Rem's Engine/Studio is running :3
  • bare-bones support for .blend files from Blender, so you don't have to export manually
  • automatic file reload, on file change

Planned Features

  • nice UI system
  • easy local multiplayer
  • environment maps as lights
  • compute environment maps from the scene for reflections
  • animation trees
  • shader graphs
  • transparent meshes
  • export to Windows/Linux

Maybe Later Features

  • export to Web
  • export to Android
  • light baking for realistic graphics
  • trees for much stuff: animations, shaders
  • visual coding?
  • path finding algorithms
  • block based library?
  • save files
  • multiplayer system?
  • support separate mice / keyboards for local multiplayer?
  • support controller + mouse/keyboard for one more local player
  • when we have no videos, we could ship without ffmpeg
  • additional 2d physics engine

Used libraries

Build

The project can be built similar to Rem's Studio, just the main class now is me.anno.engine.RemsEngine. All listed libraries need to be added to the project in some way.

Wiki

Since both projects originate from the same base, the Wiki currently is located at Rem's Studio's repository.

You might also like...
RPG written in Kotlin using Korge engine

TheAlchemist RPG written in Kotlin using the Korge engine Based on the template https://github.com/korlibs/korge-starter-kit-rpg, this is a simple pix

2D physics engine for games

LiquidFun Version 1.1.0 Welcome to LiquidFun! LiquidFun is a 2D physics engine for games. Go to our landing page to browse our documentation and see s

a 2d Java physics engine, native java port of the C++ physics engines Box2D and LiquidFun

jbox2d Please see the project's BountySource page to vote on issues that matter to you. Commenting/voting on issues helps me prioritize the small amou

An experiment with cellular automata; Functional mod for Rem's Engine.
An experiment with cellular automata; Functional mod for Rem's Engine.

Cellular Automata This is an experiment with cellular automata. A functional mod for Rem's Engine. When experimenting, I found the Sierpinski Triangle

 A Ktor-based server that handles game process, user registration and packs provision
A Ktor-based server that handles game process, user registration and packs provision

Polyhoot! Server backend A Ktor-based server that handles game process, user registration and packs provision Deploying server locally You can deploy

A console-based game that helps you learn new words.

learn-language-game 📖 🤓 🔠 This is a simple console-based game which helps you learn new words each day. Prerequisites An API-KEY is required from R

 Android Kotlin: Matching Kitties: A Game Inspired by Cats
Android Kotlin: Matching Kitties: A Game Inspired by Cats

Android Kotlin: Matching Kitties: A Game Inspired by Cats A kotlin based Android memory game Screenshots | | | | | | | | | Viewing the App You can clo

simple game implements with kotlin and jetpack.(covered by unit test)
simple game implements with kotlin and jetpack.(covered by unit test)

Simple Spy Game: Source Code 🚨 Published version 🚨 This repository contains a detailed game app that implements simple game using Koin, Room, Corout

TicTacToe Game Built With Kotlin
TicTacToe Game Built With Kotlin

🎲 TicTacToe/Kotlin.... 🔥 TicTacToe-Kotlin- , , , , , , ,

Owner
Antonio
Programmer, studying Computational and Data Science at FSU Jena
Antonio
Android OpenGL ES 2.0/3.0 Engine

Build Status Master Branch Status Develop Branch Status News 06/23/2017 Bombshell 1.1.970 has been released. It fixes behavior of Objects of zero size

null 2.2k Jan 9, 2023
Game made with Korge (Kotlin Multiplatform game engine)

MolesAttack Kotlin Multiplatform Game Play Html/js: https://feliperce.github.io/MolesAttack-Distribution/ Jar: https://feliperce.github.io/MolesAttack

Felipe Rodrigues 10 May 30, 2022
Korjector is a KorGE game engine-based multiplatform client for Projector.

Korjector is a KorGE game engine-based multiplatform client for Projector. An internal JetBrains Hackathon 2021 project to demonstrate that a Projector client can be created in less than 48 hours for any OS that supports decent canvas 2D API.

Sergei Bulgakov 10 Nov 20, 2021
This is an application that is about an X / O game. You can enter the names of the game, and there is also a screen for those who win and there is a button to continue playing and the game determines the result of each player

Game-X-O This is an application that is about an X / O game. You can enter the names of the game, and there is also a screen for those who win and the

Mohamed Rafat 2 Aug 20, 2022
A cross-platform Java game Engine (Framework) , support JavaFX / Android / IOS / HTML5 / Linux / MAC / Windows

Loon Game Engine (Java Game Framework) EN / KR Free Game Resources Links Download Loon Game Engine Only Android-studio Template : androidstudio-templa

cping 502 Jan 4, 2023
SMBClone - SMD clone custom game engine. (Desktop + Android)

SMBClone Simple crossplatform game engine for like SMB game! Supported platforms

Victor Varenik 4 Jul 4, 2022
Android Play Games Services plugin for Godot Game Engine

Google Play Games Services Plugin for Godot This is an Android Play Games Services plugin for Godot Game Engine 3.4.2 Supported features: Sign-in/Sign

Studio Adriatic 41 Dec 29, 2022
Sample source code for Android Pride Rainbow Bounding Box written in Kotlin and OpenGL 🏳️‍🌈

Sample Code for Animated Rainbow Bounding Box in OpenGL A sample app showing how to draw a rainbow bounding box on Android with OpenGL and Kotlin. Blo

Rebecca Franks 28 May 24, 2022
Our maze game is an 2d-animation game developed using android studio.

Our maze game is an 2d-animation game developed using android studio. The game consists of a ball and a board with a hole in the center of it. We are using accelerometer as controller to guide ball towards the hole. T

Suraj Devgan 6 Nov 29, 2022