All Projects → Ybalrid → Annwvyn

Ybalrid / Annwvyn

Licence: mit
Annwvyn C++ Open Source designed-for-VR game engine and application developement framework

Projects that are alternatives of or similar to Annwvyn

Vxr
General purpose engine written in C++ with emphasis on materials rendering (PBR, clear coat, anisotropy, iridescence)
Stars: ✭ 181 (+432.35%)
Mutual labels:  game-engine, engine, open-source
Hellspawner
The OpenDiablo2 toolset
Stars: ✭ 69 (+102.94%)
Mutual labels:  game-engine, engine, open-source
Vulkan Renderer
A new 3D game engine using modern C++ and Vulkan API
Stars: ✭ 205 (+502.94%)
Mutual labels:  game-engine, engine, open-source
Opendiablo2
An open source re-implementation of Diablo 2
Stars: ✭ 10,057 (+29479.41%)
Mutual labels:  game-engine, engine, open-source
Spartanengine
Game engine with an emphasis on architectual quality and performance
Stars: ✭ 869 (+2455.88%)
Mutual labels:  game-engine, engine, open-source
Dwarfcorp
An open-source 3D colony management game for PC, Mac and Linux
Stars: ✭ 460 (+1252.94%)
Mutual labels:  game-engine, visual-studio
Gemrb
Engine Made with preRendered Background
Stars: ✭ 614 (+1705.88%)
Mutual labels:  game-engine, engine
Gainput
Cross-platform C++ input library supporting gamepads, keyboard, mouse, touch
Stars: ✭ 636 (+1770.59%)
Mutual labels:  game-engine, engine
Coffee
An opinionated 2D game engine for Rust
Stars: ✭ 771 (+2167.65%)
Mutual labels:  game-engine, engine
Diablerie
Diablo 2 reimplementation on unity
Stars: ✭ 363 (+967.65%)
Mutual labels:  engine, open-source
Cortex
Cortex: a Powerful Observable Analysis and Active Response Engine
Stars: ✭ 676 (+1888.24%)
Mutual labels:  engine, open-source
Monogame
One framework for creating powerful cross-platform games.
Stars: ✭ 8,014 (+23470.59%)
Mutual labels:  game-engine, open-source
Kengine
Entity-Component-System (ECS) with a focus on ease-of-use, runtime extensibility and compile-time type safety and clarity.
Stars: ✭ 417 (+1126.47%)
Mutual labels:  game-engine, engine
Zgb
Game Boy / Color engine with lots of features
Stars: ✭ 375 (+1002.94%)
Mutual labels:  game-engine, engine
Countly Sdk Android
Countly Product Analytics Android SDK
Stars: ✭ 626 (+1741.18%)
Mutual labels:  open-source, sdk
Beeftext
A text snippet tool for Windows.
Stars: ✭ 366 (+976.47%)
Mutual labels:  visual-studio, open-source
Uppy
The next open source file uploader for web browsers 🐶
Stars: ✭ 24,829 (+72926.47%)
Mutual labels:  open-source, mit
Yage
Simple game engine, written in C++
Stars: ✭ 7 (-79.41%)
Mutual labels:  game-engine, engine
Korge
KorGE Game Engine. Multiplatform Kotlin Game Engine
Stars: ✭ 780 (+2194.12%)
Mutual labels:  game-engine, engine
Acid
A high speed C++17 Vulkan game engine
Stars: ✭ 838 (+2364.71%)
Mutual labels:  game-engine, open-source

Annwvyn Build status

Screnshot

Devenoppement is happening on our Phabricator

Annwvyn is a simple C++ game engine built upon free and open source technologies to easily create applications and games tailored for Virtual Reality HMD.

This project is licensed under the terms of the MIT licence agreement.

For any questions, shout me a mail at [email protected].

Currently the engine supports :

  • Oculus Rift through the Oculus SDK (OVR) Windows Only
  • OpenVR Windows and Linux
    • HTC Vive
    • Oculus Rift (You can use the Oculus Rift with SteamVR, but the "native" way is recommended)
    • Any headset officially supported by SteamVR

Annwyn uses the OGRE rendering engine (version 2.1) in OpenGL mode, and send the rendered frames to the native SDKs of multiple types of VR systems. The engine simulate physics via Bullet, and generate spatial 3D audio via OpenAL

Please read the DEPENDENCIES file to know what you need to build it.

System and Software requirement

  • A VR capable GPU. Support for OpenGL 4.3 is required for Annwvyn, and it needs to be compatible with your VR system
  • Oculus VR Headset (Rift) CV1 or Dev Kit 2 OR HTC Vive, or other hardware supported by OpenVR
  • Usable with hand controllers (touch, vive wands...)
  • 64bit Operating system
  • Up to date runtime software:
    • Oculus Home app installed from http://oculus.com/setup Windows only
    • SteamVR installed through Steam http://steampowered.com/
    • For Linux users, you will need to have Steam installed, the games will need to run within the Steam runtime, and you need to install Vulkan libraries for it to actually work.
  • Windows build : Microsoft Visual Studio 2017 Community (free to download and use from Microsoft)
  • Linux build : GCC or Clang, Steam and Steam VR installed, Vulkan developement package.

Specifically, the code needs a C++14 compliant compiler, and the dependency package is built with the lattest version of Visual Studio 2017 available

Installation

First, please install Visual Studio 2017 (the community version is free) from Microsoft.

Then, go get the SDK installer here https://www.annwvyn.org/download/ and run it. If near the end of the installer, a CMD window open asking about setting up environment variables, say yes.

The installer needs to set the location of Annwvyn into an environement variable to easilly find everything with CMake.

After that, if you need to update the engine to the current master branch, see the "Updating the engine" section below.

Building on Windows

Please install Oculus Home, or SteamVR and the lattest drivers from your graphics card manufacturer.

As stated in the DEPEDENCIES file, you should download the SDK from https://annwvyn.org/ The SDK has everything to build Annwwvyn itself, so you can hack into it by this way to. It's a Source+Binary package.

But, if you really want to build and setup the engine yourself, here's a simple guide how to do it

  • Download the "dependency package" from here https://www.annwvyn.org/download/
  • Extract it in a folder
  • Clone this repo in the same folder
  • Run the RUNME.BAT script from this folder (found in the dependency package you extracted earlier)
  • Generate in a "build" directirory a VS2017 x64 solution via CMake
  • Make sure the IDE is set to build in "Release" "x64" mode
  • hit Ctrl+Shift+B to build the whole solution
  • In the solution explorer, right click on the INSTALL project, and build it.
  • Do the same (without the INSTALL part) in the example subdirectory
  • You need to copy a bunch of .dll in the "example" (and template) build directories. You can do this automatically by launching the getLibs.bat script (you really should). But here's the list if you want to check
    • Ogre
      • OgreMain.dll
      • OgreOverlay.dll
      • OgreHlmsPbs.dll
      • OgreHlmsUnlit.dll
      • RenderSystem_GL.dll
      • OIS.dll
    • OpenAL
      • OpenAL32.dll
    • GLEW
      • glew32.dll
    • sndfile
      • libsndfile-1.dll
    • OpenVR API client
      • openvr_api.dll

If you have an Oculus Rift plugged in (or in Debug HMD mode), or a Vive with SteamVR open you can launch the example program via the HMD_launcher.bat scripts in the example directory. (using the one that correspond to your hardware)

Building on Linux

The only supported renderer on Linux is the OpenVR one. You should install Steam, and SteamVR on your box before doing anything.

You need to have the libraries described in the DEPENDENCIES file, and every libraries needed to build Ogre 2.1 with json, zip, and OpenGL support.

Everything regarding building Ogre, BtOgre21, Annwvyn, and Annwvyn powered projects is done via CMake.*

If you are with CMake, in a terminal, just navigate to a source directory that contains an CMakeLists.txt file and do the following:

#if a "build" directory doesn't exist, create one 
mkdir build
cd build
cmake ..
make 
#if you need to "install" the software
sudo make install

You will need to build Ogre yourself. Once you have Ogre 2.1 and Bullet Physics installed on your system, you need to build and install BtOgre21.

Currently, some of the libraries that are either distributed in binary for only, and the CMakeScripts are available in this repository that needs to be clonned inside your home directory : https://github.com/Ybalrid/AnnwvynDeps

Some words on the linux support

Annwvyn works (has been tested) with the following configuration:

  • OpenVR renderer, linked to OpenVR 1.0.13 and an HTC vive, installed and configurerd correctly
  • Game ran throug the Steam VR runtime
  • With Vulkan libraries installed (On ArchLinux, you need the vulkan-devel metapackage.

Using the engine

Make a copy of the "template" directory to a convenient location for you, and you are basically ready to go. It contains a CMakeLists.txt that will permit you to generate build files.

Inside your build directory, you need to copy over some libraries, there are getLibs.bat for windows and linuxGetLibs.sh for linux scripts that will do that for you if everything was installed correctly.

Make sure to put Visual Studio build in Release/x64 mode before building! The debug mode target will work but you need ot copy over debug-compatible version of the libraries. They aren't packaged conviniently for that yet. (comming soon).

On windows you need to have a environment variable "AnnwvynSDK64" set to the SDK location. This is done automatically by the SDK installer, but if you encounter problem, you should run again the RUNME.bat script on the SDK installation folder.

You should check out the quickstart page on the Wiki

Updating the engine

Run "git pull" on the Annwvyn sub-directory, and re-run CMake, then rebuild from the build repository. You may need to manually update the dependencies

Clean and build the solution.

If you have build errors, you should download the newest SDK and put it in place of the older one. You can also replace the content of your SDK folder (except the Annwvyn directory) with the dependency package from https://www.annwvyn.org/download/

If you are getting error regarding functions with names that start's with "VR", you need to upgrade the OpenVR package. Just git pull from the OpenVR directory and copy over the dll.

If you are getting errors regarding functions with names that starts with "ovr_", you need to upgrade the OculusSDK. This require you to rebuild the libtray with /MD(d) runtime linkage, but I'll recomedn you to get the new dependency package.


If you want more information about the project, please consult the official website (https://annwvyn.org/). It also contains documentation about the code.

This project is in it's really early phases of development. If you have any question, feel free to contact me directly at [email protected]

License MIT.


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].