RSS

Hra s letadly (soutěžní) - vývojařský deníček :)

04/11/2014 - 03:57
Avatar
AfBu

Ahoj všem,

doufám, že to není moc troufalé, ale když už dělám soutěžní hru, možná by někoho zajímalo jak to postupuje, s čím se peru a tak. Tak jsem se rozhodl založit jí malý dev-log tady na fóru (nechť me Sledge odpustí).

Název: prozatím není

Princip hry: je zatím tajný, až to bude z ukázek dost jasné tak doplním, zatím řeknu jen, že hra bude o letadlech a určitě mou inspiraci mnozí velmi brzy poznáte (pokud vím portu této hry se DOS nikdy nedočkal), chci udělat rozumnou grafiku, snad i nějaký zvuky a hlavně drobně rozšířit hratelnost o pár svých nápadů ;o)

Jazyk a nástroje: Turbo Pascal 7, Grafx 2, Sublime Text 3, DosBox

4. 11. 2014:

Video ochutnávka: http://youtu.be/q9pWljKn5VA (omlouvám se za náhodné skřeky co to vydává, je to jen test SB zvuku)

  • přepsal jsem většinu procedur pro manupilaci s grafikou, takže je teď moje knihovna mnohem pružnější, umí třeba renderovat do libovolného bufferu, tím se dá na úkor paměti výrazně zvýšit výkon
  • implementoval jsem SoundBlaster zvuk, není to moje knihovna, zvuk pro mě není zatím prioritou, ale chtěl jsem mít vše co budu potřebovat alespoň nějak implementované od začátku
  • vytvořil jsem si knihovnu pro nahrávání a práci s tilesety, takže teď můžu z jednu bitmapu rozřezat na kousky a ty si používat dle libosti, ušetří to spoustu času při tvorbě grafiky, protože není třeba tak úskostlivě hlídat paletu barev
  • začal jsem s rozdělováním kódu do tématických celků a začal hned editorem map, ten je teď nejpotřebnější, není nic horšího nez hrát si s náhodně vygenerovanými daty
  • a to nejdůležitější, je tu první poctivá pixelartová grafika! Dokonce mám pocit, že to skutečně začíná připomínat hru :D
  • nejvíc se peru s ukazateli a alokací paměti, na to už jsem úplně zapoměl. Díky nedávným pokusům s Atari 800 mám alespoň nějaký základ co se paměti a práci přímo s HW týče. Uff, držte mi palce!

PS: Zipnutá binárka s daty a dvěma mapami má v bratru krásných 12Kb, tak se snad ve finále do limitu vejdu! Jestli se k tomu zítra dostanu, vyzkouším na reálném HW, bohužel nemám nic extra slabého (Toshibu Satellite s P1@233MHz tuším), takže časem poprosím o nějaké testy výkonu Vás :) Dodnes se tluču do hlavy, že jsem kdysi svou 486/DX2 poslal z domu :(

04/11/2014 - 08:59
Avatar

Zcela naopak, já tohle vřele vítám a uděluji pomyslné plusové body! ;)

Můžu se zeptat na "workflow"? Píšeš kód v Sublime a pak následně pod Dosboxem ručně kompiluješ a testuješ, nebo na to máš nějakou zkratku?

04/11/2014 - 11:52
Avatar
LubikCZ

Tohle je pro mě sci-fi!!! :O :D, ale dobrý návod. Třeba se někdy k něčemu takovému taky dokopu :)

Každý počítač je hloupý nebo chytrý pouze tak, jako jeho majitel.

04/11/2014 - 12:24
Avatar
AfBu

Sledge napsal(a)
Zcela naopak, já tohle vřele vítám a uděluji pomyslné plusové body! ;)

Můžu se zeptat na "workflow"? Píšeš kód v Sublime a pak následně pod Dosboxem ručně kompiluješ a testuješ, nebo na to máš nějakou zkratku?

Nad tím jsem právě dost špekuloval, hlavně zprovoznit tpc aby dělalo to co má. Výsledek je ten ze píšu v Sublimu a když je čas na kompilaci, spustim cmd, to spustí dosbox a v něm bat, ten provede kompilaci, počká na libovolnou klavesu (kvili chybám) a pak spustí exe s hrou. Stejným způsobem funguje i konverze grafiky. Až budu u pc, hodím sem ukázku...

04/11/2014 - 18:18
Avatar
AfBu

Slibovaný návod, jak na použít TPC pro kompilaci bez TP IDE. To jak napsat baťáky, které to celé automaticky spustí v DosBoxu snad psát nemusím ;)

  1. je dobré mít v PATH složku BIN z TP
  2. vytvořil jsem si rozumnou adresářovou strukturu tedy:
    SRC - pro zdrojove kody (muze obsahovat i podslozky, ty je pozdeji nutne predat kompiatoru v konfiguraci)
    OBJ - pro externi knihovny
    CFG - pro konfiguraci kompilatoru a zakladni knihovnu TP
    BIN - pro vystup binarek
  3. ve složce CFG jsou potřeba dva sobory: TURBO.TPL (ze složky BIN samotneho TP) a TPC.CFG, který bude obsahovat třeba následující:
    /B - donutí kompilátor překompilovat všechny includnuté knihovny
    /$M65520,0,655360 - nastaví velikost stacku a heapu
    /$G+ - podpora rozšířené instrukční sady
    /EBIN - nastavení adresáře pro výstup binárek
    /OOBJ - nastavení adresáře pro externí knihovny
    /UC:\TP\UNITS;SRC;SRC\LIB - nastavení složek pro unity - doporucuji pridat puvodni slozku v adresari TP
  4. nyní by již mělo jen stačit v hlavním adresáři (tedy tam, kde jsou všechny výše uvedené podadresáře) zavolat:
    tpc /TCFG SRC\[hlavní .pas soubor ke kompilaci]
  5. vaše výsledné TPU a EXE naleznete v adresáři BIN, stačí už jen spustit

Celou strukturu si můžete sosnout tuhle: https://dl.dropboxusercontent.com/u/25376807/Test.zip

Ps: asi nejdůležitější a nejlepší zdroj informací o TP který sem našel: http://putka.upm.si/langref/turboPascal/index.html

05/11/2014 - 23:16
Avatar
AfBu

5. 11. 2014:

Tak a jsou tu další novinky, úspěchy i problémy při vývoji DOSové hry :)

http://youtu.be/Td0gRJHZiHM

  • upravil jsem strukturu hry (zase), takže teď je úplně oddělený renderovací kód, takže ostatní komponenty (hra, editor, menu...) mohou pohodlně renderovat mapu a vše co se na ní může nalézat
  • přidal jsem letadlo! Grafika rozhodně není finální, je to hodně narychlo spíchnuté, ale jako letadlo to snad vypadá a dokonce létá!
  • zároveň s grafikou je tam i kód pro obsluhu a renderování letadel - určitě tam nebude jen jedno a jen jeden typ!
  • mapě přibyla vrstva s meta daty, ta mi umožní ukládání informací jako je poloha letišť a překážek
  • co se problémů týká, tak časování, respektive měření uplynulého času je větší problém než jsem myslel, v DOSBoxu je vše jak má být, ale na reálné mašině to běží moc rychle - koukal jsem ale že to mají pěkně vyřešené v Paku Paku, tak se jim podívám na zdroják :)
  • herní režim tam ještě není, ledadlo létá v editoru a ovládá se dost krkolomně, ale jako proof of concept to zatím stačí

Jak vyplývá z logu, tak jsem konečně svůj výtvor spustil na reálném HW, běží lépe než v DOSBoxu, ale vyhráno s výkonem určitě není. Snad zítra připravím demo a poprosím vás o otestování na něčem slabším (66-120 MHz), ta moje mrška je moc rychlá, nicméně i tak vám přikládám video:

http://youtu.be/-JtQbT-ljsk

06/11/2014 - 02:32
Avatar
AfBu

DEMO 01:

Tak sem tu s prvním nehratelným demem:

https://dl.dropboxusercontent.com/u/25376807/demo01.zip

Jestli máte chuť a čas, zkuste jej prosím spustit na vašem oblíbeném počítači a napište mi, jak vám běží. Rychlost letadel by měla být podobná jako na videích v příspěvku výše.

Demo vyžaduje svga kartu podporující režim 13h (320x200x256), zavedený ovladač myši a co udělá bez SB kompatibilní zvukové karty jsem také neměl jak vyzkoušet :)

Na pozadí by měl hrát obligátní piano-chaos.

Pomocí kláves + a - na numerické klávesnici můžete zvýšit/snížit rychlost (počet cyklů programu před čekáním na vsync).

06/11/2014 - 10:08
Avatar
Prague

Vynikající práce, tento soutěžní kvartál zůstanu v roli pozorovatele, jsem dokonale demotivován byť jen spouštět TP7 :-)

06/11/2014 - 11:07
Avatar
AfBu

Logout napsal(a)
Vynikající práce, tento soutěžní kvartál zůstanu v roli pozorovatele, jsem dokonale demotivován byť jen spouštět TP7 :-)

Já jen doufám, že nejsem důvodem tvé demotivace :( snad si to ještě o dlouhých zimních večerech rozmyslíš ;)

06/11/2014 - 11:15
Avatar
Prague

Tak vítěze tu máme jasného a nevidím žádné ceny pro další místa :-)

// Mé zimní večery bude zaměstnávat potomek, kterého na Vánoce čekáme.

06/11/2014 - 11:45
Avatar
Springy

Tyjo, gratuluju oběma!

06/11/2014 - 12:43
Avatar
AfBu

Joo, tak prcka jako omluvu chápu, ten sebere víc času než load z kazety bez turba :) Gratuluji!

06/11/2014 - 15:24
Avatar

Logout: Přidávám se ke gratulacím! Ale zároveň jsem pln smutku, s tvým soutěžním příspěvkem jsem skoro počítal ;)

07/11/2014 - 11:17
Avatar
Prague

Sledge: když ono jít proti něčemu takovému jako je prezentováno v tomhle vlákně je těžké :-) Nevylučuju že najdu pár víkendů, ale to co tu předvádí AfBu je profi práce a tak mě očekávej jen jako competition-filler, pokud bude málo příspěvků...

07/11/2014 - 11:37
Avatar

Logout: Není malých her, jen malých hráčů! Nebo tak nějak. Přece nejde jen o to, kdo vyhraje... ale mohl bych pro zpestření zauvažovat o ceně útěchy. Jen mě absolutně nenapadá, jaké :)

07/11/2014 - 15:28
Avatar
AfBu

Kristova noho, to je presne to co sem nechtel :(

10/11/2014 - 03:55
Avatar
AfBu

10. 11. 2014:

O víkendu nebylo moc času, takže místo klasického logu a videa tu dnes bude jen vše říkající obrázek:

Hra s letadly (soutěžní) - vývojařský deníček :) | PC: Programování | Forum

Ps: Kdo by snad nepoznal, tak už se mi renderují texty! :D

10/11/2014 - 10:29
Avatar
Prague

AfBu napsal(a)
Kristova noho, to je presne to co sem nechtel :(

V pohodě, každý kdo má byť jen o trochu víc cílevědomosti a času než já by mě snadno strčil do kapsy, já po osmi hodinách každodenního korporátního programování nacházím už leda tak čas na blogování a takové to domácí skriptování pro radost. Udělat celou hru v takovéhle úrovni by pro mě znamenalo naprosto omezit mé oblíbené platformy (PC se nevěnuju, vždycky když něco chci na PC udělat, musím si pro nějaké dojet do skladu - u mě doma je to hlavně Macy a unixové stanice, nějaké to ZX Spectrum, Amiga a Atari ST), lezení po kopcích s vysílačkou a další nepočítačové činnosti, mezi které v prosinci zařadím i mimino. Takže rozhodně to nemusíš brát osobně :-)

10/11/2014 - 10:30
Avatar
Prague

Jinak k renderování písma - moc hezky retrozní, jen tak dál. Už teď to vizuálně připomíná křížence mezi Civilizací, TTD a SimCity a to nebyly one-man show a nevznikaly týden :-) Jsem zvědav, co to nakonec bude.

10/11/2014 - 15:36
Avatar

Grafika je skutečně parádní. Ani jsem nedoufal, že by se do toho pustil někde s takovým nadšením a vervou! :)

Taky by mě zajímalo, co se z toho nakonec vyklube? Navádění letadel na přistání (hrál jsem něco takovýho na Androidu)? Nebo snad sběr panďuláků a lá Ugh / Choplifter? :)

10/11/2014 - 16:21
Avatar
LubikCZ

Mě to dost připomíná hru Cyclone na ZX Spectru. A fakt parádní práce, je to nádherný. K tomuhle bych se taky jednou chtěl dokopat, nejspíš ale k tomu nikdy nebudu mít dostatečné množství buněk mozkových. Jo a nechci předbíhat a už vůbec demotivovat ostatní, ale myslím si, že vítěz je jasný :)

Každý počítač je hloupý nebo chytrý pouze tak, jako jeho majitel.

23/11/2014 - 05:17
Avatar
AfBu

23. 11. 2014

Bylo hrozně málo času na volnočasové aktivity, proto ta pomlka. Ale zase mám nějaký ten postup, tak vám ho sem hodím. Jako obvykle začneme rovnou praktickou ukázkou :)

http://youtu.be/q8PywRE1iyg

  • prozatím jsem kompletně demontoval zvukové pokusy, je to komplikované a finální řešení víc v nedohlednu než v dohlednu. Na hudbu dost možná rezignuji (možná z lenosti udělám speciální CD edici s hudbou přehrávanou přímo z placky), ale efekty tam určitě nakonec budou.
  • přepracoval jsem systém vstupních zařízení - pro myš už nepoužívám cizí knihovnu, ale svou vlastní, klávesnici si řeším přímo přes přerušení, takže s ní můžu pracovat mnohem pohodlněji a hlavně svižněji.
  • to hlavní: konečně jsem začal pracovat na herních mechanikách jako takových, takže se rýsuje "režim přiblížení" a mnozí už z videa zjistili co je mou hlavní inspirací. Letadla teď už jdou komandovat myší, hráč může letadlu nařídit letovou hladinu a směr letu. Samozřejmě chvíli trvá než letadlo manévr provede a u různých typů se bude rychlost změny výšky i směru lišit.
  • samozřejmě stále probíhá částečný průběžný refactoring a úpravy už hotového kódu a grafiky.
  • perlička na závěr: upravil jsem většinu kódu tak, abych ho později mohl naportovat na moderní platformy (Free Pascal, takže Win32/64, Linux a snad i OSX), už teď je kód ve FPC zcela zkompilovatelný, jen se nic nevykresluje - knihovna co bude přes SDL simulovat všechno co dělám v SVGA bude maso :D
01/12/2014 - 00:18
Avatar
AfBu

30. 11. 2014

Opět jen drobnosti :)

https://www.youtube.com/watch?v=pECyPzLXTC8

  • přidán čas do herního režimu
  • přidána dynamická úprava palety pro plynulý přechod den/noc
  • přidáno blikání signálních světel letadel a veže
  • drobné úpravy menu
01/12/2014 - 12:19
Avatar

Střídání dne a noci - co tu paletu měnit trochu divočeji, něco a lá první Dune? :)

Každopádně rýsuje se to skvěle, držim palce :)

01/12/2014 - 19:17
Avatar
AfBu

Určitě to není finální, spíš první nástřel - ve finále bych rád noc spíš do modra než jen ztmavenou. Prostě mě asi nemine ten opruz jednotlivé kroky "tmy" předpřipravit a pak už je jen sypat na porty grafiky, teď to počítám a je to zaprvý zbytečná zátěž (paměti mám k dispozici dost, s CPU je to horší) a za druhý divoký ;)

Časové pásmo: Europe/Prague

Nejvíce uživatelů online: 351

Právě online:
7 Host(é)

Právě prohlíží tuto stránku:
1 Host(é)

Nejaktivnejší uživatelé:

LubikCZ: 2158

Sany: 1498

MilasPce: 1485

Neny: 1136

Powerack: 949

Logout: 932

Statistiky uživatelů:

Hosté: 14

Členové: 663

Moderátoři: 0

Administrátoři: 1

Statistiky fóra:

Skupiny: 5

Fóra: 24

Témata: 1382

Příspěvky: 23567

Nejnovější uživatelé:

TomMiga, Sp., Jooe, stepansvach, MrMichal, Domkess32, ant, GeekCZ, Charlie5, Ganimoth, Michal Pekárik (thalensvk), David_x386, comatory, Hanes, Dunemaster

Administrátoři: Sledge: 5600

Podpořit finančním příspěvkem »

Stát se PATRONEM
high-voltage.cz

18 patronů přispívá částkou 2014 Kč měsíčně

Je to malé pade pro čtenáře, ale velká vzpruha pro HV! ;)
Podpořit nákupem na e-shopu »
Hrnek porcelán Hrnek porcelán "Svatý grál" IDDQD 286 Kč
Shadow bazar, retro herní džungle