Oznámení

Sbalit
Aktuálně žádná oznámení.

Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

Sbalit
X
 
  • Filtr
  • Čas
  • Zobrazit
Vymazat vše
new posts

    #16
    O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

    davesade: Ale to by jsem nezkusil, co to dá a já mám 5 let v plánu Sabotéra .
    Amiga - PMD 85

    Komentovat


      #17
      O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

      Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
      ALL: No a s negativnym názorom som počítal - takže smola - ja viem, že toto je brána k možnému pokračovaniu.
      Ja do toho pichnu jeste jednou. Ze python provozovany na Amize neni vhodny na tvorbu akcnich her s grafikou, neni negativni nazor, spis fakt.

      ohledne velikosti ve trech znacich by to bylo "okc" (O Kolik Chces)

      Komentovat


        #18
        O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

        Autorem citovaného textu je ExiE Přejít na původní příspěvek
        Ja do toho pichnu jeste jednou. Ze python provozovany na Amize neni vhodny na tvorbu akcnich her s grafikou, neni negativni nazor, spis fakt.
        Viz příspěvek #13

        Ohledne velikosti ve trech znacich by to bylo "okc" (O Kolik Chces)
        OK, beru tohle jako to ještě jedno píchnutí, protože v 1. části máš pravdu a je to fakt.

        A teď si slovne píchnu jednou já: Již odpoveď mám od 2 lidí. No a ExiE mezi ně jak je vidět nepatří.
        Amiga - PMD 85

        Komentovat


          #19
          O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

          Tak, hodně jsem přemýšlel o tom jak co budu řešit. Bude změna v ovládaní hry. Sabotérem nebudeme pohybovat mačkáním Entru (co by bylo o nervy), ale budeme mu vybírat kam má jít. Třeba klávesa 3 určí, že má přejít z levé části obrazovky na pravou část. Když tam bude tak již jen Entrem se potvrdí pokračování zvoleného směru a sabotér přejde do nové místnosti a počká na její začátku. Když bude střet s protivníkem přejde se do hry na tahy.

          Odzkoušel jsem jakou největší velikost písma můžu použít, aby se mi vše vešlo na 1 obrazovku. Skončil jsem u velikosti písma 42 (původne to bylo 50). Sabotéra jsem již nanovo amatérsky nekreslil, nakreslil jsem si jen takové jednoduché testovací znaky. To málo, co jsem měl naprogramované jsem smazal a začínam nanovo. Na výšku mi písmo o velikosti 42 na obrazovku vleze 6 krát a 4 pixely zůstanou nevyužity. Sabotér je při tomhle rozložení obrazovky né zcela na její středu v rámci joho svislé polohy. Dávam ho více na střed tím, že obrazovku posunu směrem dolů o nevyužité 4 pixely. Ale snad to neni tak hrozný (dle mne je to v normě). No a je načase vyčistit obrazovku od líšt Workbenche a podobných zbytečností pro hru . Rozdělení obrazovky směrem odshora dolů:

          1. Úplný vrch místnosti (grafika stropu, žebříku).
          2. Prostor pro sabotéra když skočí (aby měl kam ).
          3. Pozice samotného sabotéra.
          4. Úplný spodek místnosti (grafika podlahy, žebříku).
          5. Pracovní prostor (vkládání znaku pro směr).
          V nejhorším případě tahle oblast bude zamaskována (barva písma bude stejná jako barva pozadí).
          Vše se bude vyvíjet dle situace... .
          6. Grafika pro to co třeba sabotér nese.

          Nemůžu dát "pracovní prostor" pod "Grafiku pro to co třeba sabotér nese.". Po stisku klávesy Enter se roluje obrazovkou a kdyby se tak stalo v její spodní části, posunulo by mi to celou "grafiku" místnosti. Když se tak stane o jednu úroveň výš, pozici vozíku si pak již určím sám.

          Když jsem obkresloval sabotéra z počítače PMD 85, všiml jsem si, že jeho okraj je lemovaný 1 pixelovou mezerou. Samotný sabotér tedy není přímo na podlaze, ale mezi ním a podlahou je 1 pixelová mezera. Tohle jsem zavedl již i v testovacích znacích. Když tedy mám velikost písma 42, samotný znak má v zobrazení výšku 40 pixelů.

          No a mám 1. verzi možného použití zpracování samotného překrývání se třeba 2 postav mezi sebou. Dělám to propočtem, ale co se týče počtu znaků mi to zabere místo jako samotná animace. Použil jsem na to vlastnost proporcionálního písma a možnost takového písma (písmen) se mezi zebou překrývat. Zabere to ale hodně znaků. Na 1 situaci 7 znaků. Když ale sabotér bude k někomu přistupovat zboku tak jsou to hned situace 4. Na oba možné směry situace 2. Překrývaní se s přístupem zepředu a zezadu. To máme 28 znaků a to je celkem hodně. Snad to takhle pude udělat a s počtem znaků zankové sady se vlezu do všeho co mne ještě čeká. Maximálne to jistí grafika tvrdého lemování, tedy bez použití překrývání.

          Nejdřívé propouštela "grafika" protívníka samotného sabotéra. Pak jsem si uvědomil, že to budu muset udělat univerzálnějším a obrátil to. Těď propouští sabotér protivníka. Takže proti sabotérovy můžu postavit cokoliv a mělo by to být řešeno samotným překrytím.

          No a někdo z AMIGA REVIEW zaslouží po prstech. Ten kdo psal článek na Typeface 1.0., když zaměnil funkčnost "Spacing" a "Kerning" u proporcionálního znaku, kde "Spacing" je mezera za znakem! Když napíšu 2 znaky a u 1. znaku použiju "Spacing" na základě kterého se mi 2. znak začína překrývat se znakem prvním a parametr "Spacing" je pro 1. znak a né druhý tak je to mezera za znakem Ty šmejd jeden!!! . Normálne si mne z toho zmagořil až jsem se z toho vymotal! . Kerningem jsem překrytí nedosáhl (ani kladným a ani záporným) protože se ním určuje mezera před znakem! Áno správně si to napsal, bavíme se o právě editovaném znaku a ne o znaku co je po něm!

          OK to bych měl a teď testovací video. Výkon Amigy je pod A600 .
          Trochu trpělivosti, Python dává A600 již opravdu zabrat. Jen jsem chtěl ukázat že mám u A1200 rychlostní rezervu (snad bude stačit). V programe mám zpomalení o 0,2 vteřiny které po 2 opakováních odstánim a nasledují další 2 opakování. No a příště už radši s výkonem A1200 .

          EDIT: Výsledek 28 upravuji prozatím na 14. Nebral jsem protivníka jako objekt a on to je taky jenom objekt. Měli by jsme protivníkem se sabotérem "proplout" a je tedy jedno, jak je k nám otočen... .

          Naposledy upravil Lisiak; 20.09.2014, 15:51:59.
          Amiga - PMD 85

          Komentovat


            #20
            O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

            Autorem citovaného textu je Lisiak4 Přejít na původní příspěvek
            Ještě jednou. Je důležité začít s něčím. Potřebuji si odzkoušet logiku.
            Je dobre zacat hned od zaciatku dobre. 8-) (vid. MS Windows - oni zacali spatne a uz to nenapravili....)

            Na odskusanie logiky,atd. ti fakt odporucam pouzivat aspon Amos Basic, ktory ti pomocou jednoduchych prikazov umozni otvorit obrazovku,nahrat grafiku, vykreslovat sprity a boby a tym padom sa mozes hrat s riesenim logiky...
            Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
            Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

            Komentovat


              #21
              O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

              DJM: Vidím, že máš rovnakú vytrvalosť ako ja .
              Amiga - PMD 85

              Komentovat


                #22
                O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                DJM: Plánuješ v budúcnosti urobiť aj niečo iné ako intro/demo? Viem, že si v minulosti urobil pár jednoduchých hier, ktoré neboli naprogramované v assemblery, láka Ťa stále aj táto oblasť? Alebo nejaký SW?
                Amiga - PMD 85

                Komentovat


                  #23
                  O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                  Demoscena je u mna na prvom mieste, takze v plane je dalsie intro alebo demo. V Trifle bol pouzity aj assembler. Programovat hry ma lakalo hlavne medzi rokmi 2002 az 2006. Potom som si uvedomil, ze ked spravim aj funkcny engine (okrem inych som mal rozrobenu RTS), tak nebudem mat grafiku,atd.. Co sa tyka programovania SW na Amigu, tak si robim rozne "tools" len pre vlastne pouzitie (konvertory,editory), inak ma nenapada aky SW by na Amige chybal, resp. bol potrebny...
                  Najhorsie na tom vsetkom je, ze mam strasne malo volneho casu a bohvie kedy sa mi zas podari nieco dokoncit...
                  Amiga 1200T (E/Box)+BlizzardPPC 603p/363+060/66+BVision PPC+256MB+KS3.1+Cocolino+Lyra 2+Fast Ata MK-IV+320GB WD Blue 3200AAJB PATA HDD(PFS3)+dvdrw+dvd+cf2ide
                  Amiga 1200+BlizzardPPC 603e/210+040/25+128MB+KS3.1+CF4GB(PFS3)

                  Komentovat


                    #24
                    O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                    Máš to vyriešené, demoscéna je v súčasnej dobe pre Teba najdoležitejšia.
                    Amiga - PMD 85

                    Komentovat


                      #25
                      O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                      Líbí se mi, že v tom pokračuješ - ale z toho videa jsem absolutně nic nevyčetl .
                      Amiga 1200 + Blizzard 1260 + 64 MB RAM + CF2IDE + Indivision AGA Mk1 + PCMCIA2CF + WHDLoad registered + GOTEK

                      Komentovat


                        #26
                        O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                        No jde o to, že při setkání se oba objekty vzájemně překrývají. A to používám znaky. Kdyby jsem nepoužil parametr pro proporcionální font, tak by mi jeden znak zakryl ten druhý. Tedy grafika v rozmezí znaku sabotéra (okolí sabotéra v rozmezí znaku, který sabotéra zobrazuje) by byla třeba černá a při přechodu místnostmi by kolem sabotéra byl černý lem a to se snažím vyřešit. Snad se zadaří. Nemám hotovo, ale vypadá to slibně. Chtěl jsem to dorazit již minule, ale nepovedlo se. Pořád jsem se v nečem kopl a posouval dál po krůčcích.

                        Na videu je jednoznačně vidět, že se vykreslují oba znaky současně i když se překrývají. Znaky jsou tedy 2 samostatné. Tohle není čistá animace. Současné překrytí a vykreslení obou znaků dělá samotný Workbench. Plocha sabotéra bude muset být celá zaplněná, jinak bude nezaplněná plocha průhledná a bude se přes ní vykreslovat okolní grafika, třeba cihla na zdi, co je ale pořád lepší jako mít kolem sabotéra nevzhlednou grafickou díru v rámci jednoho znaku.
                        Amiga - PMD 85

                        Komentovat


                          #27
                          O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                          Po tom, co mi Mistic Joe řekl své ano (na grafiku) jsem se v pátek a v sobotu věnoval psaní logice saltu sabotéra, co považuji za rychlostně nejobtížnější úkol v rámci programu. Zatím nemám úplně hotovo, jen takový polotovar, je z toho ale vidět rychlost pohybu sabotéra při skoku a vypadá to použitelně. Zatím jen skok, který se pak rozanimuje na salto (každá nová pozice testovacího obrázku je nově vykreslený obrázek - neposouvám ním).

                          Narazil jsem na další BUG někde mezi Vesmírem a Pythonem. Stručně řečeno, pokud chceme jako první zobrazit znak, který je mimo hodnotu ASCII kódování, nefunguje při něm parametr proporcionálního fontu (Spacing, Kerning), po napsání jednoho znaku v rozmezí ASCII již vše funguje jak má.

                          Naštěstí po krátkých asi 12 hodínách od vzniku problému jsem dospěl k finálnímu řešení. Čas rozložen na standardní poměr - cca 11h 55min zjištění, že chyba není u mne, ale někde mezi Pythonem a Vesmírem + dostatečné hraní se s daným problémem aby jsem nabral jistotu, že se to za nějakých podmínek někdy nebude chovat jinak (co se vlastně i tak může někdy stát ). No a 5 minut vyřešení problému, při animaci mimo ASCII budu dávat před znak ješte 1 znak ASCII o nulové šířce - tohle jsem testoval krátce, ale vypadá to funkčně.

                          Tohle pro hru bylo dobré vyřešit - jen 1/2 znakové sady na animaci je na hraně a pro mne nedostačující.

                          Skok sabotéra bude ve 2 znacích a u salta by to mělo být taky tak (uvidíme). Až při použití znakové sady mimo ASCII se budou zobrazovat znaky 3 i se znakem o nulové šířce. U polotovaru ve videu ale zobrazuji 4 znaky naráz a to sabotéra + 3 znaky při jeho pohybu před ním, aby bylo hezky vidět jak znakama (grafikou) prochází.

                          Už si dnes zkusím dát odpočinek od programování a hlavně kvůli Mistickovi a třeba někomu dalšího, koho to co dělám zajíma dávam k dispozici video polotovaru. Všechny neduhy v zobrazení budou pak programem odstraněny.

                          Vše se opakuje 2 krát. Výkon přibližně na A600, pak A2000 a pak A1200. Nepoužívám zpomalení, animace jede naplno. Před skokem se jen 3 vteřiny záměrně čeká. Zpomalení bude muset být použito u Amigy s turbínou, nebo třeba u A3000.

                          A teď video:
                          My other games with AmigaPythonProgramming for fun! :D


                          EDIT: Těma neduhama v zobrazení jsem měl na mysli, že za sabotérem bude pozadí a nebudou se postupně vykreslovat znaky, při třeba A600 je vidět problikávání vozíku, barvu vozíku pak můžu dát do většinové barvy, co bude použita ve hře a tím ho trochu schovat ale vždy budou ve hře alespoň 2 barvy a vozík při "pomalejší" Amize bude trochu vidět a trochu i při té rychlejší.. .
                          Naposledy upravil Lisiak; 05.10.2014, 13:21:31.
                          Amiga - PMD 85

                          Komentovat


                            #28
                            O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                            Jinak potřebuji taky řešit ovládací menu, které bude hned pod místností a pod ovládacím menu bude inventář sabotéra. Ovládacím menu myslím to, kde se budou zadávat pokyny pro sabotéra, jak jsem již psal, že bude změna ovládání, když teď nemám test stisku klávesy. Budeme tedy přímo vybírat místo, kam má sabotér jít (k bedně s věci, na kraj místnosti a po entru se přesune do té další) a taky k boji, který bude na tahy. I když nemám test stisku klávesy, mám za to, že se dá udělat interaktivní výběr (snad se nepletu ), tedy po stisku klávesy se zobrazí naše volba a tu pak entrem potvrdíme. Na to já vidím nejideálnější rezervovat klávesy 0 až 9 - grafika těchto kláves by byla vyhrazena pouze pro naši volbu pro ovládání hry. Pro Amigu 600 nekomfortní, ale kdyby jsem to posunul na klávesnici třeba (q,w,e,a,s,d,y,x,c) tak nevím, čísla mi připadají nejsympatičtěji. Chtěl bych tyto čísla pak dát i přímo na místo v místnosti, kam se sabotér vybere chůzí. Nevím teď přesně kolik kláves budu potřebovat na ovládání hry, to se pak když tak upraví.

                            Můžu taky udělat ovládání naslepo - v místnosti se jen zobrazí číslo pro správný směr kam má jít sabotér, ale po stisku klávesy se nezobrazí naše volba, ta se vykoná až po stisku klávesy enter, čím ušetřím klávesy 0 až 9 pro grafiku místnosti/sabotéra, protože by jsem v míste pro ovládání hry grafiku schoval stylem stejná barva písma a pozadí... .

                            Jakékoliv kloudné názory vítány!
                            Amiga - PMD 85

                            Komentovat


                              #29
                              O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                              Vidím zde nejaké pohyby... takže pokud někdo nechodí na OldComp - hodlám dál pokračovat v jazyku C, hlavně kvůli testu stisku klávesy, který v AmigaPythonu nemám.
                              Naposledy upravil Lisiak; 09.10.2014, 17:29:15.
                              Amiga - PMD 85

                              Komentovat


                                #30
                                O: Jak naprogramovat svojí první hru? (Saboteur - verze z PMD 85)

                                Autorem citovaného textu je davesade Přejít na původní příspěvek
                                Dělat hru pro Amigu pomocí ASCII, resp. UDG, to zní dost ostřácky! S programováním ti jako obvykle nepomůžu, ale kdybys hledal nějaké vodítko, jak takového Sabotéra napsat, před delším časem jsem něco málo načrtnul u sebe na blogu.


                                Kdyby se ti to líbilo a chtěl bys to rozpracovat do detailu, dej vědět!
                                Tak jsem si to zběžně přečetl, príspěvek z roku 2012 je hodně do podrobna rozpracován a né všem definicím rozumím (ale je supr, že dokážeš věci do podrobna promyslet, to je velice důležitá vlastnost! ), co jak přesně myslíš, to teď není důležité, ten z roku 2011 je již pro mne přehlednější.

                                Ono je velice sporný, jak by měl vypadat další díl Sabotéra, správný pohled na to může mít jedině samotný tvůrce originální hry .

                                Přesnejším pojmenováním je dle mne inspirace hrou než samotné pokračování.

                                Nejak nepřicházím na chuť těm automatickým likvidacím při zmačknutí tlačítka FIRE, přijde mi to divné, aby závislost úpěchu akce záležela na stisknutí FIRE ve správný čas, ale třeba jen něčemu nerozumím a pak si to špatně představuji.

                                Psal si, že by ve hře mělo být málo nepřátel. Je prvdou, že v sabotérovi, alespoň ve vetzi pro PMD 85 je málo nepřátel, ale nebál bych se ten počet zvýšit. Přechod do obrazovek by měl být zachován, s tím souhlasím, ale ja bych upřednostnil volný pohyb nepřátel po budově (nebo kde), aby hráč neměl nacvičený, že vždy někde samotný protivník bude. Na důležitých místech by nekteří protivníci neopouštěli své stanoviště. Ostatný věci bych nechal otevřené

                                Je třeba stanovit základní vlastnosti hry.

                                - Na postupném přechodu do obrazovek jak je to v Sabotérovi se asi schodnem... ?
                                - Tak co nepřátelé s volným pohybem, nebo volný pohyb + nekteří neopustí místnost (má volba), nebo nikdo neopustí svojí místnost... ?

                                To je asi vše, v čem by jsem si těd rád udělal jasno.

                                A teď něco ode mne. Samozřejmě se chci pokusit naprogramovat hru. Co bych rád:
                                - Hra bude naprogramována v C (test logiky v Pythonu si budu dělat jen pro sebe.)
                                - Pokud to úspěšně dokončím, tak samotný čas dokončení bude až za dlouho - nebudu se věnovat pořád jen tvorbě téhle hry - bude to můj první program v C a vše se budu učit za běhu - i zjišťovat jestli mám na to různé problémy vyřešit nebo nemám. Můj odhad, pokud s tím neseknu je 3 až 5 let.
                                - minimálně to bude lehce podprůměrná hra a lepší, pokud ji budeme srovnávat s těma nejlepšími hrama (v jejich meřítku).
                                - hra by neměla být zdarma, ale nevylučuji i opak.

                                Plánuji si z času na čas od tvorby hry i tak na 6 měsíců odskočit a věnovat se něčemu jinému. Krásný příklad je vidět i v datumu v současné době již mého předposledního příspěvku.
                                Naposledy upravil Lisiak; 12.05.2015, 16:15:57.
                                Amiga - PMD 85

                                Komentovat

                                Zpracovávám...
                                X