.[ ČeskéHry.cz ].
Convoy
Jdi na stránku Předchozí  1, 2, 3, 4, 5
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Inkubátor
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
]semo[



Založen: 29. 07. 2007
Příspěvky: 1344
Bydliště: Telč

PříspěvekZaslal: 29. červen 2017, 08:45:31    Předmět: Odpovědět s citátem

Tak tak, seed se dá odvodit třeba podle tý pozice v mapě, nebo i vygenerovat randomem který už má pevný seed - ale to by s těma corrutinama nešlo. Leda bys ten seed vygeneroval předem. V práci generuju obrovský terény (čr i větší) po čtvercových tilech. Když třeba volím náhodně parametry domu, který je na hranici tilu, musí mít generátor domu v obou tilech taky vždy stejný seed (aby byly obě půlky stejný). V tomhle případě ale volím ID polygonu půdorysu.


Pár inspirací:

Pro velmi jednoduchý pseudo random se v shaderech používá tahle funkce:

kód:
float rand(vec2 co)         
{            
  return fract(sin(dot(co.xy, vec2(12.9898, 78.233))) * 43758.5453);
}


Na plnotučný random nedoporučuju, ale po úpravě bys tím mohl vytvářet seedy podle XY pozice v mapě.


Další možnost je zkombinovat X Y Z:
kód:

unsigned int randSeed =
         (unsigned int)abs(floor(pos.x())) ^
         (unsigned int)abs(floor(pos.y())) ^
         (unsigned int)abs(floor(pos.z()));   

nebo
kód:

unsigned int randSeed =
         ((unsigned int)abs(floor(pos.x())) << 16) |
         (unsigned int)abs(floor(pos.y()));


A když už sme u toho randomu, doplním ještě pár zajímavých věcí, který používám a jsou super. Pokud znáš/používáš...tak neva. Třeba si to přečte někdo jiný.

1) nelineární pravděpodobnost:

Když uděláš random od 0.0 do 1.0, tak všechny čísla v tomhle intervalu mají stejnou pravděpodobnost. Pokud ale ty randomy uděláš třeba 2 a vynásobíš je, tak už preferuješ hodnoty blíž 0. (jednou třeba vyjde 0.2, podruhý 0.75, ale vynásobením je výsledek 0.15).

2) výběr objektu na základě zadané pravděpodobnosti:

Řekněme, že máš array, který obsahuje třeba zbraně a chceš hráčovi nějakou náhodně přidělit. Přitom je v tom poli raketomet, který má dostat jen velmi vzácně. A tu vzácnost potřebuješ navíc ovládat podle game designu. Je velmi dobrý napsat si na to obecnou funkci "ProbabilitySelect", která funguje následovně:
- Pro každý objekt v poli máš danou pravděpodobnost jako číslo (int, nebo float..). Může to být druhý pole, property nebo třeba callback funkce.
- nejprve sečteš dohromady pravděpodobnost všech objektů dohromady (S)
- pak uděláš random R v intervalu 0..S (součet pravděpodobností)
- pak procházíš pole objektů a od R odečítáš pravděpodobnost konkrétního prvku v poli
- až R klesne na 0, máš výsledek

Jen i zde musíš myslet na seed (klidně předávat System.Random jako volitelný parametr ProbabilitySelectu).

3) Gaussian Random
Odchylky, který mají vypadat přirozeně, by se měly generovat s normální distribucí. Třeba generuješ stromy (na poušti teda asi spíš kaktusy:) ) a chceš nějakou určitou velikost se zadanou odchylku. Tady je teorie https://cs.wikipedia.org/wiki/Norm%C3%A1ln%C3%AD_rozd%C4%9Blen%C3%AD
a nějaká C# implementace:
https://stackoverflow.com/questions/5817490/implementing-box-mueller-random-number-generator-in-c-sharp
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
micky



Založen: 28. 02. 2008
Příspěvky: 303
Bydliště: Plzeň, Praha

PříspěvekZaslal: 29. červen 2017, 09:28:31    Předmět: Odpovědět s citátem

Hehe, semo jeste jednoho dne napise knihu pro vyvojare-samouky. Smile
_________________
http://www.bluepulsar.cz/
https://twitter.com/bluepulsargames/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
]semo[



Založen: 29. 07. 2007
Příspěvky: 1344
Bydliště: Telč

PříspěvekZaslal: 29. červen 2017, 11:36:21    Předmět: Odpovědět s citátem

...Jen ji nikdo nebude číst :-)
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VODA



Založen: 29. 07. 2007
Příspěvky: 1656
Bydliště: Plzeň

PříspěvekZaslal: 29. červen 2017, 18:16:42    Předmět: Odpovědět s citátem

...A já bych jí četl...
_________________
Opravdovost se pojí s trýzní.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
joeblack



Založen: 14. 09. 2009
Příspěvky: 65

PříspěvekZaslal: 30. červen 2017, 09:38:02    Předmět: Odpovědět s citátem

Kniha ! kniha !
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Poky



Založen: 29. 06. 2009
Příspěvky: 181
Bydliště: Písek / Plzeň

PříspěvekZaslal: 2. červenec 2017, 17:24:01    Předmět: Odpovědět s citátem

micky napsal:
Hehe, semo jeste jednoho dne napise knihu pro vyvojare-samouky. Smile


To bude pro vývojaře SEMO-uky Laughing

PS: Já bych jí taktéž četl.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
skiparktycoon



Založen: 15. 03. 2012
Příspěvky: 146

PříspěvekZaslal: 2. červenec 2017, 21:29:25    Předmět: Odpovědět s citátem

Já bych si jí semozřejmě také přečetl.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
]semo[



Založen: 29. 07. 2007
Příspěvky: 1344
Bydliště: Telč

PříspěvekZaslal: 3. červenec 2017, 09:13:27    Předmět: Odpovědět s citátem

Díky za přízeň, byla by to jistě velmi srandovní kniha :-).

Aby tu nebyl takový offtopic, tak prosím případné další zájemce o knihu aby psali SZ. Pošlu obratem číslo účtu a můžete si knihu za několik málo tisícovek zarezervovat :-D
_________________
Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
skiparktycoon



Založen: 15. 03. 2012
Příspěvky: 146

PříspěvekZaslal: 11. říjen 2017, 08:59:55    Předmět: Dlouhá pauza Odpovědět s citátem

Po výrazně prodloužených prázdninách jsem se konečně donutil ke hře vrátit.
Při prvním spuštění na mě vyskočili hned tři bugy: silnice jak na horské dráze, auťák zabořený čumákem do písku jak pštrosí hlava a v kabině vybuchl gejzír respawnovanejch panáků jak v dopravní špičce v tramvaji.

Jako by se mi to chtělo pomstít za to dlouhé zanedbávání.

Nicméně. Ve hře už je možný progres kampaní. Mise se dá dohrát (dojet na konec). Přidělí se kredity, XP body. Za ty se dá dokoupit vybavení a vytrénovat posádku a jít do další mise.[/img]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Inkubátor Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5
Strana 5 z 5

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna