Diskuze o textových hrách

Kroužící orel 2

gaspoda

  • Plný člen
  • ***
    • Příspěvků: 137
    • Zobrazit profil
He, he, to jsi mě pobavil, na WTF momenty jako začátečník narážím ve všech jazycích, vím ale, že jsme se v minulosti o tomto bavili a doporučoval jsi začít nějakým neskriptovacím.

Můj poslední WTF v Pythonu byl, když jsem si udělal dvě úplně stejné globální proměnné (byly to kurzory mysqldb) a když jsem je použil úplně stejným způsobem z funkce, tak jeden fungoval a druhý mi řekl, že používám nedeklarovanou lokální proměnnou.

Měl bych dotaz na Klub Kapsa, je na něj odkaz z tads.cz a už dříve jsem jeho stránky prozkoumal. Fungujete stále (teď třeba vzdáleně) s využitím C++ a grafických knihoven s IDE QT Creator? Teď jsem zjistil, že je k mání i kroužek Pythonu pro mladší účastníky. Mě by zajímaly reakce dětí, jak se na tyto jazyky dívají a zda se pro výuku osvědčily? Dříve jsem na táborech dětem také v učebně ukazoval něco v linuxu a počítačovém mapování, teď už sotva stíháme program venku a u koní, takže jsem počítadla zcela vyškrtnul, proto by mě zajímaly Tvé zkušenosti.

No, teď je činnost kvůli zákazu vycházení pozastavená, ale já se přesto snažím kroužek i tak učit online formou, což je pochopitelně o dost složitější. Zítra budeme mít hodinu s letošníma začátečníkama a sešla se docela dobrá parta, někteří se spolu dokonce znají, což je víc motivuje. Kroužek C++ je můj, Python učí kolega. On to má postavené pro ty mladší kolem 6. třídy, takže na to jde pomalejš a dělají více izolovaných příkladů, u mě začínají zpravidla tak osmáci a jdeme postupně spíš do větší práce, kterou společně tvoříme a přitom se učíme nové věci. Moc je nešetřím, leccos si musí vydedukovat. Co na to říkají nevím, nemají čas moc mluvit, ale jestli chceš, tak se jich přijď zeptat (napiš do mailu).

Ne vážně, na programovacím jazyku tolik nezáleží, já to C++ mám poměrně rád, protože se s ním dají celkem dobře dělat jednoduché hry, ale ve výsledku učím dost osekanou podmnožinu a kolikrát mi jde víc o pochopení toho, jak to funguje na pozadí, než abych je naučil nějakou finesu jazyka samotného. Ty širší souvislosti jsou pro mě důležitější.


Kroužící orel

  • Plný člen
  • ***
    • Příspěvků: 183
    • Zobrazit profil
    • Šťastný statek
Jo, tak to Tvoje rozčarování Pythonem chápu, když jazyk použije stejně deklarované globální proměnné jednou tak a jednou jinak bude asi trochu vošajstlich, schválně jsem si zkusil něco v tomto duchu zadat do vyhledávače a trochu si početl:

https://stackabuse.com/local-and-global-variables-in-python/

plus jsem jen ze zvědavosti projel jeden odkaz ze stackoverflow:

https://stackoverflow.com/questions/52413337/python-variable-not-defined-within-function/52413443

Nezkusil ses na tohle chování zeptat třeba právě na výše uvedeném serveru? Zrovna v Pythonu by bylo divné, kdyby se s něčím takovým nikdo nesetkal. Mě docela dostala ta terminologie ohledně funkcí a metod, čekal bych spíš, že v plně OOP jazyce funkce nebudou, to jsou ale naštěstí jen prkotiny, na které se dá zvyknout.


Ano, to je paráda, že můžeš učit alespoň přes internet, u mě se na koních tímhle stylem jezdí drobet hůř. Pokud se děcka stále setkávají, je to paráda, to je to nej na každém klubu, moc jsi mě pobavil s tím "nemají čas moc mluvit", ale chápu, u mě je to podobné, táborníci si mohou žvatlat co chtějí, ale musím je utahat, aby mi nerozbili barák. Ohledně jazyka jsem přesně něco takového četl a posté slyšel od autora knihy Java 7 - Učebnice objektové architektury pro začátečníky, jde o to pochopit princip a pak už se stačí seznámit jen s jednotlivými odlišnostmi jazyků (a naučit se jejich přednosti, případně je spojit a využít obou - třeba tady se mi moc líbí CPython). Proto mě tak baví TADS, který dokáže pro moje zájmy neuvěřitelné věci, jeho OOP principy využiji v C++ a Javě plus následně si budu moci sáhnout na tu zajímavou Adu:

https://learn.adacore.com/pdf_books/courses/Ada_For_The_CPP_Java_Developer.pdf

a to samé Python, který mohu propojit třeba s C díky výše uvedenému a pomocí C++ se třeba pěkně vrátím zase směrem k Javě.

Na druhou stranu nelze přehlédnout, že mě baví Linux a Windows nebo Android sleduji jen z povzdálí, nakousnutého jabkouna už vůbec. Tady to bez Cčka opravdu nepůjde a protože chci vědět jak systém funguje, nelze jinak (pokusy o OS v Pascalu nebo v Adě jsou spíše testovací projekty). Ptal jsem se na klub taky proto, neb většinou vidím u začátečníků Javu nebo dnes spíše ten Python a když se upřímně juknu na aplikace, které mě zajímají, tedy prostředí Trinity desktop, astronomické Stellarium nebo mapový QGIS, C++ bude třeba (a např. pomocí zajímavého Treefrog frameworku si sáhnu i na ty dnes tak oblíbené aplikace pro web). IDE jsou dle mého názoru na úrovni Javy (teď koukám, že nový QT Creator už má i svůj Marketplace, všichni se tak krásně vopičí) a i přes snahy nahradit C++ třeba Javou, Go nebo Rustem tenhle vesele žije a stále se vyvíjí, což je skvělý ukazatel jeho kvalit, ono to s tou jeho složitostí také nebude tak horké, když právě pochopím princip.

Bezva, díky za zaslané zkušenosti, půjdu zase tvořit a študovat dál.


Kroužící orel

  • Plný člen
  • ***
    • Příspěvků: 183
    • Zobrazit profil
    • Šťastný statek
Hru stále tvořím, teď to jde krapet pomaleji, kromě toho, že máme dětičky stále doma pomáhám s testováním nové Pythoní knížky, tvořím web pro MŠ a začaly individuální jízdy na koních plus příprava táborů, na Orla dvojku ale nezapomínám a postupně budu pokračovat dále. Už se moc těším, až vydám plně hratelnou verzi.


gaspoda

  • Plný člen
  • ***
    • Příspěvků: 137
    • Zobrazit profil
Jasně, držím palce! A už jsem alespoň v té fázi posledních 20 % programování, které trvá 80 % času?


Kroužící orel

  • Plný člen
  • ***
    • Příspěvků: 183
    • Zobrazit profil
    • Šťastný statek
He, he, tak to na mě sedí. Ale hru dokončím, i kdyby trakaře padaly, jen je to s ratolestmi doma časově náročnější plus všechny koňské akce z března a dubna se vesele valí. Ale nevadí, scénář je již dávno hotový, už "jen" vše doprogramovat. Každopádně vycházejí stále nové textovky, moc se těším, až vyzkouším Nové Kainovo dobrodružství, ale až po práci. Za chvíli jedeme zase na řechtácích a poté hlídám dcérenku, zítra už zase budu pokračovat, už se těším.


Kroužící orel

  • Plný člen
  • ***
    • Příspěvků: 183
    • Zobrazit profil
    • Šťastný statek
Krásné ránko přeji,

tvorba se pomalu, ale jistě chýlí ke konci, už mám jen dva týdny, než začne letní tábor a pak už opravdu neudělám nic. Téměř denně jezdíme, ale vždy ve volné chvíli pokračuji v tvorbě, koncem příštího týdne těsně před nástupem táborníků hru vydám - i třeba bez kompletní nápovědy (využiji tu stávající a pokud budu moci, lehce upravím), počítání skóre nebo bez tipů (s těmi ještě uvidím, naštěstí není problém je časem dokončit), hlavně aby šla hrát a hráče alespoň trochu bavila. Tvorbu rozhovorů už jsem docela pobral, takže by neměl být problém, ještě s nimi propojím pár klíčových předmětů a akcí, závěrečné testování a bude možno hrát, naštěstí určité zkušenosti s OOP už díky Tobě,  Javě a Pythonu mám, takže OK.

Moc jsem si oblíbil QT Creator, po táborech se pořádně vrhnu na C a především C++. Zjistil jsem totiž, že drtivá většina programů, které využívám, představuje kombinaci C++ a QT5 (QTads, QCad, FocusWriter, LyX, QGis, Stellarium, VLC), případně Pythonu a QT5 (Callibre, PGAdmin, Jupyter QT Console) a protože Linux na dlouhou dobu určitě neopustím, není co řešit plus pro mé starší stroje se jedná o jistě parádní řešení. I když zkouším různá IDE, QT Creator mě oslovuje čím dál více (nejen pro TADS, ale u C++ určitě využiji parádní UML modeláře, profiler a bezvadnou offline dokumentaci) a nedivím se, že jste se pro něj rozhodli v kombinaci s grafickou knihovou SDL (ta je pokud se nemejlim i u Pedrova TXT Engine) i na Kapse. Jak vidno, QT opravdu frčí a dnes už nejen na klasických desktopech a i přes zpoplatnění LTS verze (podobně jako u Javy, obě firmy naprosto chápu, musejí vydělávat) mi přijde jako velmi zajímavá kombinace. Když vidím to obrovské množství parádních příkladů a návodů právě z QT Creatoru, je vidět, že aplikace, které budu chtít vytvářet/upravovat toto kombo krásně pokryje.

Máš nějaké zkušenosti s vývojem v QT5, nezkoušeli jste s ním pracovat i na Kapse (je mi jasné, že práce s SDL bude určitě snadnější, ale co kdyby)? Je zde i starší zajímavý fork QT3 s názvem TQT3 využívaný v prostředí Trinity, ten je ale spíše udržovaný, než vyvíjený (což samozřejmě nemusí být na škodu) a moc bych rád slyšel názor od někoho, kdo s C++ léta pracuje.

Zatím se loučím a jdu zase pokračovat



panprase

  • Administrátor
  • Superčlen
  • *****
    • Příspěvků: 648
    • Zobrazit profil
No supr, už se těším na indiány zase :) píšu si - příští týden nic nevydávat. A´t se to nemíchá.
První den přiletěli, druhý den uděřili, třetí den zvítězili


Kroužící orel

  • Plný člen
  • ***
    • Příspěvků: 183
    • Zobrazit profil
    • Šťastný statek
Máš recht, indiánů i koní si užiješ dosytosti. Druhý díl se stejně jako první odehrává v parném létě, ten třetí už zasadím do pořádné zimy, ať se pomalu připravíme na východní frontu. Moc mě zajímá jak bude TADS přijat vedle parádního TXT engine i dalšími textovkáři, mě se jeho OOP styl líbí čím dál víc a jeho možnosti využiju tak sotva z poloviny.


Kroužící orel

  • Plný člen
  • ***
    • Příspěvků: 183
    • Zobrazit profil
    • Šťastný statek
Kroužící orel 2 - vydání nedokončené hry

Je mi moc líto, ale do začátku prázdnin naprosto nemám šanci hru vydat, i když jsem v to doufal - vzhledem k neustále se měnícím situacím tohoto roku plus opravdu nejsem schopen u pro mě tak rozsáhlého projektu se zatím malými vývojářskými zkušenostmi odhadnout čas tvorby. Do začátku táborů musím vyřešit strouhání kopyt koní (3 kopytáři v okrese vypadli), původně zářijové školní soustředění u koní se přesouvá na příští týden kvůli změně programu a já budu mít na tu nejnutnější závěrečnou přípravu táborů pouze 3 dny (naštěstí to nejdůležitější už je připraveno), takový je život.

Ale abych neskuhral, ideální řešení pro tuto chvíli se mi zdá vydat hru tak jak je včetně scénáře, doprovodných textů a zdrojových kódů. Vše jsem co nejpřehledněji rozdělil a níže popisuji, co se v přiloženém archivu nachází. Atmosféru hry si lze užít už nyní, kdo má zájem, může se začíst do téměř 100 stránkového scénáře a prozkoumat zdrojové kódy. V tvorbě budu zase pokračovat po letních táborech, kdy je na počítačové záležitosti vždy více času, má-li však kdokoliv zájem s vývojem pomoci, je velmi vítán.

TADS3 přestavuje opravdu regulérní programování ála C++ nebo Java (jen manuály vydají na parádně silnou vývojářskou bichli), kdo zná konstrukce např. z těchto jazyků, bude se zde cítit jako doma. Já jako začínající vývojář musím nad mnoha konstrukcemi dlouho dumat a vývoj se tak prodlužuje, to je ale daní za velmi komplexní jazyk (a musím uznat, že opravdu špičkový). Vyvíjím v Linuxu (Arch Linux, interpretr frobtads 1.2.4, editor Pluma z grafického prostředí MATE nebo QT Creator, pro hraní využívám QTads nebo řádkový frobtads, zjistil jsem, že starý dobrý windowsí TADS Workbench už téměr nevyužívám). Všechny txt soubory jsem pro jistotu převedl do Win kódování. Inspirací je mi především Základna na Asteroidu, Dobrodružství Heidi a moje prvotina Exoter, více info zde na fóru nebo na stránkách www.tads.cz .



Následuje slíbený popis adresářů seřazený abecedně:

Informace k tvorbě - zde je k mání návod na TADS3 od Gaspody, nastavení editoru QT Creator a technické informace ohledně kódování nebo mluvnice

Mapa - mapa vytvořená v programu Trizbort, který z ní dokáže vytvořit kostru lokací mimo jiné i pro TADS3

Scénář - pdf soubory představují vlastní scénář i s nástinem světových stran (zde jsem však využil Trizbort), popis předmětů a návod k úspěšnému projití hry. Důležitý pro aktuální vývoj je soubor 2 díl - Indiánská vesnice vč. světových stran.txt, právě ten slouží k vývoji nedokončených místností, předmětů a situací. Na první pohled veliký, jedná se ale především o nedokončené rozhovory a akce, které už nestihnu doprogramovat

Spustitelná hra - zde je t3 binární soubor spustitelný v některém z interpretů

Testy situací - adresář s minimálním počtem místností, kde testuji situaci, kterou právě programuji (rozhovor, reakce postav, akce s předměty apod.). Zde jsem řešil vše, nač jsem se ptal na fóru, je to můj způsob testování vždy jen konkrétního úseku hry, který poté, co projde, přidám do hlavních zdrojových kódů

Zdrojové kódy - tyto lze pomocí příkazu t3make nebo ve Workbenchi bez chyb zkompilovat a získat t3 binárku, v soboru Makefile.t3m jsou všechny uvedeny. Zvolil jsem velbloudí notaci, nacházejí se zde místnosti, postavy a jedna externí třída, kterou využívám pro popis a akci s oděvy.



Snad jsem na nic podstatného nezapomněl, pokud někomu i tento nedodělek udělá radost, splnil svůj účel. Jakékoliv dotazy zodpovím, chce-li se někdo zapojit do vývoje, bude to paráda, jinak budu pokračovat během září. Máte-li kdokoliv v nejbližších dnech v plánu vydat jinou textovku, určitě s chutí do toho.