Zobrazují se příspěvky se štítkemgamedesign. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemgamedesign. Zobrazit všechny příspěvky

středa 15. května 2024

Deník vývojáře: Vlastní RPG část V.

Editor úrovní - Bez něj se neobejde žádný herní projekt. Tvorba levelu je s ním tak rychlá, že vytvoříte bohatě zásobenou úroveň pod jednu minutu (!). Můj vlastní zatím bezejmenný editor má dvě fáze. V té první si myší vytvoříte podobu úrovně (kterou lze kdykoli změnit) - pokud držíte myšítko 1, můžete úroveň kreslit jako v kterémkoli malovacím programu. Až jsem s podobou spokojený, přepnu do druhého - detailního - editoru, kde už se mi sama od sebe vygeneruje podlaha. Dále mám na výběr druh obsahu, který lze podle potřeby tlačítkem přepínat: Věci, monstra a ostatní. Myšítko 1 přidává obsah a dvojka ho odstraní, pokud chci provést jakékoli změny. Kolečkem pak procházím, co všechno je v nabídce pod daným okruhem.

Dále, pokud kliknu myšítkem 1 na již vytvořený obsah, můžu mu přidat další detaily - například obsah truhly (vyskočí na mě nabídka věcí, které chci, aby v ní byly) nebo tlačítku předám informaci, jakou bránu má aktivovat.

Zvolím místo, kde se na začátku objeví herní postavička. Po uložení, pak jen přepnu tlačítkem na vyzkoušení již hotové úrovně. Nakonec se automaticky vygenerují zdi a veškeré potřebné kolize. 

Jak je vidět, editor není nijak pěkný - tudíž, abych ho přidal do finální hry, potřeboval by nutně zkrášlit. Zatím nemám motivaci ho přidávat. Případně, pokud by byla poptávka, rád ho do hry dám - rozhodně to nebude nijak složité.

zeal 

úterý 14. května 2024

Deník vývojáře: Vlastní RPG část IV.

Tajné věci (Secrets) - Během všeho toho mlácení monster je zapotřebí i nějaký oddych. V levelech tak bude i několik míst, kde budou ti inteligentnější hráči odměněni ne počtem bodů, ale opravdu užitečnou odměnou v podobě truhličky, která bude obsahovat jednu až více speciálních věcí (Power Items). Některé tajné místnosti budou zpřístupněny za pouhého hledání a ty s o něco lepší odměnou se zpřístupní až po splnění nějakého úkolu. Stále ale půjde o skrytý přístup, na který budou muset hráči přijít sami. Přemýšlím, zda tyto přístupy trochu ozvláštnit tím, že budou vždy na jiných místech, takže opětovné hraní by mohlo nabízet ještě více zábavy - možná bych to ale využil až v případném pokračování, že by se tyto tajné místnosti náhodně generovaly.

Nemělo by jich být moc, aby nezevšedněly. Na tu vůbec první hráče upozorní rádce: Po přečtení nápisu na zdi (klávesou pro zkoumání políčka před hráčem) se hráč dozví, že někde v místnosti (nejspíše ve zdi) je vstup do další, tajné, místnosti s odměnou (a nejspíš jen s ní, protože hráč by nejspíš další tajné místnosti nehledal, pokud by v nich bylo něco nebezpečného). 

Po vzoru her jako Diablo nebo Might & Magic VI budou ve hře i neidentifikované (a tedy svým způsobem tajné) věci, které bez rozluštění nepůjdou použít. Kobky jsou nebezpečná místa a zjišťování, co je která věc, s sebou nese daň, že při zkoumání na hráče může něco skočit. Zjišťování sebere nějaký ten čas, takže třeba si hráč ve spěchu rozmyslí, že to třeba nemá cenu - a nakonec odhodí nějaký silný předmět.

zeal 

pátek 10. května 2024

Deník vývojáře: Vlastní RPG část III.

Inventář - Jelikož jsem se rozhodl udělat hru v žánru "akčnější RPG", inventář proto nebude hrát takový prim, jako v klasickém RPGčku. Bude tu určitě co sbírat a dávám si celkem záležet na tom, co se tu bude sbírat. Dle mého soudu je inventář jedna z těch věcí, která dělá hru podstatně zajímavější a dovolil bych si tvrdit, že i zábavnější - a to i když je takto malý (ehm). 

Věci jsou rozdělené do několika druhů: 1. Obyčejné na jedno použití (lékarnička, kámen, kouzelný svitek) 2. Předměty typu Power Item (česky asi speciální věc?), u nichž jsou pak různá použití (vylepšení zbraně, vylepšení vlastností postavy, teleport a další velmi užitečné pomůcky pro zdolání hry) 

Jak fungují Power Items (speciální věci): Některé fungují na omezenou dobu - například boty bohyně Nike hráči vydrží 20 sekund. Naštěstí je ale vždy možné jejich efekt zastavit (a pak kdykoli pokračovat - ale jen s tím zůstatkem, který ještě u speciální věci zbývá). 

Další speciální věci mají omezený počet použití. Například nůž, je-li aktivovaný, se vždy přidá k vaší zbrani, ale jen desetkrát - pak z inventáře zmizí. Rovněž, vždy jde deaktivovat, cítí-li hráč, že na něj útočí jednodušší nepřátelé. Vždy si může zásobu nožů nechat na potom - třeba když uvidí, že se k němu blíží neférově velká skupinka (nože se rozletí do stran, takže je vždy lepší šetřit si je na tyto chvíle). 

Speciální věci dávají hráči velkou moc, a tudíž mají i svá omezení. V kteroukoli dobu je možné mít v inventáři aktivní pouze dvě speciální věci (je ale možné mít jich plný inventář - jen nemůžou být aktivní všechny naráz). Ty jdou kdykoli deaktivovat - jejich efekt ale bude platný pouze, budou-li aktivované (graficky znázorněné zeleným pozadím). Další omezení je v podobě počtu speciálních věcí v inventáři - hráč má povoleno mít v inventáři pouze od každé speciální věci jednu. 

Pokud narazíte na stejnou power item, například v truhle, anebo na zemi, není problém se později vrátit a vložit ji do inventáře. Stejně tak, pokud má hráč u power item Nůž například dvě použití z deseti, je možné tento nůž vyhodit na zem a vzít si jiný Nůž, u nějž je stále plný počet použití.

Každá posledně sebraná věc se stává v inventáři aktivní: Pokud hráče pronásleduje monstrum a hráči zbývá poslední kousek energie a najednou opodál uvidí na zemi lékárničku, po jejím sebrání lze bez přemýšlení (či přepínání v inventáři) zmáčknout tlačítko Použít a hráč získá z lahvičky energii.

zeal

čtvrtek 9. května 2024

Deník vývojáře: Vlastní RPG část II.

 


Brány - V žádné kobce nesmí chybět stopa po civilizaci. Některé oblasti tak byly zataraseny bránou, většinou takovou, co se neotevře, když do ní vrazíte nosem. Jelikož moje akční RPGčko není v žánru sci-fi, brány se budou muset otvírat "postaru", a to: 1. šlápnutím na plošinku, 2. položením něčeho těžkého na plošinku, 3. použitím příslušného klíče, 4. rozluštěním hlavolamu a jako pátou možnost zvažuji i násilnou cestu, ale ještě nevím, jak moc negativní dopad by to mělo na hráče - rozvíjet zločinecké sklony rozhodně není cílem této hry.


Hra bude mít více druhů bran - i po grafické stránce. Tady ta nahoře je spíše branka s pořádným zámkem, kterou lze otevřít jen klíčem pracovně nazvaným Quest Key. 

Vstup do další úrovně pak bude obstarávat brána se sedmero svícny - takové opravdu malinké pokývnutí na sérii Ishar a třetí díl Sedm bran nekonečna. Fajn na této bráně je, že hrdina do ní vejde, vyhopká schody a zmizí v jejím nitru - a pak se načte další level. Líbí se mi takto zepředu a dělat její verzi "na bok" se mi nejspíš nebude chtít dělat, ale ještě uvidíme.

zeal

úterý 7. května 2024

Deník vývojáře: Vlastní RPG

V dětství jsem si dost oblíbil herní žánr akčních RPG her. Kosení monster buďto dobovými zbraněmi anebo fantastickými kouzly mě zkrátka učarovalo. Na automatech to byl druhý Gauntlet, a posléze, v roce 1997, jsem instaloval Diablo už na svém vlastním PC a v roce 2000 jsem udělal totéž s velmi povedeným pokračováním s přídomkem 2. Dalo by se tedy říct, že možnost udělat si své vlastní akční RPGčko zdá se jako plán, kterému se nedá odolat.

Vývojářský deník část 1

Vlastně ani nevím, jak se přesně takový deník vývojáře správně píše. Důležité ale je, že se o to alespoň pokusím. Ve vývojářském prostředí Unity jsem si dal za cíl vytvořit vlastní poctu tomuto žánru, nebo alespoň hru, u které se budu dobře bavit. První užitečný poznatek do deníku je, že už přímo u tvorby této hry se dostatečně bavím. Dělám na ní už několik týdnů a momentální stav je celkem slušně hratelný. Je téměř hotových asi šest levelů. 

1 Pohyb

Mým cílem bylo udělat hlavně poctu klasické hře Gauntlet (2), tudíž chůze postavy byla rozhodnuta jako viděná z pohledu seshora. Povolený je i pohyb diagonálně, takže celkem postavička má osm různých směrů, jakými se může pohybovat. Hráč může chodit, ale i běhat. Běh má pak vlastní staminu, která tuto disciplínu omezuje, aby nešlo o neférovou výhodu nad monstry.  

2 Boj

Hlavní hrdina nalézá už na začátku první kobky zbraň - možná po hrdinovi, co nebyl tak úspěšný a chtěl třeba utéct a nějaké monstrum ho nejspíš zastavilo, ještě než stačil vyběhnout ven (mrtvola majitele zbraně není k nalezení nejspíš z důvodu, že si ho monstrum odtáhlo do své skrýše, aby měl něco na oběd). Jde o sekeru, ale ne jen tak ledajakou. Ve stylu Gauntletu s ní lze házet a nejspíš díky nějakému kouzlu se hrdinovi vždy vrátí zpět do ruky. Nabídka monster bude rozmanitá - od základních příšer po složitější až po hlavního záporáka.

3 Inventář

Každé správné RPG povoluje sběr věcí v dungeonu. Mé RPGčko je poctou Gauntletu, který ale žádný inventář nemá. Po kratším uvážení jsem se rozhodl, že by přece jen v něm měla tato funkce být a nakonec i z toho důvodu, že každý správný vývojář má inovovat, takže tu je: pět políček pro pět věcí. Jsou tu lékárničky, kouzelné svitky, nějaký ten kámen taky nesmí chybět a je tu i spousta kouzelných předmětů, díky nimž hrdina získává speciální vlastnosti. Klíče si dává za opasek - tudíž není třeba, aby se jimi plnil již tak malý inventář. Věci se dají najít buďto jen tak na zemi, anebo v zamčených truhlách. V pozdějších levelech si představuju, že by nějaké silnější monstrum po zabití také nějakou věc vyvrhlo ze svých útrob.

4 Cíl hry

Hrdina projde zhruba patnáct levelů ve třech různých (graficky i obsahově odlišných) kobkách. Cíl je osvobození království od zlých monster a poslání hlavního záporáka tam, kam patří. Po cestě čeká hrdinu řada překvapení, situace, které budou vyžadovat chytřejší přístup a zvládnout by to měl na jeden život (chráněný energií). 

5 Screenshoty

Během tvorby jsem pořídil nějaké screenshoty, a abych řekl pravdu, nejsou nijak upravované a rozhodně nejsou z finální verze, resp. se ve finální takto neobjeví. Stále ještě mnohé věci vylepšuji a výsledná podoba hry bude určitě ještě hezčí. Dávám je sem v rámci deníku vývojáře, tudíž není důvod je tu sem nedat v takové podobě, v jaké jsou. 













zeal

neděle 29. prosince 2019

Soon


Obrázek nahoře je jedním z mála důvodů, proč se na Casual Core toho momentálně moc neděje. Ale nebojte - až vydám svoji herní prvotinu, opět se CC zasype písmenkama.

Teď je gamedev prostě na prvním místě a psaní muselo ustoupit stranou. Je sice pravda, že Galaxman mohl vyjít už nějaký ten rok nazpátek, ale vyšel by v rozbitém stavu, škaredý a skřípali byste u něj zubama. A já bych byl nešťastný a celé dny bych dokolečka dokola opakoval, že takhle to nemělo být.

Hraní se samozřejmě taky stále věnuji - jako správný herní tvůrce -. ale myslím, že žádná ze současných her nijak významně neohrožuje můj gamedev režim. Ale co kdyby se nějaká taková hra přece jen objevila? Ani nový Half Life mě nezastaví! Plán je tedy prostý: Musím hru dokončit dříve, než vyjde Diablo 4. Do té doby by ale Galaxman měl stejně vyjít. Ale znáte to, gamedev je pomalé řemeslo, o to pomalejší, když děláte veškerou činnost, na kterou se normálně pořizuje pětičlenný tým.

Takže, jak pravil klasik: Stay tuned a See you soon!

zeal

neděle 14. dubna 2019

Moje hra: Galaxman (update)


Galaxman stále není hotový, ale už tak nějak cítím v kůstkách svých kódoprstů, že by se brzo mělo bouchat šampaňské. Proces tvorby herního softwaru je zdlouhavý, o to zdlouhavější, jste-li na to sami. Dobrá zpráva je, že hrát tuhle hru mě skutečně baví - ani nevím nakolik v tom hraje roli pocit, že je to moje hra (určitě to má vliv, ale doufám, že ne nijak velký). Takže důvod, proč ještě není ke stažení, je ten, že tomuhle projektu věřím a chci mu dát ještě něco málo, abych ve výsledku mohl říci: A to je vše. Snad ještě tady čárku a je vymalováno.

V dostupnosti hry se nic nemění. Bude zcela zdarma. Bez lootboxů a DLC. Pokud mě finance nezradí, zkusím ji vyslat na Steam, kde je podle mě největší šance na získání hráčů, protože tady na blogu s odkazem by to sice taky mohlo fungovat, ale ten pocit, že je na Steamu, za to, myslím, už stojí dát těch pár tisíc.

V blízké době by pak bylo fajn sehnat betatestery. Kdo bude mít zájem, stačí mi napsat buďto přes Twítr (twitter.com/zealcore) nebo na email: zealcoreATgmail.com. Snad se nějaký najde. :)

zeal

pátek 21. září 2018

GameDev: Elegantně řešené bodáky

Bodáky v mojí chystané hře Galaxman fungují tak, že čekají na někoho, koho můžou propíchnout. V základním nastavení jsou trošku schované - ale nebojte, vidět půjdou, pokud lehce zaostříte svůj roky hraním poničený zrak. Pokud na ně dupnete, vyjedou ze země a začnou vám ubírat energii. Jakmile je opustíte, zajedou zpátky do země. Ale! I během zajíždění můžou opětovně vyjet, pokud se vrátíte zpět na bodáky.

Původně jsem to řešil pomocí několika koprogramů. Bodáky vyjížděly, ale někdy zapomněly zajet zpátky. Nakonec jsem si ale uvědomil, jak lehce se to dá napsat.

Základní nastavení je:

- mám 2 pozice pro: (1) zasunuté a (2) vysunuté bodáky
- bodáky se neustále zasunují do pozice 1, pokud na nich hráč není
- bodáky se neustále vysunují do pozice 2, pokud na nich hráč je

A myslím, že zde pod textem je celkem elegantně napsaný kód. Dá se ještě upřesnit, zda mají být aktivované po celou dobu anebo jen v blízkosti hráče. Dají se plně deaktivovat, například po dokončení úrovně. Použití: skript dejte na child gameobjekt obrázku bodáků. Kód pro ubírání energie mám napsaný v jiném skriptu a myslím, že je to záležitost pro zcela jiný článek. Zvětší se po kliknutí...


zeal

středa 31. ledna 2018

Galaxman preview

Na hře Galaxman dělám s malýma přestávkama už okolo čtyřiceti dní. Jde o vedlejší projekt, ke kterému jsem si odskočil, abych nabyl více zkušeností - všeho druhu, nejen programování. A chytlo mě to natolik, že jsem z původně malé hříčky pro Ludum Dare vykutal trošku větší, ale hlavně lepší, hru. Není ještě dokončená, ale je ve stavu před dokončením, a myslím, že do čtrnácti dní by měla být hotová určitě.

Zlepšil jsem se v kódování. Galaxman hodně používá takzvané koprogramy (coroutines), které jsou fun a hlavně lehké na použití. Grafika a cit pro design se u mě také zlepšil, jak můžete ostatně vidět na obrázcích dole (horní obrázek je první den tvorby, dolní je den čtyřicátý). Co je z mého pohledu hodně fajn, i první obrázek si vysloužil na sociální síti Twitter sice docela malou, ale i tak, chválu, takže jistá spokojenost tu je.



"Ambice versus dokončení hry" by mohl být nadpis pro tento vytvářející se odstavec. Ani ne dvacet čtyři hodin po skončení Ludum Dare jsem psal na twiter, že Galaxman je až příliš ambiciózní pro víkendovou soutěž. Měl mít i příběh, samozřejmě animované intro a i nějaké ty dialogy v průběhu hry. V plánu bylo udělat devět světů, pardon, galaxií! Jsem si vědom toho, že pokud bych měl dodržet původní vizi, zřejmě bych musel na hře dělat o měsíc déle (optimisticky řečeno). Při tvorbě jsem nakonec zjistil jednu podstatnou věc. Alespoň v tomto případě, vše stojí a padá na kreativitě. Nápad na hru vznikl ve velké rychlosti a jak jsem na ní pokračoval, čím dál tím víc jsem si uvědomoval, že právě ona kreativita je to, co mě na Galaxmanovi nejvíc baví. Plánování je velmi důležitá součást herní tvorby, ovšem u tohoto projektu, který je tvořen tak "nějak jinak", než tvoří 99 procent herních tvůrců, mi bylo jasné, že to takhle musí i pokračovat.

Příběh je tvořen čistě herními prostředky. Hráč si tam určitě nějaký najde, bude-li chtít. Dialogy, ač některé už vznikly, ve hře nebudou.

Výsledek tedy nezaručuji, že se bude líbit úplně všem.

Co teď musím ještě dopilovat, je obtížnost a systém speciálních schopností. To druhé mě zdrží podstatně déle. Pokud se to nepovede správně, zase tak moc se nestane. Stále jde o malou hru, na které jsem nestrávil až příliš času, abych si začal zoufat, když jí dá nějaký novinář 7/10.

zeal

neděle 21. ledna 2018

Unity: Pohyb po vyznačené cestě

Momentálně tvořím malou hru v Unity - viz předchozí blogový příspěvek - a momentálně do ní přidávám různé druhy nepřátel. Co jsem se koukal na blogovou statistiku, příspěvky označené jako Unity mají celkem slušnou návštěvnost, a tedy rozhodl jsem se - když je stále ten začátek nového roku - podělit se o jeden, vcelku jednoduchý, skript jednoho takového AI nepřítele.


Jde o bota, který se kutálí po zemi, zdi, ale i stropě, rychlostí jakou chcete (ale teď jak o tom přemýšlím, docela srandovní by mohla být proměnlivá rychlost). Kutálí se podle vašeho předem připraveného plánu, tam i zpět. Bodů v plánu může být klidně i sto nebo tisíc, podle vaší fantazie. Já jsem se omezil jen na tři body, z nichž jeden je startovní pozice - čili prvním bodem naší, tedy botovy, cesty bude druhý bod, cesta[1]. Jakmile se dostane na poslední pozici, program se "otočí" a bot bude následovat náš plán v obráceném pořadí. Po dosažení startovního bodu se opět automaticky přehodí a pojede zase tak, jak jsme napsali náš plán jeho cesty.

A teď k samotnému kódu:


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class bot7 : MonoBehaviour {
Transform tr;
bool isRotating;
public Vector3[] cesta;
public int indexC = 1;
public bool zpet;
void Start () {
tr = transform;
isRotating = true;
StartCoroutine (RotateBot ());
}
void Update()
{
if (indexC < cesta.Length && indexC > -1) {
tr.position = Vector3.MoveTowards (tr.position, cesta [indexC], 0.02f * Time.deltaTime);
if (zpet == false) {
if (Mathf.Approximately (tr.position.x, cesta [indexC].x) && Mathf.Approximately (tr.position.y, cesta [indexC].y)) {
indexC++;
}
} else {
if (Mathf.Approximately (tr.position.x, cesta [indexC].x) && Mathf.Approximately (tr.position.y, cesta [indexC].y)) {
indexC--;
}
}
} else {
if (zpet == false) {
zpet = true;
indexC = cesta.Length - 1;
} else {
zpet = false;
indexC = 0;
}
}
}
IEnumerator RotateBot()
{
while (isRotating) {
if (zpet == false) {
tr.Rotate (new Vector3 (0f, 0f, -120f * Time.deltaTime));
} else {
tr.Rotate (new Vector3 (0f, 0f, 120f * Time.deltaTime));
}
yield return null;
}
}
}
Pokud budete mít nějaké otázky, rád je zodpovím v komentářích.

coder zeal

sobota 26. srpna 2017

Boomerkid: Work in Progress

V dnešní době si může udělat hru úplně každý. Stačí mít trochu času, trpělivosti a nadšení pro videohry. Pak stačí stáhnout Unity, kreslící program a naučit se základy programování - což dnes jde s prstem v nose díky milionům tutoriálů po netu. Po zhruba sedmi měsících seriózního kódování, kreslení a vymýšlení se má první vážnější hra začíná myslím dobře rýsovat. Jistě, není tak dobrá, jako ostatní, důležitější ale je, že je to moje hra. Pokud si ji pak stáhne jeden člověk nebo dva, je už úplně jedno. Pokud s ní budu spokojený já, bude to zcela stačit. Však nějaký úspěch se v budoucnosti ještě určitě dostaví - budu-li se dál věnovat tvorbě videoher a já věřím, že ano (vlastně nic jistějšího asi neexistuje).

Vím, že z bloggerů si svoji hru ještě dělá Dave de Sade (i když jsem zaslechl, že ji už předal někomu jinému, kdo ví. Jmenovala se myslím Chaos Guns). Z bývalých kriplů pak ElDorado a Robotron taky něco vydali na Google Play. MickTheMage vytvořil zajímavé spojení basketbalu a fantasy s pravidly D&D, které si přímo volá o převedení do počítačové podoby. Schválně jestli to budu já, kdo bude osloven, abych to celé převedl na obrazovky počítačů. *Mrk, mrk* Ehm.

Měl bych sem asi napsat, jak je to těžké, a že jsem u toho i zkolaboval, jak jsem moc a moc dřel - až by to vydalo na dokument -, ale vlastně mi to ani tak nepřijde. Tak moc se u toho bavím, že ani nevnímám, jestli je to těžké nebo ne. Dělám sice úplně všechno jen já, ale ta zábava je tak velká, že ani netuším, jak moc a jestli vůbec se u toho moje tělo nadře. Mám ještě v plánu udělat několik fíčur a nadesignovat další a další herní dílky. Dokonce mám v plánu to nějak příběhově sespojovat. Tak moc tomu věřím. Ale kdo ví, jak to nakonec celé dopadne. Každopádně, mám v plánu udělat tři světy, které se budou lišit grafikou, do jisté míry i hratelností a obsahem, a obtížností. Tudíž datum vydání bude asi o tom, kdo nakonec zvítězí: nadšení nebo rozum. Ale pokud by se mě někdo na ulici zeptal? Pár měsíců do vydání. Bude zdarma, na Android. S plnohodnotným editorem úrovní. Česky i anglicky.

WIP Screenshot je, jak název napovídá, z nehotové verze, jako fotka z natáčení. Vše se ještě bude upravovat.


zeal

pondělí 7. srpna 2017

Nikolas: Postavička pro vaši hru zdarma

Objeveno v pavučinách mého harddisku, na obrázcích pod textem je jedna z prvních verzí postavičky mého herního "klonu" Nickyho Booma. Tuhle postavičku zřejmě v žádné svojí hře nepoužiju, ale to neznamená, že by ji nemohl použít někdo jiný! Dávám ji sem tudíž plně k dispozici herním tvůrcům, kterým třeba padne do oka. Můžete ji ve svojí hře použít zcela zdarma. Jediné co za to chci, je autorský kredit na moji přezdívku (do titulků napište "Grafika postavičky: Zealcore") a udělá mi radost, pokud mi pošlete na svoji hru odkaz.

Postavičku si můžete upravit dle potřeby: změnit barvu vlasů, pokožky nebo oblečení, či přidat nějaký "potisk" na jeho tričko, nebo dát do ruky zbraň. Případně, pokud byste měli zájem, můžu vám poskytnout verzi bez brýlí.




Budu rád za jakýkoli komentář, či nápad. Pokud by byl zájem, můžu zapátrat po dalších herních "assetech", které by mohli nadějní herní tvůrci použít ve svých hrách.

zeal

úterý 20. června 2017

Kreslící program v 10 řádcích v Unity


Unity je prostředí, které umí zhmotnit všechny vaše představy nebo alespoň ty, které se dají ukázat na obrazovce počítače. A na rozdíl od konkurenčních prostředí je Unity unikátní v tom, jak málo řádků kódu mu stačí na to, aby ona představa ožila. Například, chcete mít kreslící program? Uděláte ho v pauze na svačinu! Následující kód je kompletní program, s pomocí nějž si můžete nakreslit třeba ten trefný obrázek nahoře.

using UnityEngine;
public class PaintCasualCore : MonoBehaviour {
public GameObject stetecPrefab;
private GameObject stetec;
void Start () {
stetec = Instantiate (stetecPrefab, new Vector3 (0f, 0f, -1), Quaternion.identity); }
void Update(){
Vector2 pridatKam = Camera.main.ScreenToWorldPoint(Input.mousePosition);
stetec.transform.position = pridatKam;
if (Input.GetMouseButton (0)) {
var klon = Instantiate (stetecPrefab, new Vector3(pridatKam.x, pridatKam.y, 0), Quaternion.identity);
}
}
Do štětce "stetecPrefab" přidáte v inspektoru čtvereček z menu GameObject > Quad, přidejte světlo, možná i tabuli na kreslení a barvu pozadí v kameře a voilá. Máme základní Photoshop. No není Unity super?

zeal "the coder"

neděle 18. prosince 2016

Unity: Monstra nesmí chybět


Každé monstrum v mé plošinovce bude mít na začátku úrovně nastaveno několik hodnot: výdrž (HP), sílu úderu či kousnutí (DMG) a rychlost, s jakou se bude prohánět po plošince (SPEED). Rovněž bude mít každá detektor, který po spuštění úrovně zjistí pro příšerku velikost plošinky, na které se nachází, a tím jí zajistí všechny potřebné informace, aby se mohla prohánět a zároveň z plošinky nespadnout. Po prvních asi dvou setinách sekundy se detektor vypne, protože nejenže by nové údaje mohly dělat neplechu ve hře, ale vůbec je úsporné povypínat vše, co už hra nepotřebuje.

Na sobě má každá příšerka různě veliký kolizní čtvereček, který slouží jako spouštěč animace pro útok. Pokud se tohoto čtverečku dotkne hráč, začne se u příšerky přehrávat nová animace a zároveň se spustí kód, který příšerku na chvíli zastaví, obrátí ji čelem ke hráči, a po závěru animace ji opět vypustí po plošince ve směru, ve kterém se plazila, či chodila. V hráčově kódu se potvrdí zásah uštědřený od monstra, tím pádem klesne energie (což se projeví na grafice sledující stav hráčovy HP) a spustí se animace dávající hráči najevo, že se to postavičce nelíbí, a že by se měl víc snažit.

Tak tohle je hotové, teď je přede mnou jeden ze zábavnějších úkolů: výroba monster bossů. Po každém druhém nebo třetím levelu by mělo konec úrovně hlídat originální monstrum, na jehož likvidaci bude muset hráč najít recept.

zeal

pondělí 21. listopadu 2016

Tvorba obyčejné skákačky

Je fascinující, kolik je toho třeba zvážit při tvorbě (a nejlépe ještě před ní) takové obyčejné skákačky. Pokud se do toho pustíte hlava nehlava, možná již velice brzo (v horším případě až mnohem později) zjistíte, že se vám to všechno bortí, jako ten klasický domeček z karet.

Třeba takový design úrovně. Je zhotovený z kostiček přesně daných rozměrů a to např. z důvodu, aby figurka někam nezapadla, ale i proto, aby se vám úroveň lépe designovala - v opačném případě cihličky nemusí do sebe zapadat a hned vám vzniknou ošklivé díry v levelu, které jen tak lehce nezamaskujete. Přesné míry cihliček např. zajistí bezpečný průchod postavičky úzkou chodbou - takže pak hra ani trochu nepřipomíná horror - a nakonec to s nimi vypadá mnohem lépe, než kdybyste pracovali s náhodnými rozměry cihel, s nimiž by si ani ten nejnadšenější designér nevěděl rady.

Je třeba nejdříve určit velikost cihličky, jejíž strana by měla odpovídat jednomu metru ve skutečnosti, takže panáček by pak měl být zhruba vysoký něco přes jednu a půl cihličky. Díky tomuto rozhodnutí již dopředu víte, že panáček projde pod stropem, který je ve výšce tří cihliček od země. Víte, že pro vytvoření díry, do které může postavička spadnout, je třeba vytvořit prostor o velikosti jedné jediné cihličky. Totéž platí o minimální šířce plošinky. Chcete-li do levelu dát i nějaká monstra, je určitě bezva nápad takto postupovat i u nich a nedělat je zbytečně široké, anebo jinak velké, pokud zrovna nevytváříte "šéfa" strážícího konec úrovně.

Máte-li v plánu hráče neunudit k smrti, bude potřeba těch vašich dvacet úrovní rozdělit na několik světů. Nebo lokalit, jako laboratoř, továrna, džungle a hrad. To znamená, že úrovně od sebe odlišíte změnou grafiky a to je jedna z výzev, na kterou se osobně těším v případě mojí skákačky Boomerkid. Nebude to zřejmě nic lehkého, kreslit nové a nové plošinky, pozadí a nezapomínejme ani na monstra, která se budou muset taky buďto vytunit anebo předělat úplně, nejlépe aby zapadla do jiného prostředí.

Nezapomínejme ale na fakt, že nejde o film, ani o literaturu, takže zas tak nezáleží na tom, že jedno monstrum nezapadá do světa okolo - výhodou videohry je, že snese víceméně vše. A průměrný hráč to navíc nepozná.

Co mě, možná nejvíc, baví na mé právě vytvářené skákačce, jsou animace. Průšvih u nich je ten, že pokud naanimujete jedno monstrum, musíte naanimovat i druhé, třetí i dvacáté. Nejlépe v podobném stylu (tedy ne, že jedna potvůrka má animaci na dvacet políček a druhá jen dva obrázky). Pokud plánujete čtyři světy, je potřeba vytvořit čtyřikrát tolik potvor, kolik jste nakreslili a rozpohybovali pro první svět. Ale hlavně, je to zábava!, animovat je - pro to to děláte... vlastně, dělám já.

Ještě než se dám do detailování monstra, nejdříve si vytvořím jeho koncept (rychlá čmáranice), jako např. tady dole:


Důvod? Konceptů si udělám velkou spoustu a pak vyberu jen ty nejlepší, čili ušetřím drahocenný čas. Je chytré, vytvořit si jen siluetu monstra, protože už podle ní vycítíte / poznáte, že to bude vono!

V případě svojí první skákačky ještě neřeším, aby vše barevně ladilo - zatím to dělám bajvoko -, zas tak ambiciózně se necítím. Ale v případě, že budu někdy v budoucnu pracovat na něčem větším, dám si už tu práci, aby barvy byly vybrány správně podle barevné teorie. Učit se ji, bude navíc teror, takže to je hlavní "proč" to dělám od oka.

Ta hlavní zábava přijde, až to budu, všechny ty vytvořené obrázky a animace, assemblovat dohromady, kdy se bude dávat součástka po součástce do toho ohromného stroje, který hráči znají pod názvem videohra.

Nezahrnul jsem asi stovku dalších věcí, jako inventář, powerUpy, souboje s monstry, inteligence monster, pohyb monster, střelba z různých zbraní, lezení po žebřících, tajné chodby, pasti, tvorba uživatelského interface, ukládání hry a další.

Zvuk a hudba bude už jen závěrečná euforie. Na tuhle fázi vývoje se teď těším vůbec nejvíc. Tak zanedlouho u ní.

zeal

úterý 30. srpna 2016

Databáze dokončena

Je hotova moje databáze filmů, na které jsem dělal asi měsíc, resp. několik hodin v rámci jednoho měsíce. Voda, spoře oděné dívky a válení se pod horkým sluncem moc programátořině nesvědčí! No ale zabrat mi docela dala. Nad něčím jsem i dumal, jak to napsat, ten kód, ale díky přehlednosti kódování v Unity, kde si můžete debugovat jak se vám zachce, jsem to nakonec zvlád.

Mezitím jsem stihnul přečíst celou knížku o začátcích kódování v C# a u ní jsem zjistil, že většinu C# jsem už vlastně znal, přestože jsem kódoval v jakési mutantní verzi javascriptu Unityscript. Nejzajímavější na C# je minimální aktivita v Update, metodě, která se pouští každý frame. V databázi ji nepoužívám vůbec. Předpokládám, že u hry nějaký kód, byť minimum, v Update bude.

S filmovou databází jsem maximálně spokojený. Umí řadit filmy podle žánrů, názvů (v češtině a angličtině), mého hodnocení atd. Pracuje s obrázky, které se načtou z externího adresáře - stačí, aby se obrázek jmenoval stejně, jako film, a databáze už automaticky zobrazí, co má zobrazit. Můžu jednoduše přidávat filmy, které se okamžitě objeví v seznamu a tím pádem si je můžu hned prohlížet. Jedním tlačítkem můžu pozměnit jakoukoli informaci a okamžitě ji uložit, a zobrazit. Mám šikovné hodnocení, které funguje stejně jako na IMDb a tudíž je na tabletu radost filmy ohodnotit. Databáze rozpozná, které filmy jsem ještě neviděl - tím pádem si je můžu okamžitě vyfiltrovat.

Věřím, že ji budu využívat poměrně často. A teď se vydám na stezku, kde půjde do tuhého, kam se odváží jen tvůrci videoher.

zeal

pondělí 8. srpna 2016

Deník sólo vývojáře: díl 17

Poslední dobou mě fascinuje twitr účet Antona Kudina, ruského vývojáře, který obdobně jako já, zápasí s Unity a momentálně dělá na fantasticky vypadající chodičko-skákačce MegaSphere. Tenhle projekt mě vyloženě motivuje - Anton v každém novém updatu vždy ukáže něco, z čeho mi spadne spodní čelist těsně nad klávesnici.

Nedávno jsem přešel na C#, tudíž doufám, že mé schopnosti kodérské budou tím pádem mít vyšší účinnost a já snad získám i lepší pozici na kodérském trhu - přece jen Unityscript asi tak žádaný není a v C# uděláte i mimo Unity něco pěkného. Např. databázi. A právě tu teď dělám, resp. už dokončuji. Jde o databázi filmů, těch, které tu mám. Každý film se dá v databázi rozkliknout a zjistit všechno, co by mě mohlo zajímat. Jde i řadit podle žánrů nebo dle obsazení a podobně. Databáze je ukládána do souboru ".json" a tím chci nastínit, že tuhle vědomost nadále využiji. Dost možná i do mého dungeonního editoru zvaného Terrible dungeon. Snadno tak budu moci uložit seznam potvor, jejich pozici v dungeonu, atributy, informace o lootu, který mrtvola vyvrhne a třeba i milion dalších blbůstek. To všechno, a mnohem více, lze lehoučce uložit do externího souboru.

Pomaličku začínám uvažovat, že bych si zaplatil vývojářský účet na Google Play, kterýžto stojí 625 korun a to myslím není zase tak moc, za možnost poslat svoje výtvory do světa. Předně ale musím mít co nabídnout, a tím pádem se teď pustím do menších blbůstek, abych měl na svém účtu alespoň něco v nabídce.

zeal

čtvrtek 21. července 2016

V Unity bych rád jednou stvořil následující


V Unity bych rád jednou stvořil - a vydal - následující:

1. 2D hopsačku
2. Klasický štvorečkový dungeon
3. Upíří RPG
4. Adventuru
5. Third person sci-fi střílečku
6. Mech simulátor

Ani nemusejí mít hezkou grafiku. Stačilo by, abych se u hraní těchto svých her nedíval na hodinky. Myslím, že je to reálné - nemusí jít o velké projekty. A čím větší, tím menší pravděpodobnost, že ho dokončím a vrhnu se na další v pořadí.

Chybou je dělat něco dlouho a neustále to vylepšovat. Na hře s kódovým označením Shape Strike jsem dělal tři čtvrtě roku. Neustále jsem ji vypiplával, ehm, a při finálním testu jsem zjistil, že musím hru velmi silně zoptimalizovat, jinak si ji hráči budou raději prohlížet na pohlednicích, než ji hrát. Pak, samozřejmě, je napsaná poměrně nepřehledně a i když se říká, že žádný kód není špatný, pokud dělá to, co má dělat, v tomto případě si tím tak jistý nejsem. Moc se mi ale líbí její koncept a graficky to není katastrofa, takže ji brzo přepíšu do C# a budu doufat, že nikdo další podobnou hru nevydá - jinak by mi zkazil náladu.

Pak je tu např. moje hopsačka s robotem. Ta vypadala - troufám si říct - vcelku pěkně a nakonec jsem o její kód, i grafiku, přišel při havárii disku. Hratelnou verzi prvního levelu bych měl někde mít v .apk souboru a velmi doufám, že až ho najdu, podaří se mi její soubor nějakým způsobem otevřít a získat z něj alespoň něco. Má docela pěknou atmosféru. Je tam i útočná lebka, kterou jsem kreslil asi hodinu. Paradoxně nejhorší na celé hře je pohyb postavičky. Chůze je OK. Když ale skáče, anebo padá, zdá se mi, že to není moc přirozené. A je to tím, že jsem ji kódoval v době, kdy jsem se to teprve začínal učit.

V plánu je dokončit menší projekty, třeba i ty, které jsem vytvořil jen jako prototypy, ale z nějakého důvodu se mi pozdávají. Myslím, že má hodně smysl udělat sem tam i nějakou blbost, udělanou za dvě hodiny o víkendu ve 4 ráno, a myslím, že to bylo právě Ludum Dare, které mi zvedlo hodně sebevědomí co se týče tvorby videoher. Jasně, každý vás za vaši hrůznou destrukci na stránkách Ludum Dare pochválí, i když se jim to vlastně vůbec nelíbí - to samozřejmě vím, ale s přivřením uší se ty pochvalné komentáře tak krásně čtou.

Můj oblíbený komentář mojí "tučňačí" hry: "Epic game XD, nice art style and killing the penguins make things so satisfying"

Takže asi nějak takhle. Dělat sám na větší hře nemá smysl. Menší hry ano, středně velká ohyzdná hra také zřejmě ano - možná ji zkusím, až si budu trošku jistější v C#. Bude mít nějaký "hluboký" art styl, abych mohl tvrdit, že je to takhle schválně, a ne že nic lepšího neumím.

zeal

čtvrtek 5. března 2015

Teď je ten správný čas začít s Unity, je zdarma


Před pár dny byla na GDC 2015 oznámena (pro dlouhodobé uživatele Unity naprosto šokující) zpráva: nová verze Unity se všema jejíma fíčurama je zdarma pro všechny! Už méně šokující to bylo pro ostatní; totiž před pár dny její hlavní konkurent Unreal Enžin oznámil komunistickou distribuci a podle některých tak úplně vzal vítr z plachet jakémukoli oznámení, které si Unity chystalo na konferenci GDC.

Někteří pozorovatelé po zhlédnutí konference tvrdí, že i přes děsivý útok Unrealu se loď Unity stále drží nad vodou a objevily se dokonce i názory, že Unity po oznámení na GDC zmasakrovala kompletní posádku lodě Unreal. Jestli se ji podařilo Unreal potopit, to musí posoudit odborníci. Já osobně jsem nabídkou Unity nadšen, i přesto, že se teď musím naučit milion nových fíčur, ale i těch starších, které fungovaly jen pro platící uživatele.

Příklady starších fíčur, za které se muselo platit a teď jsou zdarma: zrcadla (portály), obrazové efekty (rozostření), lepší optimalizace, lepší stíny, lepší voda a vůbec lepší grafika.

Horší zprávou je, že teď už se nebude moci nikdo vymlouvat na špatnou kvalitu té svojí hry. Je k dispozici enžin, s nímž uděláte moderně vypadající hru, kterou by si mohl kdokoli splést se hrou určenou pro PS4. Unity 5 má pod kapotou obrovský výkon, spoustu nářadí, jak dosáhnout dříve nemožného výsledku. Otázkou nyní je, nakolik jste šikovní, abyste Unity přiměli vyrobit krásný kus softvéru. Už to není problém vašeho PC. Teď je to na vás.

Odkaz, kde stáhnete Unity 5: http://unity3d.com/get-unity

zeal