23 Feb 2021

Sega "impossible to master" Saturn

Mark Cerny pri svojich prezentáciach konzol PS4 a PS5 opakovane použil frázu - "čas potrebný na rozhýbanie polygónu". Myslí sa tým, ako dlho vám bude trvať, než sa váš 3D model na obrazovke rozbehne, prestane prepadávať cez podlahu a získa aspoň základné interakcie. Produktivita práce, čas sú peniaze. Na obrázku nižšie vidíte, že išlo o okamih, ak pracujete na PS1ke, nepríjemne dlhú pauzu na PS2ke a večnosť na PS3ke. PS4 je zámerne dizajnová /poučenie z minulosti/ ako veľmi "user friendly" a to po HW stránke aj najmä kvalite SDK /softvérovej časti vývojarskeho prostredia/. PS5 je na tom rovnako ako PS4 a lepšie ako next gen Xbox. Tak sa šušká po internete. PS1 až PS5 sú všetko štandardné 3D konzoly a programátori sa museli trochu zorientovať v čase a priestore, hlavne keď prechádzali z 2D konzol ako SNES, Megadrive na 3D konzoly ako PS1, N64. Skutočným peklom sa stala Sega Saturn.

Nebudem tu opakovať históriu prechodu spoločnosti SEGA od 2D veľmoci ku 3D fiasku - Sega Saturn. Skončilo to proste v danom časovom úseku dejín na príliš komplikovanej konzole s dvojjadrovým CPU a dvojjadrovým GPU /VDP/ a s neštandardným spracovaním polygónu ako štvoruholník a nie bežný trojuholník. Predstavte si teda, že ste programátor, ktorý posledných 12 rokov robil na 8-16 bitových 2D strojoch a potom vám na stôl pristane tých niekoľko tisíc strán dokumentácie Saturna a žiadne SDK /knižnice, moduly, vzorky/. Proste nič, len halda písmenok a celé mesiace ku prvému textúrovanému polygónu. Tie texty som preletel a musel by som na tým sedieť ako progiš aspoň 2 roky aby zo mňa vypadlo niečo použiteľné, pritom stále technicky o dosť horšie ako z konkurenčnej PS1 /jednoduché CPU, jednoduché GPU, jednoduché geometrické transformácie a nasvietenie/.

Virtua Fighter 1 /1994-1995 na Saturn konzole, rok po arcade kabinete/ alebo Daytona USA pre Sega Saturn bojovali mocne s jeho HW a absenciou dobrého SDK. VF1 bežala v rozlíšení  640x224 pixel na 30 fps, teda nižšie rozlíšenie ako originál ale rovnaká rýchlosť a napriek triviálnej grafike bez textúr na modeloch tá konverzia nebolo jednoduchá. Naopak Battle Arena Toshinden pre PS1 to zvládala v efektnejšej 3D aréne s kompletným textúrovaním úplne hravo /tiež 30fps bojovka/. Pri konverzii VF2 pre Sega Saturn, ktorá už beží na 60 fps a interne v rozlíšení 704x448 pixel, si teda musíte povedať, že sa tam musel stať nejaký zázrak.


A ten zázrak má dokonca aj meno. Sega Graphics Library /SGL/, niekedy chybne označovaný ako Sega Graphics Library Operating System /SGL OS/. Nejde však o operačný systém. Keiji Okayasu /VF2/ hovorí, že bez SGL by to na 60 fps s VF2 nikdy nedali. O čo teda ide. SEGA dobre počula to vyplakávanie vývojárov, takže si Yu Suzuki,  Tadahiro Kawamura /z Sega AM2/ a ďalší sadli na zadok a nákodovali pre ostatných menej schopných množstvo grafických rutín, modulov, ukázok ako zobraziť polygón, toroid, racing engine, bojovku, FPS hru /viď YT video vyššie/. Ako animovať, transformovať, skinovať modely, scénu. Pri konverzi VF2 /alebo Virtua Cop/ pre Sega Saturn sa používali práve tieto knižnice napísané v "céčku". Samozrejme, že cez SGL nešli všetky hry, tí schopnejší si urobili vlastné podobné moduly a tí najlepší išli rovno do asemblera. Lekciou, ktorú SEGA z tejto krízy vyvodilo bol dizajn ich ďalšej konzoly Sega Dreamcast, ktorý čistotou hardvéru a jednoduchosťou programovania za sebou necháva chaos Saturna, PS2 alebo novšej PS3 a je to skôr ideové dvojča PS1.