[Seriál] Generujeme herní úrovně, 5. díl

V posledních dnech jsem se trochu zajímal o generování herního světa ve hrách, jako je například populární Minecraft. Není žádným tajemstvím, že tyto hry používají pro generování svých světů náhodné šumy, nejznámější je určitě Perlinův šum. Sám jsem o této problematice nic nevěděl, ale ve výsledku je to velice implementačně velice jednoduchá záležitost (optimalizačně je to trochu složitější). Pojďmě se proto podívat na to, co to je Perlinův šum, jaké má výhody při generování herních světů a na algoritmus, jak si takový šum naimplementovat.

Pokračování textu [Seriál] Generujeme herní úrovně, 5. díl

[Seriál] Generujeme herní úrovně, 4. díl

Když jeden z mých kamarádů viděl generátor z posledního dílu, poznamenal: „Jako dobrý, ale je to hrozně předvídatelný, jak to vždycky jde dolů“. Přestože jde o generátor původem pro plošinkovku a směr „dolů“ je poměrně logický, řekl jsem si, že by nebylo na škodu si s generátorem ještě trochu pohrát a pokusit se přijít s něčím, co by bylo pro změnu vhodné do nějaké střílečky. A při vymýšlení postupu jsem se propracoval i k takovým chuťovkám, jako je třeba algoritmus RED pro balancování zátěže na síťových přepínačích.

Pokračování textu [Seriál] Generujeme herní úrovně, 4. díl

[Seriál] Generujeme herní úrovně, 3. díl

Znáte hru Spelunky? Jde o celkem populární 2D roguelike plošinovku a jako každá správná plošinovka, i tahle má procedurálně generované úrovně. Na rozdíl od jiných, podstatně nahodilejších roguelike her, je poměrně dost obsahu Spelunky tvořeno ručně a naroubováno na náhodný generátor. Je to realizováno skrze blueprinty, pečlivě vytvořené návrhy, které generátoru říkají, jak mají vypadat celé sekce úrovně a generátor pak úroveň seskládá z těchto blueprintů. Jak? To popíšu v dnešním článku.

Pokračování textu [Seriál] Generujeme herní úrovně, 3. díl

[Seriál] Generujeme herní úrovně, 2. díl

V předchozím dílu jsem předvedl jednoduchý algoritmus pro vytváření náhodně generovaných bludišť. Dnešní díl předvede, jakým způsobem se tento algoritmus dá upravit, aby generoval uzavřené místnosti, propojené mezi sebou dveřmi takovým způsobem, aby bylo možné se do každé místnosti dostat.

Pokračování textu [Seriál] Generujeme herní úrovně, 2. díl

Kostra grafu – algoritmus

Jako doplňkový článek k seriálu o generování videoherních úrovní si dovolím uvést algoritmus pro hledání kostry grafu. Ten se může občas hodit, pokud nechceme, aby v naší úrovni existovaly smyčky – hráč by mohl chudák chodit pořád dokola. Najití kostry grafu (a následné přizpůsobení úrovně) zajistí, že hráč bude mít k dispozici odbočky, ale do cíle bude existovat právě jedna cesta.

Pokračování textu Kostra grafu – algoritmus

[Seriál] Generujeme herní úrovně, 1. díl

Napadlo mě, že by mohlo být zajímavé udělat seriál o různých algoritmech, které můžete použít ve svých hrách pro generování úrovní. Pochopitelně nejlepší hry používají velice specifické algoritmy, často na míru dělané, trocha inspirace ale nikdy neuškodí. Všechny mapy jsou „tile-based“, což znamená, že jsou tvořeny čtverci (přesněji řečeno obdélníky). Zajímá vás to? Čtěte dál!

Pokračování textu [Seriál] Generujeme herní úrovně, 1. díl