Diskuze: Machr na algoritmy - Náhodný dungeon
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 50 zpráv z 101.
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Může to být i mapa více ostrovů ve větším měřítku?
Tak už nic. Viděl jsem Luboš Běhounek Satikův výtvor a začal jsem dělat na
indoor
Záleží na i na provedení algoritmu, nebo jenom na tom, co vyplivne? Myslím například, jestli je v pořádku generování jedné jeskyně pomocí cyklu s (pevné zadaným) počtem iterací kolem 50?
Já bohužel asi taky ne ,
pokud učitel nezadá další úkol, možná jo
Na iteracích není nic špatného, myslím, že hlavní je výsledek .
Tak jsem vyvinul taky jednu variantu.
Generuje vnitřek jeskyně s výškovou mapou ( odstíny šedi ),
zatopené části s různou hloubkou ( odstíny modré ) a navrhuje
schéma průchodnosti z náhodného bodu na okraji ( červené výplně ).
Ať už to tady uspěje nebo ne, láká mě vytvořit si z té mapy
prostorovou simulaci skutečné jeskyně. Až bude čas, tak to
zkusím.
Dneska mě napadl ještě jiný algoritmus, ale asi ho už nestihnu
realizovat, protože je časově náročnější ho napsat. Ale uvidím,
třeba mi to nedá a nějaký čas na to najdu.
Samozřejmě, udělej to jak chceš, nehraje se ani na efektivitu, hlavně na výsledek a aby se ten kód dal trochu číst.
To je pěkný Kdybys
vyhrál, umí GM zpracovávat parametry, aby šel generátor použít jako
externí utilitka pro další projekt?
Tu je ten generator.
Cesty a reky by to chtelo predelat, ale uz se mi s tim nechtelo delat
http://leteckaposta.cz/396621499
http://www.itnetwork.cz/…hraci-plochy
Zde byl přidáná (až se schálí) nová verze algoritmu který je pro tuto
soutež finální .
Má tvořit jeskynní systém.
Umí přibližné nastavení počtu místností a jejich velikost. Generuje
jeskyni a vodu (ve dvou verzích - průchozí neprůchozí), má mod alternative
který spočítá a seřadí všechny jeskyně do oblastí které jdou
projít.
Tak, ukázky z toho, co jsem dnes udělal. Snad to do zítřka stihnu.
Jen tak pro zajímavost, obrázky 2 a 3 jsou generovány pomocí stejného
algoritmu (a ten se mi vlastně ještě nepovedl tak, jak jsem chtěl ), jsou pouze jinak
obarvené.
https://dl.dropbox.com/…9/Ukazky.zip
Tak mám něco podobného. Už jsem vyzkoušel asi pět algoritmů, ale ani jeden nesplnil očekávání, tak doufám, že se ten na kterém dělám teď povede. Snad to stihnu.
Další ukázka. Momentálně přepisuju strukturu programu, protože je už
dost nepřehledný a těžko rozšiřitelný.
https://dl.dropbox.com/…9/Scren4.bmp
Ahoj, <a href="https://dl.dropbox.com/u/109146859/Generator%20Salatik.zip">zde</a> je ke stažení můj generátor. Jelikož mám ještě dost věcí do školy, je to nejspíše moje finální verze. Je zrovna ve fázi předělání, takže je tam spousta kódu (i některé třídy) navíc a je to dost nepřehledné. Snad se v tom budete alespoň trochu orientovat.
A jak je zvykem, tak i moje dílo:
http://dl.dropbox.com/…enerator.zip
Po mapě se můžete pohybovat, více v info souboru.
Malá ukázka...
Tak jsem dávám to co jsem naprogramoval. Zelené jsou nížiny, šedé hory, černá sopka, červená láva v sopce, oranžové obyvatelstvo, zelený je les, modrá je jako obvykle voda. Řeka má deltu a teče z hor. No na výhru to nevidím, aspoň dobrá zkušenost.
Ale poprvé v historii lidstva pramenní řeka ze sopky, to je důležitý
prvenství
Začíná na původně šedém, což je hora...
Omlouvám se za 3 minuty zpoždění. Poslední verze tady. https://www.dropbox.com/…c/NtbOSslJ-r
Ale vypadá to na pěknou porážku. Alespoň sem se zabavil
A ten kod je hrozný. Spěchal sem, takže tam zatím nejsou ani
komenty.
Možná by bylo lepší kdyby to nebyla taková šachovnice
Tak my jdeme stahovat, ale mám pocit, že tu nejsou všechny zdrojáky. Ty
samozřejmě k hodnocení potřebujeme, jinak by se to mohlo nakreslit v
malování
Jasně, přidávám.
Generátor je momentálně postaven jako semiautomat
tzn. jednotlivé fáze generování jsou spouštěny klávesnicí.
Typický postup je R, M, W.
Kde:
R vytvoří základní náhodný vzor,
M vytvoří mapu
W neprůchodné oblasti ohraničující místnosti
Mezi R a M lze použít E, +, - a některé funkce
má smysl spustit i vícekrát.
P generuje schéma průchodnosti.
Stav datových polí mapa a cesta lze uložit
do txt souborů kdykoliv. Soubory mají pevný
název a přepisují se.
Sorry, já jsem zde zapoměl hodit zdroják:
http://uloz.to/…eratorvb-zip
generuje se klikem na formulář.
Pro mne jsou Dungeony spojeny s hrama jako byly Beholder, Dungeon Master. Tedy podzemí s chodbami. Teď jsem si vzpomněl ještě na Ultimu Underworld I. a II. Přikládám mapu jak vypadalo bludiště v 10patře Dungeon Master I. Myslím si, že jestli má být hra zábavná, je potřeba aby byly i mapy dobře promyšlené. Generátory jsou sice fajn, ale už Vám nevytvoří příběh, logiku, posloupnost a pod.
To ne, ale mohou výrazně pomoci při vytváření prostředí, člověk
zvládne udělat ve stejném čase hru mnohem delší a propracovanější tím,
že upravuje vygenerované světy Jinak hra Minecraft je generovaná a je zábavná
To byly skvělé hry a já si dobře uvědomuji omezení,
která s sebou generátory přinášejí. Na druhou stranu
je třeba říct, že generovaná místnost jde ručně osadit
příšerkami, pastmi i příběhem.
Jinak tahle společnost dělá skvělé dungeony: http://redshift.hu/, strávil jsem
na nich dost času
Ještě pro jistotu, máme tu výtvory od: brisingr002, hartrik, martinsakra,
misaz, salatik, satik, tomben. Na nikoho jsem nezapomněl? Jak je to tu
rozházené tak se v tom trochu ztrácím
Ono při 2d poli o velikosti 50x50 a trochu vetší členitosti krajiny je těžké, aby čtverečky nevypadaly jako čtverečky. Zkus buď mapu zvětšit, nebo si pohrát s parametry (méně lesa a bažiny).
Na kódu není nic hrozného. Asi jsi neviděl ten můj (vyznám se skoro
lépe v tom tvém . Ale už
dělám kompletní aplikaci znova a (snad) i mnohem lépe.
já vím, taky se mi to u testování dělo. Nicméně by se hodilo to nějakým algoritmem ošetřit, když už dáváš uživateli ty posuvníky.
Takže, jak jsem již řekl, kvůli rozmanitosti soutěže budeme rozdávat 2 placky, za indoor a za outdoor. Algoritmy jsou totiž odlišné a bylo by velmi těžké hodnotit indoor vs. outdoor. Dnes jsem si k sobě nikoho nestihl sehnat, takže jsem na to sám, napíšu vám alespoň krátký komentář k jednotlivým aplikacím.
Outdoor generátory
1. Satik - Skvělá práce, dokáži si na tom představit hratelnou hru.
Máš před ostatními obrovský náskok, program je velmi propracovaný.
2. brisingr002 (8 bodů) - Vidím v tom takový čtvercový vzor, ale docela
dobře jsi oddělil části s vodou a pevninou.
2. Salátik (8 bodů) - Pěkné, ale všechny složky jsou velmi vyrovnané,
chybí mi souvislé kusy pevniny a lesů.
2. misaz (8 bodů) - Dobrý nápad, ale máš opačný problém, jako tví
kolegové, výsledky jsou příliš předvídatelné.
Indoor generátory
Tady to bylo velmi vyrovnané, nejraději bych dal placku všem, ale pak by
soutěž ztratila smysl
1. Hartrik (10 bodů) - Mno, co tomu vytknout? Řešil jsi i místnosti, rovná
železnice, klikaté chodby, fakt super!
2. TomBen (9 bodů) - Zajímavý nápad s těmi kruhy, vypadá to dobře.
2. martinsakra (9 bodů) - S nastavením 25 a 25 to generuje opravdu velmi
dobré prostory, moc se mi to líbí. Škoda že prostory nejsou vždy
propojené, ale za to body nestrhávám.
Machry si tedy odnášejí Luboš Běhounek Satik a Hartrik, gratuluji! A
ostatním taky, umíte kluci, mám z vás radost
Chápu. Ale jak už jsem psal, neměl jsem moc času. V příští verzi asi ošetřím, i když na druhou stranu je zase dobré, když má uživatel trochu volnosti. Jinak díky za zpětnou vazbu.
O to jsem se, ale snažil. Aby to nebyl takový "mišmaš" všecho na kupě. Nevadí, skusím příště.
Díky a gratulace Luboš Běhounek Satik
Mimochodem, řešil jsem i světla
Gratuluji. Máš to jednoduché a přitom velmi dobře propracované.
Skvělá práce.
Co přesně myslíš čtvercovým vzorem? Je to náhodně generované.
Jinak díky a Hartrikovi také gratuluji
Přechody mezi oblastmi jsou často rovné (jako čára), působí to trochu nepřirozeně.
Gratuluji vítězům. A ujištiju vás že svůj algoritmus ještě
vylepším. Vrátím se zpět ja jednu místnost a udělám z něj krásný
generátor na sokoban jen co na to bude čas.
To je jen krátkým časem při generování náhodné výšky políčka mapy. Pokud bych tam dal uspání vlákna, hned by se to trochu promíchalo. Schválně jsem to tam ale nedával, protože by se to generovalo příliš dlouho.
Zobrazeno 50 zpráv z 101.