.[ ČeskéHry.cz ].
MREGA [DOS, Sega MD]
Jdi na stránku 1, 2  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hry pro PC, konzole, ...
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 20. září 2020, 08:41:10    Předmět: MREGA [DOS, Sega MD] Odpovědět s citátem

Ahoj,
představuji vám moji novou hru MREGA, která byla vytvořena pro soutěž #hvdosdev2020





Téma bylo demake, no a co jiného demakeovat než starý dobrý MultiRacer Wink

Během počátečních experimentů jsem zvažoval, jak engine pojmout - SNES Mode 7-like (Mario Kart), Stunts-like, atd.
Náročný požadavek v pravidlech soutěže, aby hra běžela v DosBoxu nastaveném na 3000 cyklů, umožnil nakonec pouze pseudo-3D engine. Každopádně na reálné 486tce tím pádem hra jede jak z praku Smile

Pro pohodlné spouštění aktuální build obsahuje launcher run_win.bat (musí být nainstalován DOSBox).

Málem bych zapomněl:
DOWNLOAD (DOS)

SRC

DOWNLOAD (Win32)
_________________
www.FRANTICWARE.com


Naposledy upravil frca dne 11. leden 2021, 16:09:24, celkově upraveno 7 krát
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 20. září 2020, 10:13:48    Předmět: Re: MREGA [DOS] Odpovědět s citátem

Tak tohle je masakr!

Koukám, žes elegantně vyřešil naprosto nezajímavé zadání ("demake") a hlavně naprosto nesmyslný požadavek na 3k cyklů, kde v reálu 486ka musí běžet mnohem rychleji (3k není ani dost na starého Wolfa)

No každopádně takovouhle hru si týpek ani nezaslouží Smile
Jestli s EGA Multiracerem nevyhraješ, tak pak už nevím kdo.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 20. září 2020, 11:23:49    Předmět: Odpovědět s citátem

Díky Smile

Několik zajímavostí z vývoje:
Hra podporuje jak OPL3 (pak je i stereo zvuk), tak OPL2, kde je jen mono. Některé Sound Blastery i ESS Audiodrive karty mají prohozené kanály (zrovna i ta moje), tam lze použít parametr -swap
Pro editaci zvukových efektů jsem použil stejně jako loni https://github.com/Wohlstand/OPL3BankEditor
Výborným zdrojem informací byl web jednoho VUŤáka (kde jsem i já kdysi studoval): https://www.fit.vutbr.cz/~arnost/opl/opl3.html

Pro kompilaci jsem použil Open Watcom C++. Jeho standardní knihovna obsahuje velmi efektivní implementaci memcpy, takže je ve hře hodně používaná. Naopak memset jede kupodivu pomaleji, takže i pro jednobarevné plochy jsem si předalokoval pole vyplněné danou barvou a používal místo memset také memcpy.
Nevýhoda kompilátoru je, že nepodporuje novější standardy C++ (např. C++11).

Zároveň jsem si pro hru vytvořil i SDL 2.0 backend, takže jsem mohl pohodlně debuggovat nativní linuxovou verzi zkompilovanou g++. Linuxová verze je bez zvuku, ale teoreticky by se dala využít nějaká knihovna pro emulaci OPL, existuje jich několik.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 20. září 2020, 12:55:24    Předmět: Odpovědět s citátem

já jsem kdysi skončil akorát u AdLib, což je OPL2 myslím. SoundBlaster jsem měl nějaký klon SB2.0, takže žádné stereo (to bylo myslím od SB Pro)
ale FM pořád na poslech mám rád

ten memset, to mě překvapilo. škoda, že to nejde targetovat přes gcc/clang, to by určitě běželo výrazně líp
nehledě na to, že moderní překladače umí inlinovat memcpy/memset, kde size se dá zjistit v době překladu

neuměl watcom inline assembly? dokážu si představit efektivní memset, buď rep stosd (pokud byl na to tehdejší hw optimalizovaný) nebo to unrollnout ručně a to by snad mělo frčet rychle, v podstatě jenom sekvence movů s různým offsetem a pak update pointeru a loop registru
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 20. září 2020, 13:36:21    Předmět: Odpovědět s citátem

Jojo, inline assembly umí, ale když jsem našel způsob, jak to obejít přes memcpy, tak už jsem to neřešil Wink Targetovat DOS v gcc nějak jde, ale výhoda watcomu je jeho ověřený a spolehlivý extender dos4gw, tak proto zůstávám u něj. Co bylo dobré pro Carmacka, to je v pohodě i pro mě Wink
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Sledge



Založen: 04. 06. 2019
Příspěvky: 12

PříspěvekZaslal: 20. září 2020, 16:54:53    Předmět: Odpovědět s citátem

Frcovi samozřejmě velké díky za famózní příspěvek, je to super Smile

@mar: Jestli nás něco historie naučila, tak to, že nejzajímavější softwarová díla vznikají při souboji s limity! Wink Ano, omezení na 3000 cyklů je poměrně drakonické, ale taková je holt výchozí hodnota DosBoxu, nechtěl jsem to komplikovat. A na Wolfa to stačí s přehledem (Doom už je ovšem jiná Smile Ad zadání - několikrát jsem zdůrazňoval, že je to podmínka, která vlastně podmínkou není, lze na to napasovat naprosto cokoli. Ale těm méně rozhodným to může poskytnout užitečné vodítko, odrazový můstek. A zkušenost ukázala, že nějaké podmínky / udaný směr tam být musí, jinak se mi sejde 5 textovek v QBasicu, dáma fungující na principu náhodných tahů a variace na "hádej číslo" Smile A had. Vždycky je tam had.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 20. září 2020, 18:33:24    Předmět: Odpovědět s citátem

@sledge: 3k cycklů sotva utáhne wolfa na hranici hratelnosti, tedy 3k cyklů je sotva 286ka. 486ky v pohodě utáhly dooma, takže reálně chceš nějakých 20k cyklů. to je skoro 7x víc. limity jsou fajn, ale technické limity prostě neumožňují přes sebevíc optimalizovaný kód implementovat zajímavé věci. pokud chceš skutečné retro a opravdové harcore limity, zkus staré 8-bity (spectrum, atari, commodore), to je pak jiná výzva Smile ale nevím, jak bys pak hledal účastníky (kdo ti dnes bude psát v 6502/z80 assembleru hry Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 20. září 2020, 18:51:46    Předmět: Odpovědět s citátem

Já jsem to výkonnostní omezení bral jako challenge. Kdybych implementoval opravdový softwarový 3D engine, tak bych to za ty 3 měsíce možná ani nedokončil. Původní MultiRacer jsme vyvíjeli ve dvou rok, a to jsme měli k dispozici OpenGL...

Psát něco v 8-bitovém assembleru, na to bych asi neměl nervy Wink
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Sledge



Založen: 04. 06. 2019
Příspěvky: 12

PříspěvekZaslal: 21. září 2020, 07:33:23    Předmět: Odpovědět s citátem

@mar: Fakt jsem toho Wolfa zkoušel, a s 3k cyklů běží plynule, nekecám! A nebyl bych takový pesimista, spíše než na 286ku bych to viděl na takovou svižnější 386SX (ano, vím, je to skoro to samé Smile) Ad osmibity - aby ses nedivil, 8bit scéna je podstatně živější, minimálně co se vývoje týče, nových her vzniká spousta. A s tím, jak jsou dostupné různé enginy / gamemakery / editory jako AGD, MK2, SEUCK, se vývoj nějaké obyč. střílečky dá sfouknout relativně snadno. (Extra důraz na to "relativně", já bych nerozhýbal ani sprajt Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Radis



Založen: 29. 03. 2014
Příspěvky: 235

PříspěvekZaslal: 21. září 2020, 10:21:13    Předmět: Odpovědět s citátem

Pekna hra. Dostal jsem u ni chut zahrat si po letech zase Lotus 3. Smile

frca napsal:
Psát něco v 8-bitovém assembleru, na to bych asi neměl nervy Wink


Jo, s tim jsem si uzil loni, kdyz jsem psal emulator NESu. 6502 assembler je programatorsky peklo (na druhou stranu neni nic lepsiho nez dohrat Contra ve vlastnim emulatoru Smile) Ale jak rikal Sledge, 8bitova scena fakt hodne zije a na vyvoj existujou ruzny nastroje, takze muzes udelat treba NES hru, aniz bys napsal jedinej radek v assembleru. Pro NES existujou i jednoduchy C compilery.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Sledge



Založen: 04. 06. 2019
Příspěvky: 12

PříspěvekZaslal: 21. září 2020, 10:55:09    Předmět: Odpovědět s citátem

@Radis: Zrovna nedávno vyšla vylepšená verze GB Studia (GB Studio 2) pro tvorbu her na GameBoy. Je to vyloženě drap&drop "klikátko" Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Sledge



Založen: 04. 06. 2019
Příspěvky: 12

PříspěvekZaslal: 21. září 2020, 11:17:50    Předmět: Odpovědět s citátem

A když jsme u toho, i pro DOS pár "ulehčovačů" existuje Smile Tady mám seznam toho, co jsem zatím objevil - http://www.doshaven.eu/programming-tools/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 22. září 2020, 13:52:42    Předmět: Odpovědět s citátem

Zveřejnil jsem zdrojáky pod permisivní licencí (2-clause BSD) v naději, že to povzbudí DOSově-vývojářskou scénu Wink

https://github.com/Franticware/MREGA
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
mar



Založen: 16. 06. 2012
Příspěvky: 608

PříspěvekZaslal: 22. září 2020, 18:30:37    Předmět: Odpovědět s citátem

pěkné, jenom jsem tedy myslel, že když to je MREGA, že to pojede v EGA módu Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
frca



Založen: 28. 07. 2007
Příspěvky: 1558

PříspěvekZaslal: 22. září 2020, 20:24:30    Předmět: Odpovědět s citátem

Very Happy

Vysvětlení: Názvem i grafickým stylem jsem se snažil odkázat na Grand Prix Circuit - GPEGA.EXE:
https://www.youtube.com/watch?v=fysoXmhtWy0 (se sluchátky pozor!)

Ale kódit EGA, to už by byl masochismus.

Nicméně teď to může někdo jiný snadno naportovat - na EGA, CGA i Hercules Wink

PS: Do úvodního příspěvku jsem přidal nativní build pro Windows - je i se zvukem. Zbuildováno pomocí mingw32 g++.
_________________
www.FRANTICWARE.com
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Hry pro PC, konzole, ... Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna