Ouzel game engine

Hello!

I am Elviss Strazdins, a game developer from Latvia. I have been working on games and game engines for more than a decade (13 years to be exact). I am now working on a C++ game engine "Ouzel" (available on GitHub) for 10 months. It will also soon be added to the handmade project list.

I started working on it, because I wanted a fast C++ game engine that can be used without platform restrictions (I am now supporting Windows, macOS, Linux (tested on Ubuntu and Raspbian), Android, iOS, tvOS and working on Windows Phone and UWP support). I was using cocos2d-x a lot before, but its code is a huge mess and it is single threaded, so I had a really small time frame for my game logic. My engine has a separate threads for rendering and game logic. Unlike almost all the other engines, my engine supports Direct3D11, Metal and OpenGL rendering backends and XAudio/OpenAL audio backends. This allows me to launch the game on any platform without translation layers like ANGLE.

There is still a lot of work to be done (Roadmap), but I would really appreciate your feedback about the project.

Thank you!

Edited by Elviss Strazdins on
Greetings Elviss, Welcome to the HMN !

I've looked at your GitHub repository, this looks promising. Honestly quite impressed by the number of platforms you are supporting.

There are things to be said about coding a low level / high performance multiplatform 2D engine.
I have a great love for 2D development because it keeps you away from the trade-off and rounding issue of 3D rastered engines.

Is there a build or a few samples I could try on Windows ?

All the best to you and Ouzel !
Hi! The samples are located in the "samples" directory (https://github.com/elnormous/ouzel/tree/master/samples). Just open the Visual Studio (or Xcode) project and build it. But make sure to checkout submodules before that. Unfortunately there are no prebuilt samples available, but if you want it, I can build them and upload to the Ouzel homepage.

Edited by Elviss Strazdins on
I tried building and running the samples and ran into issues with XAudio 2 on Windows 7. MSVC 2015 includes the windows 8.1 SDK default, which includes XAudio 2.8 which isn't actually available on Windows 7. To build and run on Win7 I either have to install the a DirectX SDK from June 2010 and deal with whatever conflicts come from that or build without XAudio2 support. Since the DX SDK thing is a hassle I just built without XAudio support which allowed me to run the samples (except for the audio sample, unsurprisingly).

It might make sense to load the audio library dynamically and check for existing versions; You could fall back to 2.7 on Windows 7, for example. This is discussed a bit here: https://hero.handmade.network/forums/code-discussion/t/53

There also seems to be a bug in the sample program where you can click the buttons you use to select which sample to run while running a sample, even though they're not visible.

Thank you for suggestions. Yes, others have also noted that XAudio causes problems on Windows 7, so I will look into this and fix it. I am also working on a fix for the main menu (it does not lose the mouse and keyboard "focus").

Edited by Elviss Strazdins on
I have fixed both of the problems. Now Ouzel engine can be run on Windows 7 (XAudio is being loaded dynamically) and menu is not active if it is not a child of the active scene anymore.