open source, multiplatform, point-and-click adventure games, reverse engeneering, C++, C, Pascal, Assembly, DOS

Hasonló dokumentumok
OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Több platform egy kódbázis Tanulságok a Tresorittól. Budai Péter, vezető fejlesztő

Cross platform játékmotor + szerkesztő Támogatott platformok

Mobilplatformok Merre tart a világ? Kis Gergely MattaKis Consulting

A NetBeans IDE Ubuntu Linux operációs rendszeren

Dell Inspiron 3567 i3 notebook

Iman 3.0 szoftverdokumentáció

Kommunikációs rendszerek teljesítőképesség-vizsgálata

Mobil készülékek programozása

Játékfejlesztés a Windows Phone 7 erejével

SZOFTVER = a számítógépet működtető és az azon futó programok összessége.

Java I. A Java programozási nyelv

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

A L i n u x r u h á j a

Kedvenc Ingyenes editorok avagy milyen a programozó jobbkeze? PSPAD editor DEVPHP IDE

1_Linux_bevezeto_bash

Webes alkalmazások fejlesztése

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

Programzás I gyakorlat

ANDROID EMULÁTOR. Avagy nincsen pénz drága telóra.

OpenOffice.org irodai programcsomag

Modellező eszközök, kódgenerálás

C++ fejlesztés az ECLIPSE környezetben

Komputeralgebra Rendszerek

Adat: té. Informá. hírek jelentő. - Valami tö. - Statisztikai adatok eloszlá Helyhez kö. kötött informá A hely legtö. tudomány, ami ezzel az informá

Produktív környezetben használt, nyílt forráskódú komplex térinformatikai megoldások dr. Siki Zoltán

Ember-gép interfész. 1. gyakorlat. Csapó Tamás szeptember 16.

ACR122U-A9. NFC USB intelligens kártyaolvasó. Műszaki Specifikáció V3.04 verzió

GeoGebra. A matematikai szabadszoftver tanuláshoz és tanításhoz

Google Play és iphone App Store üzleti modell, alkalmazásfejlesztés. Szórádi Balázs BME TMIT Szolgáltatások és alkalmazások 2015

Operációs rendszerek - bevezető

Gyors, kényelmes, típusbiztos

Google App Engine az Oktatásban 1.0. ügyvezető MattaKis Consulting

A szoftverfejlesztés eszközei

ANDROID ALKALMAZÁS FEJLESZTÉS

Á l t a l á n o s a n a L i n u x r ó l. DE-EFK Egészségügyi Ügyvitelszervező Szak Linux c. tantárgy 2006 I. félév

informatikai eszközök és telefonok beszerzése/2015.

Mozgásvizsgálati mérések internetes megjelenítése. Zemkó Szonja - Dr. Siki Zoltán

Az Open Source lehetősége a szegedi geoinformatika képzésben

Java I. A Java programozási nyelv

8,0 MP hátlapi, LED vakuval. - micro SD kártyaolvasó - 1db USB 2.0 a táblagépen - 2db USB 2.0 a billentyűzeten. - fényérzékelő - giroszkóp

PlanetFight. Minden játékosnak van valamennyi űrhajója, amikkel képesek elfoglalni még fel nem fedezett, neutrális bolygókat.

IK Algoritmusok és Alkalmazásaik Tsz, TTK Operációkutatás Tsz. A LEMON C++ gráf optimalizálási könyvtár használata

Megújul a Videotorium

Miután fel tudott jutni egy 209-es vezérállásába, akkor realizálódott benne a műszerek és kijelzők eltérő mivolta. Ekkor jutott eszébe egy kérdés: Mié

A szoftverfejlesztés eszközei

iphone és Android két jó barát...

Követelmény, projekt, funkcionalitás 41 CSK 1

Új komponens a Talend Palettán: Starschema SAP Connector. Csillag Péter, Földi Tamás Starschema Kft.

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Operációs rendszerek gyak.

Közösség, projektek, IDE

Darts - Krikett Projekt feladat specifikáció

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

Code review és continous integration toolok BME-MIT

Mobil operációs rendszerek. Készítette: Kisantal Tibor

Operációs rendszerek gyakorlat

AUDI VBK notebook Belépő kategória. HP 15 notebook

Egy jelentés-adattárház: Lila Cinege

A Skype architektúrája. P2P hálózat Supernode ok, peer-ek, login server

Kalandjáték dokumentáció

A MODERN JÁTÉKFEJLESZTÉS

Eddig ha játékról volt szó: PC vagy konzol Mára már elindult a cloud szolgáltatásokon keresztül játszható játékok elterjedése

A Measy A2W Miracast Stick bemutatása. A Measy A2W Miracast Stick jellemzői

Alkalmazások típusai Szoftverismeretek

Teszt Az nvidia GeForce VGA kártyák gyakorlati teljesítménye a Dirt3-ban

Novell Roadshow január március

IT iránytű CHS aktualitások 39.HÉT

Windows és/vagy Linux? Készítette: Hanusz Zoltán /Hazlaat/

Szabad szoftverek a nagyvilágban

Nyílt forráskódú technológiák központi és Önkormányzati környezetekben

Bevezetés. Dr. Iványi Péter

Documentum-menedzsment. À la Open Source Molnár Ferenc Rendszerintegrációs igazgató

Utolsó módosítás:

Szerepjáték Project Story of my life

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Podoski Péter és Zabb László

Blackberry 9000 (Bold) HTC Diamond 2. HTC 6262 Hero

JAVA webes alkalmazások

Fejlesztői szemmel at K

Operációs rendszer ismeretek

Szakmai önéletrajz. Diploma 1980

Itt a nyár, irány az Adria!

Tamás Ferenc: S-VGA monitorok

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

MVC. Model View Controller

Country Movers. Cesium alapú planetáris kartográfiai szemléltető eszköz. 5. Nyílt forráskódú térinformatikai munkaértekezlet

Előadás témája: DVR-ek és hálózati beállításuk. igazgató. Szentandrási-Szabó Attila Műszaki és kereskedelmi

Hogyan építsünk jó webáruházat? dr. Nyeste Gábor fps webügynökség ügyvezető

Országos Szakiskolai Közismereti Tanulmányi Verseny 2006/2007 SZÁMÍTÁSTECHNIKA

MOBIL PLATFORMHÁBORÚ. Török Gábor

Adatbázis és szoftverfejlesztés elmélet

Elektronikus Szolgáltatások Hirdetménye. Érvényes: május 24-től

Mobil Informatikai Rendszerek

Egy informatikai tankönyv bemutatása, kritikája

SZOFTVERFEJLESZTÉS. Földtudományi mérnöki mesterszak / Geoinformatikus-mérnöki szakirány. 2017/18 II. félév. A kurzus ebben a félévben nem indult

Első lépések útmutatója Vodafone Mobile Wi-Fi R216-Z

OPENBVE CSOMAGOK KÉSZÍTÉSE

Ref. szám: ES/09/LLP-LdV/TOI/ A projektet az Európai Unió Bizottsága támogatta. A kiadványban szereplő állítások kizárólag a szerzők

Átírás:

open source, multiplatform, point-and-click adventure games, reverse engeneering, C++, C, Pascal, Assembly, DOS

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.

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.)

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.

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!!!

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

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.

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.

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 logikája egyenesen a forráskódban van elhelyezve. Könnyebben debuggolható Nehezen módosítható Scripted logic: a játék logikáját egy speciális scriptnyelven írt adatállományok szolgáltatják. Nehezebben debuggolható Könnyen módosítható

Hogy lesz a platformfüggő kódból platformfüggetlen? Hát így!

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

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.

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.

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.