Home

Awesome

Aether3D Game Engine

Author: Timo Wirén

Screenshot

Features

Planned Features

Sample Code


    Window::Create( width, height, WindowCreateFlags::Fullscreen );
	
    RenderTexture cameraTex;
    cameraTex.Create2D( width, height, DataType::Float, TextureWrap::Clamp, TextureFilter::Linear, "cameraTex", false );

    GameObject camera;
    camera.AddComponent<CameraComponent>();
    camera.GetComponent<CameraComponent>()->SetClearColor( Vec3( 0, 0, 0 ) );
    camera.GetComponent<CameraComponent>()->SetProjectionType( CameraComponent::ProjectionType::Perspective );
    camera.GetComponent<CameraComponent>()->SetProjection( 45, (float)width / (float)height, 0.1f, 200 );

    Mesh sphereMesh;
    sphereMesh.Load( FileSystem::FileContents( "sphere.ae3d" ) );

    GameObject sphere;
    sphere.AddComponent< MeshRendererComponent >();
    sphere.GetComponent< MeshRendererComponent >()->SetMesh( &sphereMesh );
    sphere.AddComponent< TransformComponent >();
    sphere.GetComponent< TransformComponent >()->SetLocalPosition( { 0, 4, -80 } );

    Scene scene;
    scene.Add( &camera );
    scene.Add( &sphere );
    

API documentation

link

Build

Windows

OpenVR

macOS

Linux

sudo apt install libopenal-dev libx11-xcb-dev libxcb1-dev libxcb-ewmh-dev libxcb-icccm4-dev libxcb-keysyms1-dev

iOS

Tested GPUs

Running Tests

Visual Studio

GCC or Clang

License

The engine is licensed under zlib license.

Third party library licenses are:

Roadmap/internal TODO

https://docs.google.com/document/d/1jKuEkIUHiFtF4Ys2-duCNKfV0SrxGgCSN_A2GhWeLDw/edit?usp=sharing