Skocz do zawartości
  • Ogłoszenia

  • Gdzie świętować urodziny GMCLANu   31 użytkowników zagłosowało

    1. 1. Gdzie świętować urodziny GMCLANu


      • Warszawa (bo w centrum)
      • Szczecin (bo tam mieszka Ranma i narodził się GMCLAN)

    Żeby zagłosować w tej ankiecie, prosimy się zalogować lub zarejestrować. Zobacz temat
PsichiX

SixthSense [17-04-2012 alpha]

Rekomendowane odpowiedzi

Oto wersja alpha SixthSense - systemu współdzielonych pluginów. Zawartość tematu zmieni się w przeciągu paru dni, ale chciałbym Wam pokazać, co jest już teraz gotowe.

 

* Jak to działa?

Cały system jest rozdzielony na dwa moduły

- Server (zarządza pluginami załadowanymi do niego, czyli: wywołuje funkcje pluginu, wywołuje zapytania (dostępne w becie))

- Plugin/Client (zawiera funkcje pluginu, pozwala wywoływać je serwerowi)

 

* Jak tego używać?

- Moduł serwera to dll ładowany do aplikacji hosta, czyli np. gry (do użycia w aplikacji pisanej w win/c++ lub GM (GMowa wersja dostępna w becie)). Serwer może ładować i zwalniać pluginy, wywoływać ich funkcje, dzielić zasoby i dane pomiędzy pluginami.

- Moduł pluginu jest dllką stworzoną przez dewelopera, która używa szablonu SxPlugin (oraz biblioteki SxClient) napisanych w c++. Plugin może rejestrować i odrejestrować specjalne funkcje, wywoływać funkcje innych pluginów załadowanych do serwera i współdzielić dane. Deweloper może (a nawet powinien) użyć szablon pluginu, by stworzyć w ten sposób dll ładowany do serwera.

 

* Jak zachodzi współdzielenie danych pomiędzy serwerem, a pluginami?

Kiedy klient (plugin) wywołuje funkcję jakiegokolwiek załądowanego pluginu, może wysyłać dane w specjalnych uniwersalnych zmiennych/obiektach (przechowujące wskaźniki, liczby i ciągi znaków) oraz zwracają taką zmienną do aplikacji / pluginu, który funkcję wywołał. To pozwala na stworzenie pluginu ładującego surowe dane z plików, potem stworzyć plugin do odczytywania tych surowych danych i utworzenia zasobu z nich (lub zrobienia z tym cokolwiek się chce), na przykład: GM wywołuje funkcję pluginu ładującą dane obrazka, potem wywołuje funkcję pluginu graficznego, by użył ten obrazek jako teksturę, stworzył model i narysował go.

 

* Co mogę zrobić?

Jeśli jesteś twórcą dll, możesz zacząć implementować moduł pluginu w Twej najlepszej dllce, tym samym stając się częścią nowego systemu rozszerzeń dla GMa (i nie tylko - pluginy można używać pomiędzy aplikacjami pisanymi w GM a c++), które pozwalają wszystkim deweloperom używać ich pluginów razem z pluginami innych twórców!

Jeśli macie pytania - zadawajcie je w tym temacie :)

 

* Jakie pluginy pojawia się na starcie finalnej wersji platformy SixthSense?

- Ether (połączenia sieciowe i obsługa xml)

- XeAudiere (odtwarzacz dźwiękowy)

- Photon (moduł graficzny silnika Xenon Core 2, który pozwala przenieśc możliwości graficzne GMa na zupełnie wyższy poziom!)

- Vidi (system kluczy seryjnych aplikacji (zabezpieczenia przeciw piratom, pozwala na komercjalizację aplikacji), oraz globalne profile użytkowników aplikacji)

 

Byłoby świetnie, gdyby poniższe dlle były dostępne na platformie SixthSense:

- GMogre3D

- Extreme Physics

- 39dll

- GMnewton

- Fmod Sound System Engine

- Download Manager

 

* SDK w wersji alpha i szablon pluginu:

http://psichix.gmclan.org/download.php?fil...seSDK_Alpha.zip

 

* Tapetka promocyjna:

http://gmclan.org/uploader/1105/SixthSense_Wallpaper.png

 

* Znane bugi:

- brak

 

* Update 23-02-2012:

- połączono moduły serwera i klienta, tak więc nie ma dllki serwera, a plugin może być teraz zarówno klientem oraz serwerem dla inych pluginów, więc może wewnętrznie ładować potrzebne mu pluginy.

- naprawiono błąd ze zwracanymi wartościami (nie crushuje aplikacji i zwraca poprawne wartości)

- dodano wersję dla GMa

- dodano dokumentację wersji C++ i GM (anglojęzyczne)

- przebudowano strukturę SDK (są łatwo dostępne dwa projekty Visual C++ 2010 - szablon pluginu i hosta oraz GMowa dllka serwera)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ye, ΨΧΞ great!

 

PS.

 

So much for alpha!

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Polskie forum, a temat angielskojęzyczny...

Jak przetłumaczysz to na język polski, to może mi się będzie chciało to przeczytać.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Cordoba@ Jak się nauczysz anglika, to może mu się będzie chciało tłumaczyć. >_>

 

A co do Ciebie Psyhix (Sry za starego nicka, ale dawno nie wpadałem), to zaj*biście, aktualnie bawię się w C++, ale jak dla GM też to jest to super chociaż raczej do niego już nie wrucę. ; )

Powodzenia i sporo tego jak na alephe. ; p

 

Sry, że nie po angielsku, ale raczej niewiele wnosi do tematu, więc nikomu to ie będzie przeszkadzać. ; p

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

temat przetłumaczony (napisałem tam, iż w ciągu paru dni zawartosć tematu się zmieni, przepraszam za to, iż na forum polskim umieściłem tekst po angielsku)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Cordoba@ Jak się nauczysz anglika, to może mu się będzie chciało tłumaczyć. >_>

 

A co do Ciebie Psyhix (Sry za starego nicka, ale dawno nie wpadałem), to zaj*biście, aktualnie bawię się w C++, ale jak dla GM też to jest to super chociaż raczej do niego już nie wrucę. ; )

Powodzenia i sporo tego jak na alephe. ; p

 

Sry, że nie po angielsku, ale raczej niewiele wnosi do tematu, więc nikomu to ie będzie przeszkadzać. ; p

 

Drogi bluksie, tu nie chodzi o to czy ja umiem język angielski czy też nie, tylko o to, że skoro jest to forum polskojęzyczne, to powinno zakładać się tematy w języku polskim, gdyż nie każdy użytkownik tego forum, umie język angieski w takim stopniu, aby zrozumieć tekst zawarty w temacie, w takim samym stopniu jak w języku polskim.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

* Update 23-02-2012:

- połączono moduły serwera i klienta, tak więc nie ma dllki serwera, a plugin może być teraz zarówno klientem oraz serwerem dla inych pluginów, więc może wewnętrznie ładować potrzebne mu pluginy.

- naprawiono błąd ze zwracanymi wartościami (nie crushuje aplikacji i zwraca poprawne wartości)

- dodano wersję dla GMa

- dodano dokumentację wersji C++ i GM (anglojęzyczne)

- przebudowano strukturę SDK (są łatwo dostępne dwa projekty Visual C++ 2010 - szablon pluginu i hosta oraz GMowa dllka serwera)

 

http://psichix.gmclan.org/download.php?fil...seSDK_Alpha.zip

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jaka jest licencja na Vidi? jesli uzyje go w komercyjnym projekcie to czy musze zakupic licencje, czy jest to darmowe?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

licencja będzie dostępna na zasadach takich, że jeśli chcesz skomercjalizować swoją aplikację, to musisz wykupić abonament, półroczny lub roczny, ceny będą ustalone na premierze systemu, aczkolwiek dodam, iż abonament będzie zależny od ilości kont userów, jakich planujesz zdobyć, ale drogi być nie powinien.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

no chyba nie.

muszę zrobić kalkulacje, aby wiedzieć ile kasy potrzeba będzie na utrzymanie dobrego serwera i transferu oraz jak na to będzie się przekładać ilość klientów aplikacji

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

nowa wersja w drodze, Co w niej nowego? chociażby Callbacki (wywoływanie funkcji aplikacji w pluginach), pełna implementacja pod GMa i .NET (tak, będzie można pisać pluginy w C++, C#, VB, czy tez innym .NETowym języku). Zobaczymy, jak będzie z Javą, czy uda mi się pod nią to podczepić.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Noo, pięknie! Szkoda tylko, że nie współpracuje z C#. Może zamierzasz wprowadzić?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

projekt do testów obsługi pluginów w C#:

http://dl.dropbox.com/u/9759049/TestAppCsharp.zip

 

na dniach dojdzie test pluginu napisanego w c# i odpaleniem go w c++, .net i gm.

 

kod aplikacji:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SxPortable;

namespace TestAppCsharp
{
    class Program
    {
        static UniVar CbMsgYes(Server.Callback cb, UniVar[] args)
        {
            return new UniVar("yes");
        }

        static UniVar CbMsgNo(Server.Callback cb, UniVar[] args)
        {
            return new UniVar("no");
        }

        static void Main(string[] args)
        {
            Server.Use().RegisterCallback("msgyes").BindDelegate(new Server.Callback.Deleg(CbMsgYes));
            Server.Use().RegisterCallback("msgno").BindDelegate(new Server.Callback.Deleg(CbMsgNo));

            Console.WriteLine("plug in: {0}",
                Server.Use().PlugIn("SxPlugin.dll")
                );

            Console.WriteLine("result: {0}",
                Server.Use().Call("MsgBoxPlugin", "MsgBox", new UniVar("Hello World!"), new UniVar("MsgBox"))
                );

            Console.WriteLine("plug out: {0}",
                Server.Use().PlugOut("SxPlugin.dll")
                );

            Server.Use().UnregisterCallback("msgyes");
            Server.Use().UnregisterCallback("msgno");
            
            Server.Destroy();
            
            Console.ReadLine();
        }
    }
}

 

teraz będzie łatwo odpalać ten sam kod pod różnymi środowiskami - chociażby GUI pisane w Cli, podpinane pod GMa :D

kolejnym celem będzie (chociażby próba) wykonywania skryptów z exe gry z gamemakera, czyli zrobienia z execa plugin :) nie mam pojęcia, czy to ma jakikolwiek sens, nie mniej chciałbym chociaż sprawdzić, czy GM może być zdolny tworzyć pluginy i używać je w innych środowiskach.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

wczoraj ukończyłem kompletny runner dla pluginów pisanych w językach .NET, dziś zrobię SDK dla nowej wersji całego systemu i jutro opublikuję go wraz z jakimiś pluginami napisanymi w c++ i c#, jako przykłady (btw. w c# pluginy pisze się o wiele prościej :D)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

SDK wersji 0.9.0.0 i strona gotowe:

http://6s.psichix.com/

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×