• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    CYBERWOLFOn-line WebBased hry kreativně - udělejte si vlastní webovku!
    Hráli jste někdy nějakou webovku a napadlo Vás někdy udělat si nějako vlastní?
    Máte nějaký nápad na bezva hru a neumíte ho realizovat?
    Nebo umíte skvěle programovat webové aplikace, ale nemáte nápad na dobrou hru?
    Nebo namáte ani jedno a umíte cokoliv jiného, co by mohlo při tvorbě hry pomoct (malovat, dělat hezky vylížející html stránky, jakoukoli grafiku, nebo jste matematický génius, prostě COKOLI)
    Pokud Vám vyšla alespoň jedna kladná odpověď, jste tu správně!

    domenu radeji stylem

    17 hlasy od 17 respondentů

      rozbalit záhlaví
      TRANCEWARP
      TRANCEWARP --- ---
      CYBERWOLF: sorry, embargo ;)

      WEWERKA: hratelna beta = ostrej launch ;) nic si nepreju vic...

      neco jako nedodelanou betu vubec nebudeme spoustet, myslim, ze to neni dobra cesta...
      CYBERWOLF
      CYBERWOLF --- ---
      TRANCEWARP: diky za podporu :)

      nejake blizsi info k te top5 onlineovce by nebylo?
      TRANCEWARP
      TRANCEWARP --- ---
      CYBERWOLF: drzim palce, ja uz pocitam stovky stohodinovejch projektu... ;DD

      ted sem naimplementoval podruhy hlavni mapu, docela slusnej hell, ale aspon uz je to velice optimalni komponenta... bude to uplnej ulet, je to krasny a se soucasnym stavem onlineovek ve svete bych rek, ze se urcite zaradime to top5
      CYBERWOLF
      CYBERWOLF --- ---
      kdyby nekoho zajimal aktualni stav 100-hodinoveho experimentu:

      Straveny cas: cca 50 h
      - parser zpracovava kod docela obstojne - jen za tim neni zdaleka kompletni api.
      - rozdelenim na textovou a skriptovou cast se to cele dost zjednodusilo, presto je to porad "konzolove", ale nejaky vymazlenejsi interface budu delat az casem.
      - zmenil jsem pristup k postavam a jejich zapojovani do dobrodruzstvi. Kazda postava je vlastne jen sada zakladnich vlastnosti, jmeno, popis a obrazek. Pri zapojeni do dobrodrustvi se vytvori kopie tohoto zakladu, ktere se zaplni inventar zakladni vetesi a pripadne se naleveluje. Odmenou za odehrani dobrodruzstvi jsou trofeje - z inventare na konci si hrac vybere jednu vec, kterou pak muze pridavat tehle postave do zakladni vybavy pri dalsich dobrodruzstvich.
      - inventar je zatim predevsim na papire :)
      - zacinam delat blbosti jako kalkulacku prepocitavajici cas v libovolne soustave (jako kdyby chtel nekdo svet s jinym nez 24 hodinovym dnem a tak), coz je sice hezke, ale rozhodne ne klicove.
      - rekl jsem si, ze udelam i genericky soubojovy system, aby se souboje nemuseli resit nejak krkolome pres nody (coz by slo a puvodne jsem to tak myslel), ale dospel jsem k zaveru, ze to pro zacatek neni potreba a ze jenom to by sezralo zbylych 50 hodin.

      Dokonceni do 100 hodin vidim jako mozne, pokud se ovsem neutopim v blbostech jako casova kalkulacka, soubojak a jine.
      CYBERWOLF
      CYBERWOLF --- ---
      Nicmene...kdyz si s tim ted trochu hraju, dospel jsem nakonec k zaveru, ze lepsi bude skript rozdelit na textouvou a funkcni cast. To znamena, ze bude funkcni cast, ktera bude provadet oparace a ukladat vysledky do promennych, se kterymi se pak bude pracovat v textu.

      Na zapis skriptu by se potom celkem rozume dalo udelat neco jako jsem zminoval
      CYBERWOLF a na vkladani do textu by se dal pouzit editor jako http://markitup.jaysalvat.com/examples/wiki/

      Ale to zatim docela dost predbiham udalostem :)
      CYBERWOLF
      CYBERWOLF --- ---
      Jasne, taky nepocitam s tim, ze hra, ktera je hybrid gamebooku a Stinu nad Rivou, byla pro kdovi jak sirokou cilovku (jako FarmVille). Ono na to, aby se to dalo hrat, cloveku bude stacit precist (a ani to ne uplne nezbytne) a kliknout na jednu z moznosti pod textem, tohle ma slouzit k tomu, aby lidi mohli hru sami rozsirovat a pokud to ma byt trochu mocnejsi, tak UI na jedno kliknuti proste neudelam :)

      Muj ideal je neco jako triggery ve WarCraftu 3, ktere byly dostatecne mocne na to, aby se se hrou dalo udelat prakticky cokoliv a soucasne dostatecne srozumitelne, aby to pochopil dostatek lidi na to, aby chrlili jednu custom mapu za druhou.

      Pro predstavu, to vypada takto:

      Vsechno se da naklikat ze seznamu a je to vubec dost user friendly.

      A ve skutecnosti je to skript v jakesi java-odvozenini a a mazaci pracuji s tim, protoze je to jeste mocnejsi.
      ETHAN
      ETHAN --- ---
      CYBERWOLF: Neprogramátor se ti z toho zblázní. Pokud to nepůjde naklikat a nebude to dávat smysl člověku, který v životě neviděl vývojový diagram, tak to je UI akorát tak pro linuxáky :o) Hry typu farmville a podobně hraje třeba moje máma nebo přítelkyně a mohu tě ujistit, že tohle je nad jejich schopnosti, respektive nad jejich ochotu se to naučit. Raději si zahrají něco jiného.

      Nemyslím to zle, ale pokud je cílem nalákat co nejvíce lidí, tak UI musí být intuitivní a "lidské". Jeden můj kamarád měl kdysi mánii, kdy chtěl, aby články lidé psali přímo v DocBooku. Lidé, kteří sotva zvládli ovládat prohlížeč. Moc se to nechytlo. Naopak dobré UI je třeba vkládání odkazů na Facebooku. Přijde moje máma, Vloží tu adresu, co vidí nahoře na stránce, která se jí líbí do toho políčka na facebooku a najednou kouzlo - odkaz je krásný, často i s obrázkem a titulkem a to všechno pomocí magie ;o)
      CYBERWOLF
      CYBERWOLF --- ---
      TENCOKACISTROMY: jako rejpani to neberu, naopak tyto podnety vitam :)

      Je to fakt nahodne - pokud je nejhorsich vic, vyberou se vsechny a z nich se nahodne vybere jedna (pokdu bych chtel ovlivnit vic postav, tak na to mam vymyslenou metodu each(), ktera proveden danou operaci na kazde postave odpovidajici podmince)

      Co se tyka vymysleni kola a pekne API - v podstate to, o co se tu pokousim je "pekny" API, jen z bezpecnostnich duvodu nechci, aby to byl zapis v nejakem jazyce, ktery browser nebo server interpretuje (a proto jsem si vymyslel tuhle teckovou notaci a parser, ktery z "Party.getWorst(OB).dropItem(handr)" udela "$Party->getWorst('OB')->dropItem('handr')" a zarve kdyz se mu nekdo pokusi nacpat neco nepatricneho)
      TENCOKACISTROMY
      TENCOKACISTROMY --- ---
      CYBERWOLF: To jako fakt "nahodne" :)? A nebo "prvni co mi prijde pod ruku"? Tenhle zpusob rozdelovani je dost osemetnej, lehce se pak stane to ne nejakej hrac schyta vickrat za sebou, a bude mu pripadat, ze to je nespravedlivy.

      1) Mas bezny znaky na cesky klavesnici, ktery zvladne kazdej (cti: kazdej, kdo ma ambice se hrabat ve skriptech) - uvozovky, kulaty zavorky, tecka, carka, vykricnik, atd... Imho s trochou prace a omezenou funkcnosti (jednoduche veci by meli jit jednoduse, slozite veci by mely byt mozne, ale jen do urcite urovne).

      Teckova notace je imho prilis programatorska.

      2+3) Nevymyslet kolo a pouzit neco existujiciho? Pripadne - je opravdu nutne, aby si hraci mohli definovat vlastni dobrodruzstvi v tak moc user-friendly prostredi, aby to zvladnul i laik? Nestalo by za to, do tech 100 hodin zaimplementovat nejaky klasicky skriptovani (lua, javascript, atd...) a k tomu udelat jen "pekne" API?

      // neber to jako rejpani, jen vypoustim myslenky, ktery me k tomu napadaj :)
      CYBERWOLF
      CYBERWOLF --- ---
      TENCOKACISTROMY: V pripade, ze ma vic postav nejnizsi OB se nahodne vybere jedna z nich.

      O takovehle slovni syntaxi jsem take uvazoval (vzpomel jsem si na takovy program na ZX spektru, kde se zadavaly povely robotovi, on je provadel a melo to lidi hravou formou ucit programatorsky uvazovat), ale z nekolika duvodu jsem to zavrhl:

      1) mezery mezi slovy - pri pouziti v textu je problem rozpoznat, kde zapis zacina a kde konci, takze by bylo potreba to uzavrit mezi nejake zavorky/uvozovky/neco (a jelikoz bych chtel vystacit se znaky snadno dostupnymi na ceske klavesnici, je to problem).

      Pri pouziti teckove notace mi staci oznacit zacatek (zatim se mi jako idealni jevi zacinat __ ).

      2) vic zpusobu, jak to napsat navic je potreba porad dodrzovat nejakou strukturu zapisu, coz uz neni takovy rozdil oproti tomu naucit se syntaxi s teckou.

      3) kdybych chtel takovy zapis udelat alespon tak volny, jako je SQL, tak tech 100 hodin padne jenom na parser.
      TENCOKACISTROMY
      TENCOKACISTROMY --- ---
      CYBERWOLF: co kdyz tam budou dve postavy, ktere maji obe stejne nejnizsi "OB" ?

      Pokud chces neco, co uzivatelum bude prijemny (teckova notace imho nebude, pac obyc uzivatel nema nejmensi poneti co to je funkce/metoda a jeji parametry), tak jsem na codeprojectu videl clanek, kde spravnejma nazvama metod a objektu vytvoril +- english-like jazyk, kterej fungoval zhruba takto:
      create and show window
      add label to window
      label has "hello world" text
      add button to window
      button has "ok" text
      if is button clicked close window
      
      CYBERWOLF
      CYBERWOLF --- ---
      Pokousim se dnes zas nacpat nejakou tu hodinu do te "stohodinove" hry a zrovna si lamu hlavu nad syntaxi pro uzivatele, kterou by skiptovaly jednolive casti dobrodruzstvi.

      Idea je takova, ze budou (pseudo)objekty s (pseudo)fluent interfacem, pomoci kterych se budou jednotlive operace provadet.

      Napr. pokud budu chtit, aby postava s nejmensi obratnosti (OB) ve skupine upustila to co drzi v prave ruce (slot inventare pojmenovany "handr") tak napisu neco takoveho:

      Party.getWorst(OB).dropItem(handr)

      Objekt Party mi tedy vybere clena skupiny s nejhorsi vlastnosti OB (vrati objekt PartyMember) a zavola na nem metodu dropItem, ktera rika, ze se ma zahodit predmet, co drzi v prave ruce.

      Na prvni pohled to vypada krasne, ale co kdyz to budu chtit nejak vypsat do textu? To by potom chtelo, aby tahle operace neco vratila, ale ma to byt predmet, nebo clen skupiny a ma to byt objekt, nebo jen nazev? A dokaze se s tim naucit obycejny uzivatel s trochou dobre vule, ale bez jakychkoliv zkusenosti s programovanim?
      CYBERWOLF
      CYBERWOLF --- ---
      Ja to hraju vetsinou ze zvedavosti, ale uznavam, ze se na to nejspis divam trochu jinak nez vetsina hracu :)

      Silu ega rozhodne nepodcenuji, ovsem je to celkem dvojsecna zbran, zejmena u kontinualnich her. Na jedne strane jsou ti "dorbi" hraci, co maji fakt dobry pocit, ze jsou dobri a ze se muzou predhanet s temi par dobrymi na jejich urovni.

      A pak jsou tu zacatecnici/prilezitostni/lamy, kteri at budou delat cokoliv, tak ty dobre proste nedozenou. Cili jejich ego narozdil od predchozich neni masirovano, ale srazeno a to ne kazdy dobre snasi.

      Kdyz odstranime zebricky a budeme k sobe davat hrace na primerene urovni a vlastne ani neukazeme ty o moc lepsi/horsi, zustane jista zdrava soutezivost, ktera malokoho odradi.

      A kdyz udelame hru, kde se neda rict, ze ten a ten je kdovi jak lepsi, protoze kriteria hodnoceni zalezi na kazdem hraci (treba farmville - jako jo, kamarad ma sice na farme 150 krav, 5 stodol a traktor, ale ta moje farma s kurnikem a par slipkama je takova hezci), tak si kazdy stavi svuj hrad z pisku, je s nim spokojeny a ostatni mu ten hrad nebori, maximalne si vzajemne vypomahaji (a vsichni ziji stastne az do smrti)

      A dle meho je tohle hlavni duvod (vedle prilivu novych hracu), proc ma farmville vic kazdodennich hracu nez australie obyvatel :)
      TRANCEWARP
      TRANCEWARP --- ---
      CYBERWOLF: pekne si to rozebral, jen co je pravda... ja se omlouvam, ze nenapisu podobne dlouhej post...

      rozhodne si trefil spravne ty rozbory ohledne penez atd, souhlas...

      nicmene nepodcenuj silu ega... ;) to je opravdu ten nejvetsi tahak... proc to vlastne hrajes? protoze muzes hrat? nebo proto, ze to muzes dotahnout dal? ;)
      CYBERWOLF
      CYBERWOLF --- ---
      Dovolím si zas podat menší raport ohledně průběhu svého 100-hodinového experimentu:)

      Strávený čas: cca 32 h
      - parser na zpracování uživatelského vstupu je pořad stejně rozpracovaný (tj. ani jsem na to nesáh)
      - tvorba postav je funkční (i když bych netvrdil, že je hotová)
      - základní práce s dobrodružstvími (seznam, zakládání, úprava základních údajů)
      - začal jsem pracovat na samotném vytváření dobrodružství, tj. jednotlivých vzájemě propojených uzlů s obsahem a prováděním nějakých operací.

      S čím si teď trochu lámu hlavu je, jestli řešit souboje také přes uzly, nebo udělat nějaký soubojový systém, ovšem tady si moc nedokážu představit, jak to udělat tak, aby se tam daly jednoduše vpravit uživatelské věci.

      Asi největší bochník, co mě čeká, bude udělat knihovny, které budou přístupné přes jakési API pro uživatele a díky kterým budou moct hru vlastně celkem jednoduše naskriptovat - na to si počítám tak 50 hodin.

      Co mi ale připadá celkem tragické, je že jsem na tom odpracoval 32 hodin za 72 dní a z toho byla většina v prvním týdnu... tohle dělání o víkendech fakt za moc nestojí...
      CYBERWOLF
      CYBERWOLF --- ---
      TRANCEWARP: Nejak si nedokazu predstavit jak - z ceho poznas, jak na tom jsi ve srovnani s ostatnimi? Presneji receno, z ceho poznas, ze jsi lepsi nez nekdo jiny? Jak vubec muze clovek ukazat, jak moc je v te hre dobry?

      Social hooky dle meho nove hrace neziskaji, spis udrzi ty stavajici. Naopak, vetsina lici co danou hru nehraje ty spamovaci posty na zed a pozvanky neuveritelne serou (a pulka uzivatelu facebooku nevi, ze si to muze zablokovat). Jasne, obcas se urcite nekdo chyti, zrovna na tohle, ale hlavni priliv hracu je dle meho urctie ze ziskavani sousedu (mafianu atd.), protoze prave to je neco, co Zynga podporuje stale vic (a vic spamovat zdi uz tezko muze :) ).

      Kdyz to vezmu podle sebe, tak minuly tyden jsem vlezl na facebook, kouknul na mafii, zjistil ze za tu dobu, co jsem tam nebyl pridali dalsi mesto, kde padaji super veci, bezi casove omezeny event, kde se daji ulovit jeste lepsi veci a navrch zacina dalsi, kde jsou jeste lepsi veci a navic muzu tocit na vyhernim automatu a vyhravat reward pointy zadarmo... a uz v tom zase jedu.

      Pritom moje analyza motivace z tehle veci je nasledujici:
      * Nove mesto, super veci - vylepsim si mafii a nebudu dostavat tolik na budku, navic muzu rychle levelovat a tim padem i vic hrat
      * splnenim casove omezeneho eventu muzu ziskat 3 super veci, ktere nikdo kdo to neda mit nebude (jsou exkluzivni a je to vyhoda) navic par bodiku na vylepseni postavy. K tomu potrebuju sbirat veci, ktere na plneni toho ukolu potrebuju. Kazdy den jich dostanu 25 a za kazdeho dalsiho zrekrutovaneho mafiana +5 (do max poctu 6 ulovenych lidi) a dalsi mi muzou posilat lidi, co mam v mafii (cimz nuti lidi shanet hrace i stavajici hrace si vypomahat)
      * druhy casove omezeny event je o porazeni bossu v boji. Z kazdeho bossa pada jedna (exkluzivni vec) a s dalsi porazkou se vylepsuje (vetsi vyhoda). Hacek je v tom, ze bossove jsou cim dal silnejsi a na ziskani veci na vyssi urovni musi clovek (pres zed) primet lidi co ma v mafii aby mu pomohli a 5 nejaktivnejsich pomocniku dostane tuhle exkluzivni vec jen za to, ze pomohli (neziskavam nove lidi, jen stare hrace upozornim, ze se neco deje a zapojim je do toho).
      * nakonec vyherni automat, kde se da hrat zadarmo a vyhrat reward ponty (ktere se muzou vzdycky hodit). Tocenim na automatech u kamaradu muzu vyhrat dalsi toceni zdarma. Kdyz mi dojde toceni zdarma, muzu tocti za reward pointy, sazet body navic a dostat sanci na vyssi vyhru (a vzhledem k tomu, jak vyherni automaty funguji, se da ocekavat, ze rada lidi takhle prohraje vic RP nez vyhraje)

      Ted se zamysleme, jak tohle Zynga zpenezi. Jediny zdroj prijmu jsou rewardpointy - at uz se nakupuji primo, nebo jsou jako odmeny pres nejake partnery. Je tedy potreba, aby bylo co nejvic hracu a ti byli ochotni body utratit. Jak k tomuhle cili prispivaji vyse popsane veci:

      * nove mesto - udrzi hrace dele, a primeje je utratit nejaky ten reward point navic.
      * event s joby a vecmi - opet predevsim udrzi hrace a vzhledem k casovemu presu a zajmu na ziskani exkluzivnich superveci jednka bude nahanet nove hrace, aby mel dost veci na plneni ukolu (sance na ziskani novych hracu a tim i potencialnich prijmu) a jak se cas krati a budou chybet posledni krucky ke ziskani te nejlepsi superveci, budou hraci stale ochotnejsi utratit RP za nakup veci na plneni ukolu, pripadne doplneni energie.
      * bossy je mozne porazit i bez pomoci ostatnich, ale vyzaduje to hodne staminy a hlavne leceni. Lecit je mozne za herni penize kazdou cca minutu. Boj s bossem trva par vterin a k jeho likvidaci je potreba na nej jit opravdu hodnekrat. Pokazde musi clovek cekat, aby se mohl vylecit. Nebo muze utratit pakatel - jeden jediny reward point a doplnit si zdravi hned. Podobne muze za par bodu obnovit staminu, kdyz dojde a nemohl by dale bojovat a dorazit bosse, do ktereho vytrvale sije uz par hodin. Dokazu si predstavit, ze si spousta lidi koupi RP prave kvuli takovemu eventu.
      * z automatu vypadne par reward pointu, ktere si hraci probendi (zisti, co vsechno si muzou koupit a Zyngu to nic nestoji). Nekteri hraci zacnou gemblit na automatech za RP a prohraji vic nez vyhraji. Obcas si taky nekdo nevsimne, ze dosli volne toceni a protoci jeden RP navic.

      (no to jsem se zas rozepsal....)
      TRANCEWARP
      TRANCEWARP --- ---
      mno a pul milionu dolaru denne vydelava Zynga proto, ze lidi spolu radi socialne spolupracujou??

      nene, social hooky sou na ziskavani dalsich hracu ;)

      prachy vydelavaj na tom kdo docura dal, jelikoz to je stara dobra Ego honitba ;) ta funguje porad a vzdycky bude...
      CYBERWOLF
      CYBERWOLF --- ---
      Soutez kdo dal docura neni motor zynga her. Naopak, jak pozoruji, tak maji spis snahu minimalizovat soutezeni v cemkoliv, protoze v kazde soutezi je vitez a zastup porazenych (kteri z toho maji daleko mensi radost, nez vitez).

      Napr. z MafiaWars odstranili zebricek - uplne. Zustal jen vypis lidi, co mas v mafii. Spis nez na soupereni jsou zynga hry stavene na spolupraci, treba social joby (ktere sice muzes delat sam, ale stoji to spoustu energie a kdyz si to postnes na zed, kamarady to stoji jedno kliknuti a navrch dostanou odmenu), staveni ruznych veci, kde potrebujes nasbirat material a bud budes cekat roky, nez ti to napada, nebo ti to naposilaji a naklikaji kamaradi (nebo si nakoupis za body).

      A pochopitelne, cim novejsi, tim lepsi ty veci jsou. Mafia Wars jede jeden event za druhym, FrontierVille (ktery snad zacne drtit i FarmVille) zas chrli jeden quest za druhym a samozrejme hezounke dekorace, kterymi si muze clovek vysperkovat svuj zapadakov.

      Ve FrontierVillu navic neni vubec zadny konflikt mezi hraci. Nejhorsi, co muzes udelat, je pokacet sousedovi strom (a on takovou vypomoc muze odmitnout :)) Sice muzes jit na navstevu, podivat se co kdo ma (a dostat za to odmenu), ale kdo ma co hezci zalezi na vkusu, takze si stejne kazdy mysli, ze to ma nejhezci.
      TRANCEWARP
      TRANCEWARP --- ---
      CYBERWOLF: velky omyl... odmenovani je pouze na zacatku, zynga ma hry posatveny na jednoduchym pravidlu: ja sem dal nez ty... a muzu ti to ukazat...

      takze se vsichni kamosi predhanej, kdo je vic a vic...



      btw ten zakladni maraton : hehe... mno uvidis, my ho jedem ted potreti a snad uz konecne spravne ;D
      CYBERWOLF
      CYBERWOLF --- ---
      Odmenovani je urcite dulezita vec - staci se podivat na veleuspesne facebookove hry od zyngy, ty nestoji vlastne na nicem jinem.

      Ted tak nejak pocitam s tim, ze kazde dobrodruzstvi bude postava zacinat od nejake predem dane urovne, tedy vlastne s cistym stitem, pouze si bude nechavat inventar, mozna jeste neco. Podobne to bude s pouzitim cizich postav (u kterych pujde o kopii inventare, aby se nestalo, ze mi nekdo hraje s postavou a vyhazi vsechny veci). Po skonceni dobrodruzstvi dostane majitel pujcene postavy zpravu s aktualnim inventarem z daneho dobrodruzstvi, ze ktereho si bude moct vybrat jednu vec, kterou si necha.

      Od tohohle modelu si slibuji, ze postavy nebudou prerustat nektera dobrodruzstvi, ale soucasne se tak nejak zachova trvale odmenovani hracu, prave formou vybavy. Potom by se jeste dal udelat nejaky bazar, kde by si hraci veci vymenovali a podob.

      Jinak tedy pocitam, ze naprogramovanim enginu to neskonci, nejaky obsah k tomu bude taky treba udelat, potom kvalitni dokumentaci a jeste hezky layout a tak vubec. Ale to proste do toho zakladniho maratonu nepocitam :)
      TRANCEWARP
      TRANCEWARP --- ---
      resp takhle, ty je MUSIS odmenovat viceme neustale... dobre klikne -> bodik navic, dojde mu naprostra travialita -> dalsi bodiky, pride na neco sozitejsiho -> hromada bodiku a nakej item...

      atd...
      odmenovani je jednak nejlepsi cesta, jak lidi tu hru naucit, my na to mame vymysleny hned dva systemy... jeden pro okamzite odmeny za ptakoviny, druhej pro HC hrace, ktery fakt neco dosahnou, vyhrajou server atd... a pro ty mame pak trvaly odmeny, co muzes prenaset mezi serverama a kazdej vidi, jak je ten hrac hrozne hustej ;)

      Kliknutím sem můžete změnit nastavení reklam