Okamžitý start – Možnost začít hned, místo budování
vlastního engine.
Známá kvalita – Komerční enginy mají prověřenou kvalitu
z hlediska výkonu a grafické věrnosti.
Nižší náklady na vývoj – Mnohem levnější než udržování
vlastního enginu v podobné kvalitě.
Snadnější nábor zaměstnanců – Také množství dokumentace
a školících materiálů.
Negativa komerčního engine
Nárůst cen – Dominance na trhu umožňuje několika málo
enginům diktovat cenovou politiku.
Požadavek na úpravy – Mnohé projekty stále vyžadují
rozsáhlé úpravy, což snižuje úsporu práce.
Náklady na změnu engine – Studia s existujícími staršími
enginy a zkušenými zaměstnanci vyžadují k přechodu značnou časovou investici.
Řešení na míru – Vlastní engine pro konkrétní
žánr může být efektivnější a poskytnout konkurenční výhodu.
Nedostatek kontroly – Závislost na jiné společnosti a
její vizi (roadmapě) pro vývoj nových funkcí.
Evoluce vývojových nástrojů
1980–1995
1. Éra bez enginů
Kód psaný přímo na míru dané hardwarové architektuře (Assembler, C).
Přímý zápis do registrů a paměti grafických/zvukových čipů.
Hry jako Doom (1993) využívaly specifické matematické triky: BSP stromy (Binary Space
Partitioning) – rekurzivní binární dělení prostoru pro okamžité určení pořadí vykreslování
stěn (zepředu dozadu) bez nutnosti náročného Z-bufferu.
1995–2010
2. Modulární systémy
Jasná separace grafického renderovacího jádra od herní logiky.
Zahájení licencování jader jiným studiím (např. Half-Life na bázi Quake, Deus
Ex na Unreal Engine 1, Titanfall & Vampire: Bloodlines na Source enginu).
2010+
3. Demokratizace & Visual IDE
Nástup zdarma dostupných nástrojů s licenčními modely dle úspěchu (Unity, Godot, Unreal Engine).
PBR Materiály: Fyzikální parametry povrchu (Albedo/BaseColor, Roughness, Metallic,
Normal mapa pro iluzi detailů).
3. Světla & Stíny (Shadow
Mapping)
Typy světel: Directional (slunce), Point (žárovka), Spot (kužel/baterka), Area
lights.
Shadow Maps: Render hloubky scény z pozice světla do textury \(\to\) porovnání
vzdálenosti pixelu k určení, zda je ve stínu.
4. Draw Calls & Post-processing
Draw Call: Příkaz CPU odeslaný GPU k vykreslení objektu (hlavní limit CPU výkonu,
řeší se Batchingem a Instancingem).
Post-processing: Filtry aplikované na hotový 2D snímek (Bloom, Tone Mapping, Color
Grading, SSAO, Motion Blur).
Fyzikální engine: Integrace & Kolize
1. Numerická integrace pohybu
Výpočet zrychlení, rychlosti a pozice ze sil podle 2. Newtonova zákona:
\[\vec{a} = \frac{\sum \vec{F}}{m}\]
Explicit
Euler: \(\vec{x}_{t+\Delta t} = \vec{x}_t + \vec{v}_t \Delta t\) –
jednoduchý, ale nestabilní a energeticky diverguje.
Semi-implicit
Euler: Nejprve spočte novou rychlost, z ní novou pozici. Standard pro
většinu herních enginů.
Verletova
integrace: Počítá bez explicitní rychlosti z předchozích
dvou pozic – ideální pro simulaci látek (Cloth) a provazů.
2. Detekce a řešení kolizí
Broad Phase AABB / BVH
➜
Narrow Phase GJK / SAT
➜
Solver Impulsy & Vazby
Broad Phase: Rychlé vyloučení vzdálených těles pomocí AABB obálek a prostorových
stromů (BVH, SAP) v čase \(\mathcal{O}(N \log N)\).
Narrow Phase: Přesný výpočet kontaktních bodů a hloubky průniku (algoritmy
GJK, SAT).
Solver & Constraints: Aplikace korekčních impulsů, tření (friction), odrazu
(restitution) a vazeb kloubů (Joint / Ragdoll).
Skriptovací vrstva & Herní logika
1. Propojení s C++ jádrem (Native
Bindings)
Engine Core (C/C++): Maximální rychlost, správa paměti, rendering a fyzika přímo nad
hardwarem.
Foreign Function Interface (FFI): Překlenovací vrstva (P/Invoke v .NET, PyBind, JNI,
C API) umožňující skriptům volat C++ jádro a naopak.
Marshaling: Přenos a konverze datových struktur mezi spravovanou (managed) pamětí
skriptu a nativní (unmanaged) pamětí C++.
2. Modely provádění skriptů
Interpreted & Bytecode VM (GDScript, Lua): Rychlé načítání, minimální paměť,
bezpečný sandbox, snadný Hot-Reload za běhu.
JIT & AOT (C# Mono / CoreCLR / IL2CPP): Překlad mezikódu (CIL) do nativního
strojového kódu CPU před spuštěním či za běhu.
Vizuální grafy (Blueprints): Interpretované virtuálním strojem nebo automaticky
nativizované do C++ před kompilací.
Proč oddělovat skriptování od jádra? Umožňuje designérům upravovat kód hry v reálném
čase (hot-reload) bez rekompilací celého enginu a izoluje herní chyby od stability enginu.
Anatomie herní smyčky (Game Loop)
Srdcem každého enginu je nekonečná smyčka řídící synchronizaci vstupů, simulace a
vykreslování:
1. Input
OS Event Polling
➜
2. Fixed Update
Physics & Determinism
➜
3. Update Logic
Gameplay & \(\Delta t\)
➜
4. Render Frame
GPU Draw Calls
1. Process Input: Sběr událostí ze vstupních zařízení
(klávesnice, myš, gamepad, síťové pakety). 2. Fixed
Update: Výpočet pevných fyzikálních kroků a kolizí s konstantním časovým krokem.
3. Update Logic: Aktualizace animací, umělé
inteligence (AI), herního stavu a uživatelského rozhraní. 4. Render: Culling
neviditelných objektů, sestavení Command Buffers a finální rasterizace na GPU.
Herní smyčka v Unity (Order of Execution)
Unity 6 / MonoBehaviour
1. Initialization
Awake ➜ OnEnable ➜ Start
➜
2. Physics (50 Hz)
FixedUpdate ➜ PhysX ➜ Collisions
➜
3. Game Logic
Update ➜ Coroutines
➜
4. Camera & Render
LateUpdate ➜ URP/HDRP
Životní cyklus MonoBehaviour
Awake() / Start():Awake() se volá ihned při inicializaci prefabu (i
neaktivního). Start() až před prvním snímkem.
FixedUpdate(): Běží nezávisle na FPS s konstantním krokem (\(\Delta t =
0.02\,\text{s}\)). Může se zavolat 0×, 1× i vícekrát za render frame. Určeno pro Rigidbody
síly.
Update(): Volá se jednou za renderovací snímek s proměnným
Time.deltaTime. Zde se čtou vstupy z klávesnice/myši.
LateUpdate(): Spustí se až po dokončení všechUpdate(). Klíčové
pro follow-kamery, aby nedocházelo k trhání (jittering).
Ve FixedUpdate() nikdy nenásobit síly
Time.deltaTime (fyzika to řeší interně). V Update() naopak násobit vždy.
Příklad: PlayerController.cs
using UnityEngine;
public class PlayerController : MonoBehaviour {
[SerializeField] private Rigidbody rb;
[SerializeField] private Transform camRig;
private Vector3 moveInput;
void Awake() {
rb = GetComponent<Rigidbody>();
}
// 1. Čtení vstupu každý vykreslený snímek (Variable FPS, starý Input System)
void Update() {
moveInput = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
}
// 2. Fyzika s fixním krokem (např. 50 Hz, deterministické)
void FixedUpdate() {
rb.AddForce(moveInput.normalized * 15f, ForceMode.Acceleration);
}
// 3. Zarovnání kamery až po pohybu všech objektů a fyziky
void LateUpdate() {
camRig.position = transform.position;
}
}
Herní smyčka v Godotu (SceneTree Order)
Godot 4 / GDScript
1. Node Tree Init
_enter_tree ➜ _ready (bottom-up)
➜
2. Input Events
_input ➜ GUI ➜ _unhandled_input
➜
3. Physics (60 TPS)
_physics_process(delta)
➜
4. Frame & Render
_process(delta) ➜ RenderingServer
Životní cyklus uzlů (Node)
_ready(): Volá se po vložení do stromu zdola nahoru (potomci jsou připraveni
dříve než rodič).
_unhandled_input(event): Zpracuje vstupy pouze tehdy, pokud je neabsorbovalo UI
(např. kliknutí na tlačítko v inventáři).
_physics_process(delta): Synchronizováno s interním Physics Serverem (default 60 Hz).
Deterministický pohyb a move_and_slide().
_process(delta): Běží každý renderovaný snímek (variabilní delta).
Vhodné pro vizuální efekty a UI logiku.
call_deferred() & queue_free(): Bezpečné asynchronní modifikace scény a mazání
uzlů na konci frame.
Příklad: player.gd
(CharacterBody3D)
extends CharacterBody3D
const SPEED = 5.0
var move_dir := Vector3.ZERO
func _ready() -> void:
# Uzel je plně inicializován ve stromu scén
set_physics_process(true)
# 1. Čtení gameplay vstupu (pouze pokud nebyl zkonzumován UI)
func _unhandled_input(event: InputEvent) -> void:
var input := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
move_dir = Vector3(input.x, 0, input.y).normalized()
# 2. Fixní fyzikální krok (konstantní delta, 60 TPS)
func _physics_process(delta: float) -> void:
velocity.x = move_dir.x * SPEED
velocity.z = move_dir.y * SPEED
if not is_on_floor():
velocity += get_gravity() * delta
move_and_slide()
# 3. Vizuální aktualizace renderu každý grafický snímek
func _process(delta: float) -> void:
$VisualModel.rotate_y(2.0 * delta)
Časování smyčky: Variable vs Fixed TimeStep
Aby hra běžela stejnou rychlostí na různě výkonném hardwaru, využívá se koncept \(\Delta t\)
(DeltaTime):
1. Variable TimeStep (\(\Delta
t\))
Reálná doba trvání předchozího snímku ($t$ je čas):
\[\Delta t = t_{\text{current}} - t_{\text{previous}}\]
Korekce rychlosti posunu ($\vec{p}$ je vektor pozice):
\[\vec{p}_{\text{new}} = \vec{p}_{\text{old}} + \vec{v} \cdot \Delta t\]
Příklad v praxi: Scéna se 100 objekty a 20 světly.
Pro každý z 100 objektů se spustí Pixel Shader, který počítá vliv všech 20 světel (\(100 \times 20 =
2000\) operací). Pokud je vzdálený objekt později překryt jiným (overdraw), čas strávený jeho nasvícením
byl zbytečný.
Nevýhody: Velmi špatně škáluje s desítkami/stovkami dynamických
světel.
Deferred Rendering
\(\mathcal{O}(O) + \mathcal{O}(L)\)
[Mesh] ➜ [G-Buffer] ➜ [2D Lighting Pass nad viditelnými pixely]
Příklad v praxi: Stejná scéna (100 objektů, 20 světel).
1. Geometry Pass: 100 objektů se bez světel vykreslí 1× do G-Buffer (pozice, normály,
albedo).
2. Lighting Pass: 20 světel se aplikuje jako 2D post-pass pouze na reálně viditelné pixely (\(100
+ 20 = 120\) průchodů). Žádný overdraw.
Výhody: Stovky dynamických světel na scéně bez ztráty FPS.
Nevýhody: Vysoké paměťové nároky (VRAM bandwidth), složité řešení
průhlednosti.
Pokročilé grafické techniky moderních enginů
1. Virtual Geometry (UE5 Nanite)
Automatická mikro-polygonální geometrie streamovaná v reálném čase. Vykresluje pouze pixely odpovídající
reálnému rozlišení obrazovky a eliminuje nutnost ruční tvorby LOD.
2. Real-time Ray Tracing & Lumen
Hardwarově akcelerovaný výpočet reálných odrazů a dynamického globálního osvětlení (GI). Nahrazuje
staticky
zapečené lightmapy (Lightmap) plně dynamickým modelem.
3. PBR (Physically Based Rendering)
Standardizovaný materiálový model založený na fyzice zachování energie (Albedo, Metallic, Roughness,
Normal, Ambient Occlusion).
4. AI Super Sampling (DLSS / FSR / XeSS)
Interní renderování v nižším rozlišení (např. 1080p) a rekonstrukce obrazu do 4K pomocí neuronových sítí a
temporálních vektorů na GPU.
Fyzikální engine a prostorové dělení
Detekce kolizí
Discrete Collision Detection (DCD): Testuje překryv těles v diskrétních časech
\((t_0,
t_1)\). Riziko prolétnutí rychlých objektů bez detekce kolize.
Continuous Collision Detection (CCD): Počítá swept-volume objemy po trajektorii
tělesa v čase.
Raycasting: Vrhání paprsků z kamery či zbraně pro okamžitou detekci prvního
zasaženého objektu.
Prostorové dělení
\(\mathcal{O}(N \log N)\)
Bez prostorových struktur vyžaduje testování kolizí \(N\) těles naivní složitost \(\mathcal{O}(N^2)\).
Octree / Quadtree: Rekurzivní hierarchické dělení 3D prostoru na 8 krychlí (resp. 4
ve 2D).
Problém GC Spikes: Periodické spouštění Garbage Collectoru na spravované haldě (Heap)
způsobuje náhodná zamrznutí herní smyčky a propady FPS.
Managed Memory (Unity C# / Godot C#)
Alokace objektů probíhá na řízené haldě (.NET GC).
Vysoká bezpečnost kódu (žádné use-after-free, memory leaks jsou vzácnější).
Nevýhoda: Neřízené okamžiky čištění paměti.
Manual / Unmanaged (Unreal C++)
Přímá správa paměti, Custom arena allocator.
Reference counting a garbage collection přes UPROPERTY() a chytré ukazatele
(TSharedPtr).
Výhoda: Nulové nečekané záseky při správném návrhu.
Object Pooling vzor
Při startu scény alokovat pool např. 100
nábojů
➜
Při výstřelu aktivovat náboj z poolu
➜
Po dopadu deaktivovat a vrátit do poolu
Objektový přístup (OOP) a Pointer Chasing
Dědičnost a Náhodná paměť (Godot
příklad)
Tradiční stromová hierarchie: Node \(\to\) CanvasItem \(\to\)
CharacterBody2D \(\to\) Enemy.
# Godot GDScript - pole instancí
var enemies: Array[Enemy] = []
func _process(delta: float):
for e in enemies:
# Každý 'e' je pointer na náhodné místo v RAM!
e.position += e.velocity * delta
Monolitické objekty: Každý Enemy v paměti nese desítky položek (jméno,
textury, AI stav, transform, script metadata).
Co je to „Pointer Chasing“?
Paměťová fragmentace (Heap Fragmentation):
Pole enemies neobsahuje samotná data, ale pouze adresy (pointery). Objekty
byly alokovány v různém čase na náhodných adresách RAM.
Cache Miss: Při iteraci procesor nemůže předvídat další adresu v paměti. L1/L2 Cache
selže.
Stall procesoru: CPU musí čekat 100–300 cyklů na načtení 64B řádku z
hlavní RAM namísto okamžitého výpočtu.
\(90\%\) výkonu CPU se ztratí čekáním na sběrnici RAM!
Entity Component System (ECS) a DOTS
Data-Oriented Design
Data-Oriented přístup (Unity C#
Příklad)
Data jsou uložena v souvislých polích (Contiguous Memory):
// 1. Komponenty = Čistá data bez metod (žádný overhead)
public struct Position : IComponentData { public float3 Value; }
public struct Velocity : IComponentData { public float3 Value; }
// 2. Systém = Logika iterující nad souvislým polem struktur
public partial class MovementSystem : SystemBase {
protected override void OnUpdate() {
float dt = SystemAPI.Time.DeltaTime;
// Blesková iterace přes pole v L1 CPU Cache:
Entities.ForEach((ref Position pos, in Velocity vel) => {
pos.Value += vel.Value * dt;
}).ScheduleParallel();
}
}
💡 Entities.ForEach automaticky rozdistribuuje výpočet na všechna dostupná CPU jádra a data
proudí přímo přes L1/L2 cache bez RAM stallů.
Unity DOTS & Unreal Mass
Unity DOTS (Data-Oriented Tech Stack):
Entities: Ryzí ECS model s alokací po souvislých 16KB blocích (Chunks).
C# Job System: Bezpečný multithreading bez race conditions napříč všemi CPU vlákny.
Výhody: Bleskové prototypování, nemožnost udělat syntaktickou
chybu, intuitivní pro designéry.
Nevýhody: Náročnější verzování (binární soubory), riziko vzniku
nepřehledného "Spaghetti kódu".
Asset Pipeline & Optimalizace
Pipeline & Performance
Automatizovaný převod surových dat od grafiků a zvukařů do nativních GPU/CPU binárních formátů:
🎨 Zdrojová data (.FBX, .PNG, .WAV)
➜
⚙️ Import, Komprese & Build Krok
➜
⚡ Engine Asset (.UASSET / .META)
1. GPU
Bloková komprese textur (BC7, ASTC)
Formáty PNG/JPG jsou pro GPU nepoužitelné — musely by se celé dekomprimovat do obrovské nekomprimované
VRAM (1 textura 4K = 64 MB). Blokové formáty (BC1–BC7 na PC/konzolích, ASTC na mobilech) komprimují bloky
4×4 pixelů v poměru 4:1 až 8:1 a GPU je čte přímo z VRAM bez nutnosti dekomprese do RAM.
2. Mipmapping & Šetření propustnosti
Předpočítaná řada zmenšených verzí textury (\(1/2, 1/4, 1/8\dots\)) stojící pouze \(+33\%\) VRAM.
Zabraňuje třepetání pixelů (aliasing / texture shimmering) a šetří propustnost GPU
sběrnice načítáním miniaturních textur pro vzdálené polygony.
3.
Kompilace shaderů & PSO (Pipeline States)
Překlad vyšších jazyků (HLSL/GLSL) do binárního GPU mezikódu (SPIR-V, DXIL). V moderních API (D3D12,
Vulkan) se stavy pipeline předkompilují do PSO objektů, což zabraňuje zásekům při prvním
spatření nového efektu ve hře (Shader Compilation Stutter).
4. LOD (Level of Detail) & Nanite
Klasické diskrétní stupně (LOD0–LOD3) redukují počet polygonů vzdálených modelů. Moderní enginy (UE5
Nanite) přecházejí na mikro-polygonální geometrii (Meshlets), která plynule streamuje
detail sítě odpovídající přesně hustotě pixelů na obrazovce.
Přehled „Velké trojky“ na trhu
Srovnání platform
Hernímu průmyslu dnes dominantně vládne trojice prověřených univerzálních enginů:
UNITY 6
- Absolutní dominance na mobilním trhu (Android / iOS)
- Excelentní 2D i 3D podpora v jednom balíku
- Lídr v oblasti VR, AR a XR headsetů
- Obrovský Asset Store a trh práce (C# ekosystém)
- Data-Oriented Technology Stack (DOTS / ECS)
- Rychlý iterační cyklus a snadný vstup pro začátečníky
UNREAL
ENGINE 5
- Průmyslový standard pro AAA hry a high-end konzole
- Špičkový fotorealismus (Nanite geometrie, Lumen GI)
- Využití ve filmovém průmyslu (Virtual Production)
- Kompletní přístup k C++ zdrojovému kódu na GitHubu
- Robustní vizuální skriptování v Blueprintech
- Integrované AAA podsystémy (Chaos Physics, GAS, Mass)
GODOT 4
- Rychle rostoucí Indie scéna a aktivní komunita
- 100% Free a Open-Source (MIT): nulové poplatky
- Extrémně lehký (~60 MB portable editor)
- Čistá a intuitivní stromová architektura (Node Trees)
- Nativní dedikovaný 2D engine bez 3D projekce
- Jazyk GDScript s podporou C# a C++ (GDExtension)
Unity 6: Všestranný ekosystém
Nejrozšířenější herní engine světa pohánějící přes \(50\%\) všech mobilních titulů a více než
25 platforem.
Hlavní výhody (Pros)
Vysoká produktivita v C#: Moderní .NET CoreCLR / IL2CPP, rychlý vývoj a silný typový
systém.
Dominance v 2D, Mobile & VR: Bezkonkurenční optimalizace pro iOS, Android a Meta
Quest.
Bohatý Asset Store & Komunita: Statisíce hotových pluginů, modelů, shaderů a
tutoriálů.
Flexibilní architektura: Volitelný přechod z klasického OOP (MonoBehaviour) na vysoce
výkonný DOTS (ECS).
Hlavní nevýhody (Cons)
Fragmentace renderovacích pipeline: Přechod mezi Built-in, URP a HDRP způsobuje
nekompatibilitu materiálů.
Garbage Collection záseky: Správa paměti v C# vyžaduje pečlivý pooling, jinak hrozí
periodické propady FPS.
Uzavřený C++ zdrojový kód: Přístup ke zdrojovému kódu jádra vyžaduje nákladnou
Enterprise licenci.
Nestabilita API balíčků: Časté deprecations a experimentální stavy nových modulů v
Package Manageru.
Známé tituly:Hollow Knight, Genshin Impact, Cuphead, Beat Saber, Ori and the Will of the
Wisps, Subnautica
Unreal Engine 5: Špičkový fotorealismus
Nezpochybnitelný standard pro AAA herní produkci, filmový průmysl a vizualizace vyvíjený společností Epic
Games.
Hlavní výhody (Pros)
Fotorealismus v základu:Nanite (neomezená geometrie bez ručních LODů) &
Lumen (dynamické GI a odrazy).
100% přístup k C++ kódu: Kompletní zdrojový kód na GitHubu s možností přímých úprav a
debugování.
Bezkonkurenční Blueprints: Plnohodnotný visual scripting umožňující vytvořit
kompletní hru i bez psaní C++.
Kompletní sada AAA nástrojů: Niagara (částice), Chaos (fyzika), Control Rig
(animace), Mass AI.
Hlavní nevýhody (Cons)
Extrémní HW nároky: Vyžaduje špičkový vývojářský počítač (výkonné vícejádrové CPU,
rychlé NVMe, 32GB+ RAM).
Masivní velikost: Instalace >100 GB; finální herní balíčky mají běžně desítky až
stovky gigabajtů.
Strmá křivka učení: Komplexní C++ makra (UCLASS,
UPROPERTY), dlouhé kompilace shaderů a C++ kódu.
Nevhodný pro lehké 2D & casual mobily: Příliš velký engine overhead pro
jednoduché a minimalistické hry.
Známé tituly:Fortnite, S.T.A.L.K.E.R. 2, Cyberpunk (nový díl), The Witcher 4, Black
Myth: Wukong, Tekken 8
Godot 4: Open-source autonomie
Komunitou tvořený, nezávislý a 100% open-source engine vydaný pod plně svobodnou MIT licencí.
Hlavní výhody (Pros)
100% Free & MIT Licence: Žádné licenční poplatky, žádné povinné odvody, úplné
vlastnictví vytvořeného díla.
Extrémně lehký (~60 MB): Rychlé spuštění, portable bez instalace, běží i na
starším hardwaru.
Prvotřídní dedikovaný 2D engine: Skutečný pixelový 2D renderer s vlastními
souřadnicemi (nikoliv 3D projekce).
Strom uzlů (Node Trees): Vše je uzel a vnořená scéna; maximálně intuitivní a
modulární návrh.
GDScript a C#: Jazyk navržený pro herní vývoj s rychlým hot-reloadingem.
Hlavní nevýhody (Cons)
3D grafika zaostává za AAA: Chybí ekvivalenty Nanite/Lumen, 3D renderer je vhodný
spíše pro stylizované hry.
Chybí přímý export na konzole: Kvůli open-source povaze nelze šířit uzavřená SDK
(PlayStation/Xbox vyžaduje partnery).
Menší ekosystém Assetů: Asset Library je podstatně menší než komerční obchody Unity a
Unrealu.
Méně pracovních nabídek: Většina velkých herních studií stále vyžaduje primárně Unity
nebo Unreal C++.
Známé tituly:Brotato, Cassette Beasts, Dome Keeper, Slay the Spire 2, Buckshot Roulette,
Roadwarden
Srovnání technických parametrů
Technický přehled
Technický parametr
Unity 6
Unreal Engine 5
Godot 4
Architektura scén
GameObjects & Components / DOTS Entities
Actors & Components / Mass Entity
Strom uzlů (Node Trees & hierarchie scén)
Hlavní programovací jazyky
C# (.NET 8 / CoreCLR / IL2CPP)
C++20, Blueprints (Visual Scripting), Verse
GDScript, C# (.NET 8), C++ (GDExtension)
Renderovací jádro & Pipeline
URP (Forward+/Deferred), HDRP, APV
Nanite (micropolygony), Lumen (GI), VSM, RHI
Forward+ (Vulkan), Mobile (D3D12), Compatibility
Fyzikální engine (Physics)
PhysX 4.1 / Havok Physics / Box2D
Chaos Physics Engine (nativní multi-thread)
GodotPhysics 2D/3D (volitelně Jolt 3D plugin)
2D herní vývoj
Dedikované nástroje (Tilemapy, 2D Lights, SpriteShape)
Omezená podpora (Paper2D, primárně 3D engine)
Nativní 2D engine (pixel-space, 2D
světla)
Data-Oriented Tech (ECS)
Unity DOTS (Entities 1.0, Job System, Burst)
MassFramework (Mass Entity)
Standardně OOP uzly (experimentální pluginy)
Multiplayer & Networking
Netcode for GameObjects (NGO) / Netcode for Entities
Robustní Client-Server model & GAS (Gameplay Ability)
High-level Multiplayer API & RPC replikace
Velikost instalace / Editoru
~15–30 GB
> 60–120 GB
~60 MB (portable bez instalace)
C++ Zdrojový kód
Pouze s Enterprise licencí
Plný přístup (GitHub)
Open-Source (MIT Licence)
Licenční model
Předplatné per seat (Personal do $200k / Pro $2k+)
5 % royalty z tržeb nad $1,000,000
100% Zdarma (žádné poplatky)
Licenční a finanční modely
Při volbě technologie je nutné kalkulovat i finanční dopad při budoucím komerčním úspěchu:
Unity
Předplatné (Per Seat)
Personal edice je zdarma do limitu $200k ročních příjmů.
Při překročení limitu povinnost platit Unity Pro $2,000+ / rok za každého vývojáře v
týmu.
Unreal Engine
5% Royalty Fee
Kompletní nástroje i kód jsou zdarma pro všechny.
Epic si nárokuje 5 % z hrubých tržeb, ale až poté, co hra vydělá první
$1,000,000 USD.
Godot Engine
MIT Licence
0 % poplatků, navždy zdarma.
Žádné sledování příjmů, žádné royalty podmínky, absolutní vlastnictví vytvořeného díla.
Jaký engine zvolit pro váš projekt?
Typ projektu a cíle týmu
2D Hra / Indie 3D / Menší tým
Godot Open-source, bez poplatků, rychlý
vývoj
Unity C# ekosystém, bohatý Asset Store
AAA 3D / Fotorealismus / Velký tým
Unity Mobilní tituly, AR/VR, multiplatform
Unreal Nanite, Lumen, Blueprints, film
Vyberte nástroj podle silných stránek vašeho týmu a cílové platformy,
nikoliv pouze podle nejnovějších grafických ukázek.