1 / 16

Kari Timonen

Lisukekomponentit. Kari Timonen. Johdanto. Lisukekomponentit ohjelmistoarkkitehtuurin osana Lisukekomponenttien lataaminen Lisukekomponenttien ja ohjelmistokehyksen kommunikointi Lisukekomponenttien käyttäminen pelimoottoreissa OGRE 3D AMX Mod X Yhteenveto.

giona
Download Presentation

Kari Timonen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lisukekomponentit Kari Timonen

  2. Johdanto • Lisukekomponentit ohjelmistoarkkitehtuurin osana • Lisukekomponenttien lataaminen • Lisukekomponenttien ja ohjelmistokehyksen kommunikointi • Lisukekomponenttien käyttäminen pelimoottoreissa • OGRE 3D • AMX Mod X • Yhteenveto

  3. Lisukekomponentit ohjelmistoarkkitehtuurin osana • Ohjelmistojen osien uudelleenkäyttö • Yhteinen ohjelmistoarkkitehtuuri • Ohjelmistokehys • Aukkoja tuotekohtaisia täydennyksiä varten

  4. Lisukekomponentit ohjelmistoarkkitehtuurin osana • Ohjelmistokehystyyppejä • Abstrakti • Muunneltava • Koottava • Plugin

  5. Lisukekomponenttien lataaminen • Lataaminen usein ajonaikaisesti • Käännetään erillään ohjelmistokehyksestä • Käytetään apuna DLL-tiedostoja (Dynamic Link Library) • Lataamisesta huolehtii Plugin Manager -komponentti • DLL-tiedoston lataaminen • Funktioiden lataaminen • Lisukekomponentin luominen • Ohjelmistokehys käyttää lisukekomponentin funktioita

  6. Lisukekomponenttien lataaminen • DLL-tiedosto, jossa esitellään funktio addNumbers • #include <windows.h> • // Export this function • extern "C" __declspec(dllexport) double AddNumbers(double a, double b); • // DLL initialization function • BOOL APIENTRY • DllMain(HANDLE hModule, [[DWORD]] dwReason, LPVOID lpReserved) • { • return TRUE; • } • // Function that adds two numbers • double AddNumbers(double a, double b) • { • return a + b; • }

  7. Lisukekomponenttien lataaminen • DLL-tiedosto, joka käyttää funktiota addNumbers • #include <windows.h> • #include <stdio.h> • // Import function that adds two numbers • extern "C" __declspec(dllimport) double AddNumbers(double a, double b); • int main(int argc, char **argv) • { • double result = AddNumbers(1, 2); • printf("The result was: %f\n", result); • return 0; • }

  8. Lisukekomponenttien lataaminen • Lisukekomponentin poistaminen myös mahdollista • Muistin vapauttaminen ohjelman suorituksen loppuessa • Lisukekomponentin uudelleen lataaminen myös mahdollista • Hyödyllistä kehitysvaiheessa

  9. Lisukekomponenttien ja ohjelmistokehyksen kommunikointi • Usein ohjelmistokehys kutsuu lisukekomponentin funktioita • Kommunikointi myös toiseen suuntaan mahdollista • Plugin Manager -komponentin välityksellä • Suoraan ohjelmistokehyksen kutsuminen • Ohjelmistokehys tulee riippuvaiseksi lisukekomponenteista • Plugin Manager -komponentin kautta kommunikointi turvallisempaa • Suoraan ohjelmistokehyksen kutsuminen tehokkaampaa

  10. Lisukekomponenttien käyttäminen pelimoottoreissa • Modulaarisen pelimoottorin rakenne

  11. OGRE 3D • Grafiikkamoottori • Oliopohjainen (C++) • Laajennettavissa lisukekomponenttien avulla

  12. OGRE 3D

  13. AMX Mod X • Lisukekomponentti Half-Life-pohjaisten pelipalvelinten hallintaan • Laajentaa esim. pääkäyttäjän toimintoja ja statistiikan keräämistä • Vaatii toimiakseen erillisen Metamod-komponentin • Voidaan laajentaa omilla lisukekomponenteilla • Lisukekomponentit kirjoitetaan Pawn-skriptikielellä • Esimerkki

  14. Yhteenveto • Lisukekomponentit ohjelmistoarkkitehtuurin osana • Lisukekomponenttien lataaminen • Lisukekomponenttien ja ohjelmistokehyksen kommunikointi • Lisukekomponenttien käyttäminen pelimoottoreissa • OGRE 3D • AMX Mod X

  15. Lähteet AMX Mod X -verkkosivusto, 2008. http://www.amxmodx.org [25.3.2008] Dickheiser, M., C++ for game programmers, second edition. Charles River Media, Boston, Massachusetts, USA, 2007. Koskimies, K., Mikkonen, T., Ohjelmistoarkkitehtuurit. Talentum, Helsinki, Suomi, 2005. Lewis, M., Jacobson J., Game engines in scientific research. Communications of the ACM, 45,1(2002) . [Myös http://delivery.acm.org/10.1145/510000/502288/p27-lewis.pdf]. OGRE manual, 2008. http://www.ogre3d.org/docs/manual/manual_4.html#SEC4 [25.3.2008]

  16. Kysymykset

More Related