• Stars
    star
    210
  • Rank 182,067 (Top 4 %)
  • Language
    C++
  • License
    Other
  • Created almost 5 years ago
  • Updated 9 months ago

Reviews

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

Repository Details

An advanced C++ 3D game engine powering an in-production game yet to be announced

Rootex

MIT License C/C++ CI Documentation Status Discord

Contents

What is Rootex?

Rootex is an advanced C++ 3D game engine powering an in-production game yet to be announced. The game will finally ship on Windows and use DirectX 11.

Find the upcoming features and the game's public Trello board here!

Features

  • Based on the popular Entity-Component-System architecture
    • Allows performance benefits due to better CPU cache usage. However over-optimizations are not the goal
    • Uses an impure ECS where components can have functions
  • Full editor GUI implemented in ImGui
    • Similar interface as other popular game engine editors for added familiarity and ease of use
    • Readable asset files (100% JSON)
  • 3D DirectX 11 renderer
    • Dynamic and static Phong-model lighting
    • High resolution textures for Diffuse, Normal, Specular and Light mapping
    • Post processing effects like gaussian blur, bloom, Adaptive SSAO, FXAA, including ad-hoc sepia, black-and-white, tonemapping
    • Mildly configurable CPU based particle effects
    • Effekseer Particle effects integration available for high quality VFX
    • Environment effects like Sky sphere, sky reflections, refractions and depth fog
    • Supports basic transform and skeletal animations
    • Automatic LOD (level-of-detail) generation for 3D models and animations
    • Custom materials using custom HLSL shaders
    • And few more things...
  • RmlUi integration which allows writing/debugging UI overlays in an HTML/CSS-like language and Lua
  • Physics engine powered by Bullet Physics 3, allows an easy-to-work-with interface for making physics simulations
  • OpenAL-Soft based audio engine supporting 3D attenuation and stereo sound
  • Lua scripting engine with functionality exposed for easy game curation
    • Uses an object-oriented approach with Lua scripting for making intuitive scope declarations and reducing garbage generation
    • Lua debugger integration
    • Equipped with a tweening API provided by flux
  • Applies the event-based programming paradigm for better maitainability of game code
  • Being developed for an actual game
  • Documentation

Why is Rootex?

Rootex is the direct successor of Rubeus, our 2D Game Engine. Rubeus Engine is not being maintained and is being preserved. Newer features will only be planned for Rootex. The game being developed will be announced soon as well.

How do I use Rootex?

Rootex runs only on Windows and there are no plans to port it to other platforms.

  1. Install Visual Studio 2022 or Visual Studio 2019, CMake build system.
  2. Install Visual Studio Desktop C++ development pack (or anything similar, since C++ is no longer a default language since at least Visual Studio 19)
  3. Run generate_cache.bat /22 for VS 2022 or generate_cache.bat /19 for VS 2019.
  4. Use build.bat to build Rootex.

Assets Workflow :

  1. Assets are stored in separate repositories and added as git submodules. The testing assets are stored at https://gitlab.com/sdslabs/rootex-assets while the assets for the game are stored at https://gitlab.com/sdslabs/rootex-game.
  2. The assets.bat script has two subcommands to make switching of the submodules between the testing and game repository easier. Use assets.bat assets-test to switch to the test repository and assets.bat assets-game to switch to the game repository. The submodule will have two remote urls set. The origin points to the HTTPS url while upstream points to the SSH url.
  3. You can also add your own repository as an assets submodule. Use assets.bat assets-custom <url> for that. If setting a custom url, use an HTTPS url here and then set an SSH remote afterwards.

WARNING : Running assets.bat will delete the game/assets/ folder. Be sure to backup any unsaved progress before running it.

Now you can start reading the documentation and build games on Rootex!

NOTE: If you get the error dxgidebug.dll not loaded while opening the Rootex Editor, install Graphics Tools by following this guide.

How can I contribute?

Read here to know our contribution guidelines. Join our Discord server or optionally ping us at chat.sdslabs.co to get guidance. You can start with setting up Rootex on your Windows machine and try solving a few bugs listed here: https://github.com/sdslabs/Rootex/issues

License

This project is under the MIT license. See THIRDPARTY.md for thirdparty license notices.

More Repositories

1

gasper

Your Cloud in a Binary
Go
414
star
2

recommends

A collection of resources and reading material that we recommend
278
star
3

Rubeus

A cross platform 2D game engine written in C++ for beginners
C++
181
star
4

kiwi

A minimalistic in-memory key value store.
Go
159
star
5

zap-db

An easy to use JSON database written with ease of setup and memory management of slack bots in mind.
TypeScript
104
star
6

jinora

Slack webhook app to create anonymous public channels
CoffeeScript
88
star
7

hackview

webRTC based multi-person video chat with a collaborative editor.
JavaScript
84
star
8

beast

Jeopardy-style CTF challenge deployment and management tool.
Go
74
star
9

gut

A version control system with gut feeling.
Shell
59
star
10

playCTF

An Open Source CTF hosting platform
Vue
55
star
11

watchdog

πŸ”‘ Lightweight server access management system, written in Rust
Rust
43
star
12

quark

An open source framework to build competitive platforms
PHP
34
star
13

gsoc

Google Summer of Code: Ideas, Links, Proposals, etc.
HTML
31
star
14

jee

IIT-JEE Name wise Result
HTML
30
star
15

studyportal-nexus

Backend API for studyportal
Python
25
star
16

DSL

Run Ubuntu easily on macOS (Big Sur compatible)
Swift
24
star
17

studyportal

The solutions portal of IITR
24
star
18

phoenix

Redis based phantomjs queue
JavaScript
23
star
19

studyportal-axion

The ReactJS frontend for Study Portal
JavaScript
22
star
20

bot

Our personal chat-bot
CoffeeScript
22
star
21

Problem-Statements

21
star
22

codebot

CodeBot is an alternative terminal style interface for Project Euler.
PHP
21
star
23

play

β–Ί Internal Music Player @SDSLabs
JavaScript
21
star
24

pinger

Pinger is an uptime and status monitoring application.
Go
21
star
25

makers-21

Makers 2021
20
star
26

gctl

Gasper on the command line. Deploy and manage applications and databases from the terminal.
Go
20
star
27

nano

A no distraction, minimal playlist player for SDSLabs' Muzi
JavaScript
19
star
28

Curvy

An addictive, multiplayer game in which one has to control a curve
JavaScript
18
star
29

gRoot

For when you need a friend with root access.
C#
18
star
30

makers

Makers tasks by SDSLabs.
17
star
31

forsit

A Cross Platform Problem Recommendation Engine
Python
17
star
32

slack-utils

Interact easily with the various slack APIs
CoffeeScript
15
star
33

slack-github

A webhook for GitHub that posts to your slack chat using an Incoming Webhook integration in slack.
JavaScript
14
star
34

portkey

File transfers using RTC over QUIC
Go
14
star
35

IITR-Shoot-Em-Up

A VR game where the player must shoot cannon balls at giant zombies to save the IITR Main Building
14
star
36

join

Our recruitment page
SCSS
13
star
37

styleguide

Internal coding styleguide for SDSLabs.
12
star
38

team

SDSLabs team page
JavaScript
11
star
39

portfolio

Portfolio repository for SDSLabs built with CSS & ❀️
JavaScript
11
star
40

leaderboard

A leaderboard application to keep track of all social scores of a team
PHP
11
star
41

bruter

brute but stronger
Python
11
star
42

broCLI

A command line tool to streamline your game development process with Rubeus.
Go
11
star
43

redmine-to-gitlab

Scripts to import data from an existing redmine setup to gitlab
Python
10
star
44

katana

An advanced yet simple attack/defence CTF infrastructure in Go
Go
10
star
45

slack-lens

A search backend for Slack using Elasticsearch and MySQL
Clojure
8
star
46

martie

Party Music management application for GDG New Delhi DevFest '13
JavaScript
8
star
47

sdslabs.github.com

SDSLabs Blog
SCSS
7
star
48

gitlab-controller

Automates handling of SSH keys for Gitlab
Python
6
star
49

rusticos

Rustic OS written completely in Rust
Rust
6
star
50

lectures

Lectures taken by SDSLabs
JavaScript
5
star
51

gbemu

A GameBoy emulator in C++
C++
5
star
52

codematics-problems

The problem repository for CodeBot. Please fork and add problems
5
star
53

muzi-scanner-old

Music Scanner for Muzi
Python
5
star
54

Echo-Backups

Java
4
star
55

git-lecture

Git Lecture @SDSLabs
4
star
56

botdb

Self hostable single JSON Bucket for our Bot
JavaScript
4
star
57

gasper-dockerfiles

Dockerfiles used in Gasper (https://github.com/sdslabs/gasper)
Dockerfile
3
star
58

game-portal

CSS
3
star
59

SDSLabs-Issue-Labeler

This is test repo for github bot
Python
3
star
60

data-mining-lectures

Repository of code/presentation used for Data Mining lectures
Python
3
star
61

muzi-scanner

Python
2
star
62

syntaxerror

Landing page for Syntax Error 2013
CSS
2
star
63

presence-3D

JavaScript
1
star
64

Onyx

Indexing Engine for ECHO Search Engine
Java
1
star
65

monopoly

Monopoly is web game based on IITR map
JavaScript
1
star
66

security

Our security disclosure policy
1
star
67

BOSCH-TRAFFIC-SIGN-RECOGNITION-frontend

The frontend electron app for BOSCH-TRAFFIC-SIGN-RECOGNITION project developed for Inter IIT
JavaScript
1
star
68

coming-soon

The coming-soon page of SDSLabs
JavaScript
1
star
69

Gasper-API-Client

API Client for Gasper in javascript
JavaScript
1
star
70

Agent

Safe shutdown for servers.
1
star
71

watchdog-homepage

Website for the Watchdog tool
CSS
1
star
72

data.sdslabs.co

Collection of schema for applications of SDSLabs
JavaScript
1
star
73

nymeria

Complete reimplementation of `Login` in Go using ory.sh in our applications.
Go
1
star
74

keyhouse-template

Python
1
star
75

enroute

https://enroute.sdslabs.co
JavaScript
1
star
76

katana-services

Python
1
star