All Projects → Hossein-Noroozpour → gearoenix

Hossein-Noroozpour / gearoenix

Licence: other
Cross-platform C++ 3D game engine.

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to gearoenix

jasper
🧳 Single-binary packaging for Ruby applications that supports native and Wasm targets
Stars: ✭ 29 (-12.12%)
Mutual labels:  webassembly, wasm
vmrp
mrp emulator, virtual machine, mrp模拟器
Stars: ✭ 126 (+281.82%)
Mutual labels:  webassembly, wasm
Imguizmo.quat
ImGui GIZMO widget - 3D object manipulator / orientator
Stars: ✭ 187 (+466.67%)
Mutual labels:  vulkan, webassembly
wasmsign2
PoC implementation of the WebAssembly Modules Signatures proposal.
Stars: ✭ 18 (-45.45%)
Mutual labels:  webassembly, wasm
wasm-ops
Chart of WebAssembly Instructions
Stars: ✭ 46 (+39.39%)
Mutual labels:  webassembly, wasm
Filament
Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
Stars: ✭ 13,215 (+39945.45%)
Mutual labels:  vulkan, wasm
wasm-linker-js
A simple WebAssembly Linker in JavaScript
Stars: ✭ 14 (-57.58%)
Mutual labels:  webassembly, wasm
Xacor
Experimental Game Engine
Stars: ✭ 24 (-27.27%)
Mutual labels:  vulkan, opengl33
vrcpu
Code, documentation, schematics, notes for my Ben Eater inspired breadboard computer and emulator
Stars: ✭ 98 (+196.97%)
Mutual labels:  webassembly, wasm
ugo-compiler-book
📚 µGo语言实现(从头开发一个迷你Go语言编译器)[Go版本+Rust版本]
Stars: ✭ 996 (+2918.18%)
Mutual labels:  webassembly, wasm
Pmtech
Lightweight, multi-platform, data-oriented game engine.
Stars: ✭ 478 (+1348.48%)
Mutual labels:  vulkan, wasm
imgalign
Webapplication for image stitching and aligning
Stars: ✭ 162 (+390.91%)
Mutual labels:  webassembly, wasm
Magnum
Lightweight and modular C++11 graphics middleware for games and data visualization
Stars: ✭ 3,728 (+11196.97%)
Mutual labels:  vulkan, webassembly
Diligentengine
A modern cross-platform low-level graphics library and rendering framework
Stars: ✭ 2,142 (+6390.91%)
Mutual labels:  vulkan, directx11
Viry3d
Cross platform 2D and 3D game engine in C++.
Stars: ✭ 307 (+830.3%)
Mutual labels:  vulkan, webassembly
CrossWindow-Demos
🥪 Examples of how to use CrossWindow for things like rendering graphics, listening to events, etc.
Stars: ✭ 48 (+45.45%)
Mutual labels:  vulkan, directx11
Rust Yew Realworld Example App
Exemplary real world app built with Rust + Yew + WebAssembly
Stars: ✭ 249 (+654.55%)
Mutual labels:  webassembly, wasm
Prism
Build frontend web apps with Ruby and WebAssembly
Stars: ✭ 251 (+660.61%)
Mutual labels:  webassembly, wasm
FFNx
Next generation modding platform for Final Fantasy VII and Final Fantasy VIII ( with native Steam 2013 release support! )
Stars: ✭ 200 (+506.06%)
Mutual labels:  vulkan, directx11
TypeScriptXX
🧷 Stay safe! Type-safe scripting for C++ using TypeScriptToLua and CMake with auto-generated declarations.
Stars: ✭ 33 (+0%)
Mutual labels:  webassembly, wasm

Gearoenix Game Engine

A cross-platform C++ 3D game engine.

codecov CircleCI



Status

Finalizing 0.2 APIs, in case you used it, be patient about API changes, soon it's going to be stabilized.

Features

  • It is cross-platform.
  • It is Lightweight.
  • Highly multithreaded architecture.
  • It has a runtime abstraction over Graphic API backends (e.g. OpenGL ES2, OpenGL ES3, OpenGL 3.3, OpenGL 4.3, Directx11(WIP) and Vulkan(WIP)).
  • It can automatically choose the highest available backend and in addition in your build you can off an API backend so it will not compile that API and then your binary size will be reduced.
  • It has its own file format for importing scenes data in to the game. This file format help the engine to have better performance in loading a scene and reduce the size of the data hence it makes smaller publishable binaries.
  • It has its own blender file exporter that try to force best practices in data creation and have control over content creation.
  • Asset management that cache assets for reducing load time and making the reuse of assets more efficient.
  • Multithreaded rendering.
  • Supports variety of textures:
    • 2D texture
    • 3D texture (WIP, it has been implemented in blender part, but it is not developed in engine yet)
    • Cube texture
  • Painlessly cross-platform and very fast mathematics structures.
  • Lighting
  • Shadowing
  • Skyboxing (Cube and Equirectangular)
  • Fast font displaying mechanism.
  • Different type of cameras: Perspective, Orthographic
  • Graphic pipeline management to cache and reduce number of switches and increasing performance.
  • Multithreaded occlusion culling.
  • Multithreaded mathematics works for increasing performance.
  • PBR Material.
  • Ability to create customized and or special materials/effects with special behaviors.
  • Automatically Adaptive cascaded shadow mapping based on the scene and camera properties.
  • Runtime reflection probe with smooth rendering which divides rendering process between frames.
  • A GUI and CLI tool for baking HDRI to environment, irradiance and radiance cube-maps.

Demos

In this section I need contribution. (Note: Webassembly is not main target of this project.)

How to Build

  • Star this project (:D)
  • Download ZIP of master branch.
  • Execute the setup.py with your Python3 compiler. (This script provide a simple way of gathering dependencies of project and organizing the work space.)

Desktop OSs

  • Create a build directory and cd it. (e.g. 'build')
  • Do Cmake on it. (like: cmake -DCMAKE_BUILD_TYPE=Release ..)
  • Build it. (like: cmake --build . --config Release)
  • If you have a problem to initialize the environment, you either can use the provided Docker images in Docker-hub or look at the provided Dockerfile file in project ci part.

Android

  • You must have the latest version of android studio, SDK and NDK installed
  • Open the android folder with android studio.
  • Run and enjoy.

iOS

  • You must have the latest XCode and iOS SDK installed
  • Create a build directory and cd it. (e.g. 'build')
  • Do Cmake on it. (like: cmake -DCMAKE_BUILD_TYPE=Release .. -DCMAKE_SYSTEM_NAME=iOS)
  • Open the XCode project.
  • Connect your iOS device (currently there is a bug in one of the static library of ios-simulator that prevents the build for it)
  • Sign the project with your ios-developer team
  • Run and enjoy.

Webassembly

  • Create assets directory in the root of Gearoenix project.
  • Place your (or example's) required assets files in assets directory.
  • Create a build directory (e.g. wasm-build) and cd it.
  • You must have Emscripten SDK installed.
  • Your console must have Emscripten SDK in its environment.
  • emcmake cmake -DCMAKE_BUILD_TYPE=Release ..
  • cmake --build . --config Release
  • Create a web-server for the application, for example, like following:
    • If you have Python3 in your path do python3 -m http.server 8080
    • For Python2 python -m SimpleHTTPServer 8080
  • Open your browser and go to http://localhost:8080/examples/<name-of-example>

Supporters & Sponsors

jetbrains

Contribution

  • Donating to this project.
  • Promotion of this project.
  • Documentation.
  • Test coverage is not very well and I don't have time for it, if you want to contribute to it, this is the best place you can start.
  • 3D content development.
  • Code.

License

You can do whatever you want to do with it as long as you take responsibility of all of its consequences, But If you used it and it was useful for you, please make an acknowledgment and promotion for this project and me, I'm currently seeking for a job in the graphic and game-engine fields.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].