Giter VIP home page Giter VIP logo

ouzel's Introduction

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.

ouzel's People

Contributors

elnormous avatar jorgenpt avatar archo5 avatar

Watchers

James Cloos avatar ELI JOSEPH BRADLEY avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.