Skip to content
forked from elnormous/ouzel

C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android and web browsers

License

Notifications You must be signed in to change notification settings

EtherTyper/ouzel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ouzel

Ouzel v0.27

Build Status Build Status

Ouzel is a C++ game engine mainly targeted for development of 2D games.

Supported platforms:

  • Windows 7, 8, 10
  • macOS 10.8+
  • Linux
  • iOS 8+
  • tvOS 9+
  • Android 2.3+
  • Emscripten (sample)

Supported rendering backends:

  • Direct3D 11
  • OpenGL 2 and OpenGL 3
  • OpenGL ES 2 and OpenGL ES 3
  • Metal

Supported audio backends:

  • XAudio2
  • OpenAL
  • OpenSL ES

Windows Phone platform support is under development.

Features

  • Cross-platform (Windows, macOS, iOS, tvOS, Android, Linux and Emscripten targets supported)
  • Multi-threaded (separate threads for rendering and game update)
  • Scene management
  • GUI helper classes and management
  • Multiple side-by-side viewport support
  • Bitmap font support
  • Xbox 360 gamepad support
  • macOS, iOS and tvOS gamepad support
  • Node animation (including tweening) system
  • Particle systems
  • Resource caching system
  • Localization support via loading string translations
  • Audio engine for sound effect playback
  • Easy to install (just pull the repository and it's subrepositories and build it)

Example app

The following code will open a 640px x 480px window:

ouzel::Engine engine;

void ouzelMain(const std::vector<std::string>& args)
{
    ouzel::Settings settings;
    settings.size = ouzel::Size2(640.0f, 480.0f);
    engine.init(settings);
}

Showcase

2D platformer Bearslayer is being developed using Ouzel engine.

Bearslayer

Compilation

Ouzel uses stb and rapidjson submodules. The following command has to be run after cloning the Ouzel engine:

$ git submodule update --init

or these commands if you have a really old version of git:

$ git submodule init
$ git submodule update

Makefiles and Xcode and Visual Studio project files are located in the "build" directory. Makefiles and project files for sample project are located in the "samples" directory.

You will need to download OpenGL (e.g. Mesa) and OpenAL drivers in order to build Ouzel on Linux. To build it for Raspbian pass "platform=raspbian" to "make" as follows:

$ make platform=raspbian

To build Ouzel with Emscripten, pass "platform=emscripten" to "make" command, but make sure that you have Emscripten SDK installed before doing so:

$ make platform=emscripten

You can build Android samples and run them on an Android device by executing the following commands in "samples/android" directory (Android SDK and NDK must be installed and added to PATH):

$ ant
$ adb shell am start -n lv.elviss.ouzel/lv.elviss.ouzel.MainActivity

System requirements

  • Windows 7+ with Visual Studio 2013 or Visual Studio 2015
  • macOS 10.10+ with Xcode 7.2+
  • Any reasonable new Linux distro (including Raspbian)

Getting help

You can ask question in the following locations:

License

Ouzel codebase is licensed under the BSD license. Please refer to the LICENSE file for detailed information.

About

C++ game engine for Windows, macOS, Linux, iOS, tvOS, Android and web browsers

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 63.8%
  • C 18.7%
  • Objective-C++ 9.4%
  • Objective-C 6.5%
  • Makefile 0.8%
  • Shell 0.3%
  • Other 0.5%