Příznivce klasických real-time strategií čekají zajímavé časy. Brzy se dočkají předělávky třetího Warcrafta (tedy mají-li žaludek cpát Blizzardu do chřtánu peníze, já jsem s nimi po jejich aktuálních hongkongských tanečcích myslím skončil) a připravovaný remaster legendárního Command & Conquera je též na dobré cestě.
Video ukazuje aktuální podobu vývojové verze a za mě je to na jedničku. Gameplay jest zachován do posledního puntíku, ovšem grafika je bytelně a s citem vylepšena, a pozadu není ani audio. Může se to zdát málo, ale stejnou omlazovací kůrou prošel i Starcraft a dopadlo to skvěle. Kdo potřebuje 3D? Další info o Command & Conquer Remastered naleznete na oficiální stránce.
Sice jsem programátor (vlastně možná právě proto :-) ) by mě zajímalo, jak se tyto remastery dělají. Mají nějaký prastrarý kód v prastarém vývojovém prostředí s prastarým ekosystémem. Není to jen o tom aplikaci nějak zkompilovat.
Přetahají to do něčeho kompletně nového? Nebo v maximální míře používají tehdejší nástroje? To spíše ne, nedostali by tam nové DirectX, vyšší rozlišení atd. Ale zase se tam dá přepínat grafika i na původní. Ta původní grafika je také udělaná znovu a max. jen použijí textury?
Berou nějak kusy starého kódu a přizpůsobují to, nebo to prostě naprogramují znovu, na základě nějaké analýzy chování hry? Pokud by měli zkoumat jak pracuje 25 let starý kód, tak to rozhodně není sranda.
Taky už jsem o tom přemýšlel, já bych tipl, že do jisté míry staví na starém kódu. Blizzard to u Starcrafta udělal téměř určitě.
Jen si to představ – už druhým týdnem jedeš v brutálním crunch módu, chrlíš tisíce řádků sice funkčního, ale nekvalitního a nekomentovaného kódu, a říkáš si, že dobrý, hlavně že to funguje, a že ten kód přece nikdy nikdo neuvidí! A pak k tomu za 20 přijde nějakej chudák, co dostane za úkol se v tom vyznat :)
Raději si to nepředstavuji. Já se kolikrát nevyznám ani ve svém kódu, který jsem psal před rokem :-)
O to víc mě to vrtá hlavou. Na druhou stranu, třeba u Doomu si to asi dovedu představit, protože podle té knihy, co o vývoji vydali, bych tipoval, že to mají poměrně dobře dokumentované. Ale pochybuji, že je to pravidlo, spíše výjimka.
Co před rokem, já se nevyznám v bordelu, co jsem skrze slzy vzteku procedil včera odpoledne! :) Naštěstí my lepiči skriptů ze stackoverflow se z podobných situací umíme rychle oklepat.
Navíc tohle je vše psané v C/C++, což je poměrně low-level jazyk. Myslím to z hlediska práce s grafikou, alokace paměti (např. závislosti na rozlišení a velikosti textur) a tak dál. Nebyly to žádné nějak extra standardizované věci, hodně low-level přístup na grafickou kartu atd. V lepším případě prastaré DirextX.
Moc si nedovedu představit nějak rozumně používat ten starý kód. Možná nějaké části aplikační logiky, pokud to měli nějak rozumně navržené a jde to separovat. Ale i tam musí hodně tvrdě narážet.
Zrovna v tomto prípade hej, dohľadali starý source code a pracujú s ním. Síce, čo som čítal, tak našli „len“ väčšinu kódu, nie všetok, ale zasa samotný port robí Petroglyph, čo sú bývalí ľudia z Westwoodu, a tak s tým kódom majú skusenosti. Musím ale povedať naštastie, pretože inak by si tieto skopičiny s prepínaním starej a novej grafiky asi nemohli dovoliť. Pokiaľ viem, Starcraft to ma rovnaké, s tým rozdielom, že v Blizzarde nemali k dospozícii grafické assety, tak ich museli nanovo vytvárať. Ale source code ku Starcraftu evidentne mali a vychádzali z neho. A tým, že v prípade Warcraftu 3 plánujú spájať spolu ľudí, čo majú pôvodnú verziu W3 a Remaster, plus aj v Remastery majú fungovať staré módy, tak tam to budú mať rovnako.
Inak pochybujem, že pracujú v nejakých dobových nástrojoch, hlavne keď si zoberieš, že pôvodne bol C&C nakódený pre DOS (aj keď potom spravili Gold verziu, čo beží vo Win95, ale tá už nie je v rozlíšení 320×200, ale 640×480). Lenže pridať iný renderer asi nebude až taký veľký problém, keď si zoberieš, že napr. aj pre tú Gold verziu je k dispozícii jeden dll súbor, ktorý k pôvodnému renderu, čo šiel buď cez ddraw alebo GDI pridá ďalší render path cez OpenGL. A to spravila komunita, bez prístupu k source code.
Tak tohle ovsem vypada bajecne :)