← Zpět na produkty

Dotrix

Náš vlastní open-source 3D engine napsaný v jazyce Rust — modulární, výkonný a vytvořený pro grafiku v reálném čase.

Dotrix je vlastní 3D engine společnosti Löwenware napsaný v jazyce Rust. Jeho název vychází ze slov dot a matrix — základních stavebních kamenů vykreslování. Vyvinuli jsme ho pro naše vlastní herní projekty a zveřejnili jeho zdrojový kód, protože řešení, která vytváříme, mohou být užitečná i dalším.

Proč jsme ho vytvořili

Komerční herní enginy jsou výkonné, ale přinášejí licenční omezení a abstrakční vrstvy, které ne vždy odpovídají našim potřebám. Dotrix nám poskytuje přímou kontrolu nad vykreslovací pipeline, architekturou ECS a podporou platforem.

Pro vývojáře

Dotrix je modulární a navržený pro vývojáře v jazyce Rust, kteří chtějí moderní 3D engine, aniž by opustili ekosystém jazyka Rust. Dokumentaci, příklady a repozitář se zdrojovým kódem najdete na dotrix.rs.

Hlavní přednosti

ECS

Programovací vzor ECS (Entity Component System) umožňuje rychlý a jednoduchý přístup k objektům ve hře. Komponenty mohou obsahovat data popisující entitu i data potřebná k jejímu vykreslování nebo řízení.

Fyzikálně založené vykreslování

Fyzikálně založené vykreslování

Vykreslování řízené GPU

Aby se omezily zbytečné přenosy mezi CPU a GPU, Dotrix používá nepřímá vykreslovací volání. GPU tak má dostatek dat k vykreslení nejen jedné entity, ale celého světa nebo jeho podstatných částí pomocí jediného vykreslovacího volání.

Částice a výpočetní shadery

Částice a výpočetní shadery

Multitasking

Veškerá logika v Dotrix je soustředěna do úloh, které může engine paralelně zpracovávat na pozadí. Není třeba ručně řešit jejich uspořádání, plánování ani synchronizaci.

Skybox

Skybox

Podpora více platforem

Díky tomu, že je Dotrix napsaný v jazyce Rust, je snadno přenositelný a lze ho bez potíží používat v systémech Linux, macOS i Windows.

Terén

Terén

Časté dotazy

Proč Rust?

Myšlenka vyzkoušet Rust pro vývoj her se objevila, jakmile jsme tento programovací jazyk začali používat ve vestavěných systémech. Díky modularitě, moderní syntaxi a vestavěným bezpečnostním mechanismům je obecně skvělou volbou pro tak rozsáhlé projekty, jako jsou hry. Díky způsobu, jakým pracuje s datovými typy a generiky, se navíc velmi dobře hodí pro nejrůznější programovací vzory ECS (Entity Component System), které jsme chtěli využít.