Skip to content
Cross-platform modern game engine.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Res
Script
Source
.gitattributes
.gitignore
.gitmodules
Innocence Engine's Belly.png
LICENSE
README.md
ScreenCapture.jpg
appveyor.yml

README.md

Innocence Engine

Screen capture Trello website Codacy Badge CodeFactor Build status GPL-3.0 licensed FOSSA Status Blog Twitter Follow

"A poet once said, 'The whole universe is in a glass of wine.'" -- Richard Feynman, 1963

License

FOSSA Status

How to build

All scripts are in /Script folder

Windows

Build Engine

Tested under Windows 10 version 1903

Prerequisites: MSVC 19.00 + CMake 3.10 or higher + Vulkan pre-compiled library (Optional)

Run following scripts in a sequence Will build Debug and Release configurations in parallel

@echo | SetupWin.bat
BuildAssimpWin-VS15.ps1
BuildPhysXWin-VS15.ps1
BuildEngineWin-VS15.ps1
PostBuildWin.ps1

Build Editor

Tested under Windows 10 version 1903

Prerequisites: Qt Creator 5.13 or higher

  • Open Source\Editor\InnocenceEditor\InnocenceEditor.pro with Qt Creator
  • Change "Projects - Build Settings - General - Build directory" to ..\..\..\Bin for Debug, Profile and Release build configurations
  • Change "Projects - Run Settings - Run - Working directory" to ..\..\..\Bin
  • Build the project

Linux

Tested under Ubuntu 18.04 LTS

Prerequisites: GCC 8.0 or Clang 7.0 or higher + CMake 3.10 or higher + OpenGL library(lGL)

Run following scripts in a sequence:

echo | SetupLinux.sh
echo | BuildAssimpLinux.sh
echo | BuildLinux.sh # or BuildLinux-Clang.sh or BuildLinux-CodeBlocks.sh
echo | PostBuildLinux.sh

macOS

Tested under version 10.13.6

Prerequisites: CMake 3.10 or higher + Clang 7.0 or higher

Run following scripts in a sequence:

echo | SetupMac.sh
echo | BuildAssimpMac-Xcode.sh
echo | BuildMac.sh
echo | PostBuildMac.sh

How to use

Windows

Launch game build

Run following script

StartEngineWin.ps1

Launch editor build

Launch through Qt Creator

Linux

Run following script

echo | StartEngineLinux.sh

macOS

Run following script

echo | StartEngineMac.sh

How to debug

Windows

  1. Open Build/InnocenceEngine.sln
  2. Set debug launch arguments and default launch project to InnoMain
  3. Start debug with "Launch" button (default F5)

Linux

  1. Use Atom to load the repo folder
  2. Install gcc-compiler package
  3. Select build/makefile and hit "Compile and Debug" button default F6)
  4. (Optional) Change launch arguments in Source/Engine/Platform/LinuxMain/CMakeLists.txt

macOS

  1. Use Atom to load the repo folder
  2. Open Source/Engine/Platform/MacOS/InnoMain.InnoMain.xcodeproj
  3. Select "Product" - "Run" (⌘ + R)

Available launch arguments

-renderer [value]
Value Notes
0 OpenGL rendering backend
1 DirectX 11 rendering backend
2 DirectX 12 rendering backend (WIP)
3 Vulkan rendering backend (WIP)
4 Metal rendering backend (WIP)
-mode [value]
Value Notes
0 game mode
1 reserved for editor

Features

Entity–component–system architecture

Task-based concurrency model

Object memory pool model

Tiled deferred rendering pipeline

Physically based shading

Scene graph

References & Dependencies

Third-party libraries

assimp

GLAD

dear imgui

stb

JSON for Modern C++

PhysX

Assets

Free3D

Musopen

Free PBR Materials

HDR Labs

Inspirations

Books

C++ Primer (4th Edition)

A Tour of C++

Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)

Inside the C++ Object Model (1st Edition)

Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14

API Design for C++ (1st Edition)

Advanced C and C++ Compiling (1st Edition)

Data Structures and Algorithms in C++ (4th Edition)

Game Engine Architecture (1st Edition)

Game Programming Patterns

Game Coding Complete (4th Edition)

Real-Time Rendering (4th Edition)

Physically Based Rendering : From Theory to Implementation(2nd Edition)

Computer Graphics with Open GL (4th Edition)

OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.5 with SPIR-V (9th Edition)

Calculus (6th Edition)

Linear Algebra and Its Applications (3rd Edition)

And more...

Online tutorials & resources

Mathematics - Martin Baker

Wolfram MathWorld: The Web's Most Extensive Mathematics Resource

cppreference.com

Standard C++

Gamasutra

Scratchapixel

Advances in Real-Time Rendering in 3D Graphics and Games

Learn OpenGL

OpenGL Step by Step

RasterTek - DirectX 10, DirectX 11, and DirectX 12 tutorials

thebennybox's YouTube channel

Randy Gaul's Game Programming Blog

Sébastien Lagarde's blog

Stephen Hill's blog

And more...

You can’t perform that action at this time.