VCMI modifikované k nepoznání
Když jsem tu minule psal o vylepšování generátoru náhodných map ve VCMI – reimplementace Heroes of Might and Magic 3 – zmínil jsem, že nejde o jedinou změnu v mém lokálním git stromě. Vždy mám rozpracováno několik malých patchů, které čekají na svůj okamžik slávy, než s nimi budu spokojený dost na to, abych je poslal do upstreamu. Vedle nich žije jedna změna, která se ven nikdy nedostane, změna, která je jen pro mě a která mění hru k nepoznání. Ne nutně k lepšímu, ale změní ji razantně,
Asi takhle: Rád hraju VCMI na obřích mapách proti maximu protivníků. Problém je v tom, že eventuálně se taková partie zvrhne do situace, kdy moje vojsko je silnější než armády všech zbývajících oponentů dohromady, nehrozí mi žádné vážnější riziko a zbývá jen zamést poslední zbytky odporu. To není zajímavé, jen zdlouhavé.
Proti malátnosti koncovek se dá bojovat dvěma způsoby: buď strategickou pomocí počítačem ovládaným hráčům zajistit, aby dokázali hrdinně vzdorovat do posledního dne a každá hra končila crescendem nebo během nahánění posledních zbytků odporu poskytnout nové a zajímavé výzvy, které nutně nemusí vést k vítězství, ale aspoň jsou záživné.
Moje patche dělají obojí. Svým způsobem.
Na jedné straně pomáhají počítačovým oponentům – jestli mají slabší armádu, dostanou každý den pár jednotek, když mají nižší příjmy, obdrží infuzi zlata. Pomoc narůstá s tím jak hra postupuje. Tohle samo o sobě moc nefunguje. I když slabší obdrží bonus, není to moc poznat. Postupná pomoc jen zajistí, že daný hráč zaostává o něco pomaleji. Asi by bylo lepší dávat dramaticky větší dotace až v situaci, kdy je oponent sražený na kolena, má poslední město a posledního hrdinu, aby poslední bitva byla hodná legend. Když o tom teď přemýšlím, ideálně by se tento oponent měl přestat chovat jako běžné AI, ale jen, dejme tomu týden nebo dva, seděl ve svém hradu s nově nabitou armádou a čekal na poslední bitvu. Kdybych se rozhodl, že je to na mě moc, po uplynutí doby hájení by ztratil polovinu boží pomoci a začal se zas chovat jako běžný hráč.
Na straně druhé neutrální armády rostou mnohem agresivněji a aby byly bitvy zajímavější, obdrží náhodné bonusy. Někdo dostane víc zdraví, někdo silnější útok, někdo je rychlejší a někdo si přivolá ochranku a obklopí se náhodnými jednotkami první úrovně.
K tomu se banky – budovy, kde armáda střeží poklad – na začátku každého týdne restartují s větší armádou. Ta roste exponenciálně, stejně jako možná odměna, ale strážci rostou znatelně rychleji a za pár měsíců hry banky hlídají desítky tisíc monster.
Deklarativní moderské API i přes své velké možnosti, tohle neumí implementovat a proto jsem musel zasáhnout do nikdy nekončící hrůzy C++ kódu – najít klíčová místa, typicky jeden řádek, kde je dané chování implementováno a změnit ho. Jinak to nešlo, nikdo s tímhle nepočítal. Nepočítal s tím VCMI gang a rozhodně ne New World Computing, když programoval originál koncem minulého milénia.
Bitvy s těmito změnami bývají… zajímavé.






Od určitého bodu to změní hru k nepoznání, skoro jako kdyby šlo o roguelike – mám jednoho super-mocného hrdinu se super-silnou armádou a jedině on dokáže čelit rostoucí hrozbě nekonečných hromad monster.
To mi dalo nápad: Co kdybych HoMM3 změnil na roguelike? Namísto volné mapy by šlo o sérii bitev na více méně předdefinované trase, kdy nemůžu volně cestovat, jen s jedním hrdinou vybrat následující konflikt, po němž obdržím určitou odměnu – armádu, suroviny, artefakty, kouzla – abych se vrhnul do dalších, ještě těžších bojů. Takhle bych musel vybojovat X konfliktů s tím, abych měl na konci dostatečné prostředky na dobití těžce bráněného města.
Byla by to docela jiná hra, ale mohla by být zajímavá. Šlo by o nový pohled na prastarou klasiku.
Nicméně tohle v modderském API není ani teoreticky možné a musel bych se velice hluboko zavrtat do C++ kódu a provést dramatický řez, jako když chirurg odřízne pacientovu dolní polovinu těla a nahradí ji koněm. A stejně jako v případě pokusu stvořit kentaura by to nejspíš skončilo neúspěchem nebo bych ztratil zájem, ještě před tím, než by poslední steh byl na svém místě.
Ale můžeme snít… VCMI je svobodný software, kód je na githubu, zkusit to může někdo jiný.