Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 20. září 2020, 08:41:10 Předmět: MREGA [DOS, Sega MD] |
|
|
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
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
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 |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 20. září 2020, 10:13:48 Předmět: Re: MREGA [DOS] |
|
|
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ží
Jestli s EGA Multiracerem nevyhraješ, tak pak už nevím kdo. |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 20. září 2020, 11:23:49 Předmět: |
|
|
Díky
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 |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 20. září 2020, 12:55:24 Předmět: |
|
|
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 |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 20. září 2020, 13:36:21 Předmět: |
|
|
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 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ě _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
|
Sledge
Založen: 04. 06. 2019 Příspěvky: 12
|
Zaslal: 20. září 2020, 16:54:53 Předmět: |
|
|
Frcovi samozřejmě velké díky za famózní příspěvek, je to super
@mar: Jestli nás něco historie naučila, tak to, že nejzajímavější softwarová díla vznikají při souboji s limity! 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á 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" A had. Vždycky je tam had. |
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 20. září 2020, 18:33:24 Předmět: |
|
|
@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 ale nevím, jak bys pak hledal účastníky (kdo ti dnes bude psát v 6502/z80 assembleru hry |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 20. září 2020, 18:51:46 Předmět: |
|
|
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 _________________ www.FRANTICWARE.com |
|
Návrat nahoru |
|
|
Sledge
Založen: 04. 06. 2019 Příspěvky: 12
|
Zaslal: 21. září 2020, 07:33:23 Předmět: |
|
|
@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é ) 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 |
|
Návrat nahoru |
|
|
Radis
Založen: 29. 03. 2014 Příspěvky: 235
|
Zaslal: 21. září 2020, 10:21:13 Předmět: |
|
|
Pekna hra. Dostal jsem u ni chut zahrat si po letech zase Lotus 3.
frca napsal: |
Psát něco v 8-bitovém assembleru, na to bych asi neměl nervy |
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 ) 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 |
|
|
Sledge
Založen: 04. 06. 2019 Příspěvky: 12
|
Zaslal: 21. září 2020, 10:55:09 Předmět: |
|
|
@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" |
|
Návrat nahoru |
|
|
Sledge
Založen: 04. 06. 2019 Příspěvky: 12
|
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
|
Návrat nahoru |
|
|
mar
Založen: 16. 06. 2012 Příspěvky: 608
|
Zaslal: 22. září 2020, 18:30:37 Předmět: |
|
|
pěkné, jenom jsem tedy myslel, že když to je MREGA, že to pojede v EGA módu |
|
Návrat nahoru |
|
|
frca
Založen: 28. 07. 2007 Příspěvky: 1558
|
Zaslal: 22. září 2020, 20:24:30 Předmět: |
|
|
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
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 |
|
|
|