Open Source, Multiplatform, Point-And-Click Adventure Games, Reverse Engeneering, C++, C, Pascal, Assembly, DOS

Open Source, Multiplatform, Point-And-Click Adventure Games, Reverse Engeneering, C++, C, Pascal, Assembly, DOS

open source, multiplatform, point-and-click adventure games, reverse engeneering, C++, C, Pascal, Assembly, DOS Bozsó Péter http://scummvm.org/ Na de mi is az a ScummVM? • Egy program, mely lehetővé teszi klasszikus point-and-click kalandjátékok futtatását, abban az esetben ha a felhasználó rendelkezik az eredeti fájlokkal. • Egy open source szervezet, melynek magja egy stabil, profikból és kezdőkből egyaránt álló, jól működő fejlesztőcsapat. Bozsó Péter http://scummvm.org/ Mit ért el eddig a szervezet? • Támogatunk rengeteg sikeres játéksorozatot. (Pl.: Monkey Island, Day of the Tentacle, Broken Sword, King’s Quest) • Támogatunk legalább ennyi ismert és kevésbé ismert platformot. (Pl.: Windows, Linux, Mac, Android, iOS, PS, PSP, Dreamcast, AmigaOS, Haiku, Samsung TV) • Komoly együttműködést folytatunk a játékok eredeti készítőivel és a GOG.com-mal. (Ennek hála ingyen és legálisan elérhető mindenki számára az utóbbi oldalon többek között például a Beneath a Steel Sky.) Bozsó Péter http://scummvm.org/ Hogyan kerültem én a képbe? • A Google Summer of Code-on keresztül, ami a Google nyári ösztöndíjprogramja egyetemisták számára, melyel az open source fejlesztőket támogatják. (Erről részletesen később.) • Mindig is nagyon szerettem a régi point-and-click kalandjátékokat, valamint igencsak érdeklődtem a játékfejleszés iránt is. • A kód jelentős része C++ban íródott, a multiplatform fejlesztéshez remekül használható saját programkönyvtárral megtámogatva. • Így hát alapul véve az érdeklődési körömet és az addigi tanulmányaimat (második félév végéről beszélünk – prog 1/2), adta magát a dolog…. Bozsó Péter http://scummvm.org/ De volt, amire én sem voltam felkészülve… DOS MEMÓRIAKEZELÉSÉVEL KAPCSOLATOS GÁNYOLÁSOK!!! KORABELI VGA KÁRTYA PROGRAMOZÁSA ASSEMBLY-BEN!!! Bozsó Péter http://scummvm.org/ Az első project: Avalanche Engine • Grafika: EGA • Felbontás: 320 x 200 • Színek száma: 16 • Vezérlés: billentyűzet és egér • Név: Avalot d’ Argent • Nyelv: Angol • Platform: DOS • Megjelenés éve: 1995 Bozsó Péter http://scummvm.org/ Mi volt itt a dolgom? • Megkaptam a játék forrásfájlait, amelyek mind Pascal nyelven íródtak, helyenként Assembly betétekkel a grafikus kártya vezérléséhez. • Át kellett írnom őket C++ nyelve miközben az erősen platformfüggő (DOS) kódrészleteket lecseréltem a ScummVM saját könyvtárában található, teljesen platformfüggetlen kódra. • Az így kapott egyveleget objektum orientáltá kellett tennem, amennyire csak lehetett. • Refaktorálni kellett a kódot. Bozsó Péter http://scummvm.org/ Mik voltak a buktatók? • Soha nem fogtam még előtte ekkora volumenű dologba. • Apránként, de berozsdált a Pascal tudásom. • Nem értettem az Assemblyhez. • Nem pláne az akkori videokártyák lelki világához… • A kód tele volt „hardcoded logic”-kal, ami hatványozottan megnehezítette az objektifikálást. Bozsó Péter http://scummvm.org/ …mit jelent az hogy „hardcoded logic”? Game logic: meghatározza a játék menetét. • Események • Interakciók Hardcoded logic: a játék Scripted logic: a játék logikáját logikája egyenesen a egy speciális scriptnyelven írt forráskódban van elhelyezve. adatállományok szolgáltatják. • Könnyebben debuggolható • Nehezebben debuggolható • Nehezen módosítható • Könnyen módosítható Bozsó Péter http://scummvm.org/ Hogy lesz a platformfüggő kódból… …platformfüggetlen? Hát így! Bozsó Péter http://scummvm.org/ A második project: CGE2 Engine • Grafika: EGA • Felbontás: 320 x 240 • Színek száma: 256 • Vezérlés: egér • Név: Sfinx • Nyelv: Lengyel • Platform: DOS • Megjelenés éve: 1997 Bozsó Péter http://scummvm.org/ Mi volt itt a dolgom? • Megkaptam a játék forrásfájlait, amelyek mind C++ nyelven íródtak, helyenként Assembly betétekkel a grafikus kártya vezérléséhez és más gyorsításokhoz. • Át kellett írnom őket felhasználva a CGE Engine forrásait, miközben a platformfüggő (DOS) kódrészleteket lecseréltem a ScummVM saját könyvtárában található, teljesen platformfüggetlen kódra. • Refaktorálni kellett a kódot. • Le kellett fordítani a játékot lengyelről angolra. Bozsó Péter http://scummvm.org/ Mik voltak a buktatók? • Nem tudtam lengyelül. • A command parsert komoly fejfájás volt debuggolni. Miért volt ez könnyebb mint az előző? • Ismerős voltam már a kódbázisunkkal. • Ott volt a kész CGE Engine, amire támaszkodhattam és rengeteg mindent meríthettem belőle. • Alapból obejktum orientált kódot kaptam, csak kissé kellett átdolgoznom a struktúráját. Bozsó Péter http://scummvm.org/ Mi tette mindezt lehetővé? • Bevezetett a nyílt forráskodú szoftverfejlesztés világába. • Megismerhettem egy csomó szakmailag és magánéletben is kiváló embert, akiktől rengeteget tanultam és tanulok mai napig. • Verhetetlen munkatapasztalatot adott. • Marha jól fizetett. Bozsó Péter http://scummvm.org/.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    14 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us