使用C++ 開發的遊戲引擎,主要針對 2D 遊戲的開發

使用C++ 開發的遊戲引擎,主要針對 2D 遊戲的開發


Ouzel

Ouzel是一款主要針對2D遊戲開發的C ++遊戲引擎。

支持的平臺:

  • Windows 7,8,10
  • macOS 10.8+
  • Linux的
  • iOS 8+
  • tvOS 9+
  • Android 3.0+
  • Emscripten

支持的渲染後端:

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

支持的音頻後端:

  • XAudio 2
  • DirectSound
  • CoreAudio
  • OpenAL
  • OpenSL ES
  • ALSA

特徵

  • 跨平臺(支持Windows,macOS,iOS,tvOS,Android,Linux和Emscripten目標)
  • 多線程(用於渲染,聲音和遊戲的單獨線程)
  • 2D和3D場景管理
  • GUI助手類和管理
  • 位圖和真實字體支持
  • 多個並排視口支持
  • XInput,DirectInput,IOKit,Apple GameController和Linux evdev遊戲手柄支持
  • 演員動畫(包括補間)系統
  • 粒子系統
  • 資源緩存系統
  • 通過加載字符串轉換和UTF-8字符串支持進行本地化支持
  • 用於音效播放的軟件音頻混音器
  • Windows,macOS和iOS上的高DPI支持
  • 易於安裝(只需拉動存儲庫並構建它)

系統要求

  • Windows 7+與Visual Studio 2017或更新版本
  • 使用Xcode 7.2+的macOS 10.10+
  • 使用gcc 5+或clang 3.4+的任何合理的新Linux發行版(支持x86和ARM)

彙編

GNU makefile,Xcode項目和Visual Studio項目文件位於“build”目錄中。示例項目的Makefile和項目文件位於“samples”目錄中。

您需要下載安裝的OpenGL(例如Mesa),ALSA和OpenAL驅動程序才能在Linux上構建Ouzel。對於x86 Linux,還需要libx11,libxcursor,libxi和libxss。

要使用Emscripten構建Ouzel,請將“PLATFORM = emscripten”傳遞給“make”命令,但在執行此操作之前,請確保已安裝Emscripten SDK:

$ make PLATFORM = emscripten

您可以通過在“samples / android”目錄中執行以下命令來構建Android示例並在Android設備上運行它們(必須安裝Android SDK和NDK並將其添加到PATH):

$ gradle assembleDebug
$ gradle installDebug
$ adb shell am start -n org.ouzel / org.ouzel.MainActivity

因為在Raspbian Stretch上,libEGL.so被重命名為libbrcmEGL.so而libGLESv2.so被重命名為libbrcmGLESv2.so,所以在構建Raspbian 8(Jessie)或更早版本的示例之前,您必須運行以下命令:

$ sudo ln -s /opt/vc/lib/libEGL.so /opt/vc/lib/libbrcmEGL.so 
$ sudo ln -s /opt/vc/lib/libGLESv2.so /opt/vc/lib/libbrcmGLESv2.so

示例應用

將打開以下代碼,在其中心創建一個帶有精靈的場景:

#include "ouzel.hpp"
class Example: public ouzel::Application
{
public:
Example():
assets(ouzel::engine->getCache())
{
assets->loadAsset(ouzel::assets::Loader::IMAGE, "player.png");
ouzel::engine->getSceneManager().setScene(&scene);
scene.addLayer(&layer);
cameraActor.addComponent(&camera);
layer.addChild(&cameraActor);
playerSprite.init("player.png");
player.addComponent(&playerSprite);
layer.addChild(&player);
}
private:
ouzel::scene::Scene scene;
ouzel::scene::Layer layer;
ouzel::scene::Camera camera;

ouzel::scene::Actor cameraActor;
ouzel::scene::SpriteRenderer playerSprite;
ouzel::scene::Actor player;
ouzel::assets::Bundle assets;
}
std::unique_ptr<:application> ouzel::main(const std::vector<:string>& args)
{
return std::make_unique<example>();
}
/<example>

頭條的代碼顯示不友好,在給個截圖吧

使用C++ 開發的遊戲引擎,主要針對 2D 遊戲的開發

示例代碼運行動態圖

使用C++ 開發的遊戲引擎,主要針對 2D 遊戲的開發

開源地址

由於頭條審核網址比較嚴,防止他們誤會是推廣,所以大家可以自行搜索下載

也可以關注我的頭條號後給我發送 `ouzel`,會自動把下載地址發送給你(做了關鍵字自動回覆)

您知道哪些好用的一鍵安裝包,歡迎評論分享,共同探討學習

更多更優質的資訊,請關注我,你的支持會鼓勵我不斷分享更多更好的優質文章。


分享到:


相關文章: